From 2ba082c78768efbf47faf040d569bd95a345e59c Mon Sep 17 00:00:00 2001 From: JC5 Date: Fri, 5 Jun 2026 05:46:06 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Auto=20commit=20for=20release=20?= =?UTF-8?q?'develop'=20on=202026-06-05?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .ci/php-cs-fixer/composer.lock | 12 +- .../Controllers/Chart/BalanceController.php | 3 +- .../Insight/Income/TagController.php | 5 +- .../Insight/Transfer/TagController.php | 5 +- .../Webhook/StandardMessageGenerator.php | 3 +- .../Extensions/AttachmentCollection.php | 3 +- app/Helpers/Collector/GroupCollector.php | 8 +- app/Http/Controllers/Bill/IndexController.php | 5 +- .../Budget/BudgetLimitController.php | 8 +- .../Controllers/Budget/IndexController.php | 5 +- .../Controllers/Chart/BudgetController.php | 8 +- app/Jobs/CreateAutoBudgetLimits.php | 16 +- .../Account/AccountRepository.php | 21 +- app/Repositories/Bill/BillRepository.php | 18 +- .../Budget/AvailableBudgetRepository.php | 15 +- app/Repositories/Budget/BudgetRepository.php | 6 +- .../Currency/CurrencyRepository.php | 3 +- .../ExchangeRate/ExchangeRateRepository.php | 6 +- .../Journal/JournalRepository.php | 3 +- .../LinkType/LinkTypeRepository.php | 3 +- .../ObjectGroup/ObjectGroupRepository.php | 9 +- .../PeriodStatisticRepository.php | 6 +- .../Recurring/RecurringRepository.php | 3 +- app/Repositories/Rule/RuleRepository.php | 12 +- .../RuleGroup/RuleGroupRepository.php | 21 +- .../Webhook/WebhookRepository.php | 3 +- .../Internal/Update/AccountUpdateService.php | 6 +- .../Internal/Update/BillUpdateService.php | 6 +- .../Http/Api/ExchangeRateConverter.php | 3 +- app/Support/Http/Controllers/AugumentData.php | 9 +- .../Enrichments/RecurringEnrichment.php | 5 +- .../Enrichments/SubscriptionEnrichment.php | 3 +- app/Support/Search/AccountSearch.php | 3 +- composer.lock | 204 ++++++++++++------ config/firefly.php | 4 +- package-lock.json | 42 ++-- 36 files changed, 232 insertions(+), 263 deletions(-) diff --git a/.ci/php-cs-fixer/composer.lock b/.ci/php-cs-fixer/composer.lock index 25535ee9c6..f4677bbe64 100644 --- a/.ci/php-cs-fixer/composer.lock +++ b/.ci/php-cs-fixer/composer.lock @@ -471,16 +471,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.95.3", + "version": "v3.95.4", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "3d681493acc0e93283481b1c63c263737df78687" + "reference": "3f8f68856837a77e1f1d870354eca3c8747f2f72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/3d681493acc0e93283481b1c63c263737df78687", - "reference": "3d681493acc0e93283481b1c63c263737df78687", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/3f8f68856837a77e1f1d870354eca3c8747f2f72", + "reference": "3f8f68856837a77e1f1d870354eca3c8747f2f72", "shasum": "" }, "require": { @@ -564,7 +564,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.95.3" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.95.4" }, "funding": [ { @@ -572,7 +572,7 @@ "type": "github" } ], - "time": "2026-05-29T20:35:26+00:00" + "time": "2026-06-03T18:02:44+00:00" }, { "name": "psr/container", diff --git a/app/Api/V1/Controllers/Chart/BalanceController.php b/app/Api/V1/Controllers/Chart/BalanceController.php index 995adf03b4..ad9b84c67b 100644 --- a/app/Api/V1/Controllers/Chart/BalanceController.php +++ b/app/Api/V1/Controllers/Chart/BalanceController.php @@ -87,8 +87,7 @@ final class BalanceController extends Controller // get journals for entire period: - $this->collector - ->setRange($queryParameters['start'], $queryParameters['end']) + $this->collector->setRange($queryParameters['start'], $queryParameters['end']) ->withAccountInformation() ->setXorAccounts($accounts) ->setTypes([ diff --git a/app/Api/V1/Controllers/Insight/Income/TagController.php b/app/Api/V1/Controllers/Insight/Income/TagController.php index 94be2ae461..df99eef909 100644 --- a/app/Api/V1/Controllers/Insight/Income/TagController.php +++ b/app/Api/V1/Controllers/Insight/Income/TagController.php @@ -158,10 +158,7 @@ final class TagController extends Controller 'currency_id' => (string) $foreignCurrencyId, 'currency_code' => $journal['foreign_currency_code'], ]; - $response[$foreignKey]['difference'] = bcadd( - (string) $response[$foreignKey]['difference'], - Steam::positive($journal['foreign_amount']) - ); + $response[$foreignKey]['difference'] = bcadd((string) $response[$foreignKey]['difference'], Steam::positive($journal['foreign_amount'])); $response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; } } diff --git a/app/Api/V1/Controllers/Insight/Transfer/TagController.php b/app/Api/V1/Controllers/Insight/Transfer/TagController.php index b7b85fd376..f92a7aa9f0 100644 --- a/app/Api/V1/Controllers/Insight/Transfer/TagController.php +++ b/app/Api/V1/Controllers/Insight/Transfer/TagController.php @@ -155,10 +155,7 @@ final class TagController extends Controller 'currency_id' => (string) $foreignCurrencyId, 'currency_code' => $journal['foreign_currency_code'], ]; - $response[$foreignKey]['difference'] = bcadd( - (string) $response[$foreignKey]['difference'], - Steam::positive($journal['foreign_amount']) - ); + $response[$foreignKey]['difference'] = bcadd((string) $response[$foreignKey]['difference'], Steam::positive($journal['foreign_amount'])); $response[$foreignKey]['difference_float'] = (float) $response[$foreignKey]['difference']; // intentional float } } diff --git a/app/Generator/Webhook/StandardMessageGenerator.php b/app/Generator/Webhook/StandardMessageGenerator.php index 1c8b812c11..9a3e6a197a 100644 --- a/app/Generator/Webhook/StandardMessageGenerator.php +++ b/app/Generator/Webhook/StandardMessageGenerator.php @@ -313,8 +313,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface private function getWebhooks(): Collection { - return $this->user - ->webhooks() + return $this->user->webhooks() ->leftJoin('webhook_webhook_trigger', 'webhook_webhook_trigger.webhook_id', 'webhooks.id') ->leftJoin('webhook_triggers', 'webhook_webhook_trigger.webhook_trigger_id', 'webhook_triggers.id') ->where('active', true) diff --git a/app/Helpers/Collector/Extensions/AttachmentCollection.php b/app/Helpers/Collector/Extensions/AttachmentCollection.php index 795e48d9ed..f3fcf3bb21 100644 --- a/app/Helpers/Collector/Extensions/AttachmentCollection.php +++ b/app/Helpers/Collector/Extensions/AttachmentCollection.php @@ -515,8 +515,7 @@ trait AttachmentCollection if (false === $this->hasJoinedAttTables) { // join some extra tables: $this->hasJoinedAttTables = true; - $this->query - ->leftJoin('attachments', 'attachments.attachable_id', '=', 'transaction_journals.id') + $this->query->leftJoin('attachments', 'attachments.attachable_id', '=', 'transaction_journals.id') ->where(static function (EloquentBuilder $q1): void { $q1->where('attachments.attachable_type', TransactionJournal::class); // $q1->where('attachments.uploaded', true); diff --git a/app/Helpers/Collector/GroupCollector.php b/app/Helpers/Collector/GroupCollector.php index 0bb66b0aad..be73ce8f4a 100644 --- a/app/Helpers/Collector/GroupCollector.php +++ b/app/Helpers/Collector/GroupCollector.php @@ -1063,9 +1063,8 @@ class GroupCollector implements GroupCollectorInterface private function startQuery(): void { // Log::debug('GroupCollector::startQuery'); - $this->query = $this->user - // ->transactionGroups() - // ->leftJoin('transaction_journals', 'transaction_journals.transaction_group_id', 'transaction_groups.id') + $this->query = $this->user// ->transactionGroups() + // ->leftJoin('transaction_journals', 'transaction_journals.transaction_group_id', 'transaction_groups.id') ->transactionJournals() ->leftJoin('transaction_groups', 'transaction_journals.transaction_group_id', 'transaction_groups.id') // join source transaction. @@ -1099,8 +1098,7 @@ class GroupCollector implements GroupCollectorInterface private function startQueryForGroup(): void { // Log::debug('GroupCollector::startQuery'); - $this->query = $this->userGroup - ->transactionJournals() + $this->query = $this->userGroup->transactionJournals() ->leftJoin('transaction_groups', 'transaction_journals.transaction_group_id', 'transaction_groups.id') // join source transaction. ->leftJoin('transactions as source', static function (JoinClause $join): void { diff --git a/app/Http/Controllers/Bill/IndexController.php b/app/Http/Controllers/Bill/IndexController.php index 07947c2c85..2009369ae0 100644 --- a/app/Http/Controllers/Bill/IndexController.php +++ b/app/Http/Controllers/Bill/IndexController.php @@ -255,10 +255,7 @@ final class IndexController extends Controller if (count($bill['paid_dates']) < count($bill['pay_dates'])) { $count = count($bill['pay_dates']) - count($bill['paid_dates']); if ($count > 0) { - $avg = bcdiv( - bcadd((string) $bill['amount_min'], (string) $bill['amount_max']), - '2' - ); + $avg = bcdiv(bcadd((string) $bill['amount_min'], (string) $bill['amount_max']), '2'); $avg = bcmul($avg, (string) $count); $sums[$groupOrder][$currencyId]['total_left_to_pay'] = bcadd($sums[$groupOrder][$currencyId]['total_left_to_pay'], $avg); Log::debug( diff --git a/app/Http/Controllers/Budget/BudgetLimitController.php b/app/Http/Controllers/Budget/BudgetLimitController.php index b263d702a2..9632996690 100644 --- a/app/Http/Controllers/Budget/BudgetLimitController.php +++ b/app/Http/Controllers/Budget/BudgetLimitController.php @@ -198,13 +198,7 @@ final class BudgetLimitController extends Controller if ($request->expectsJson()) { $array = $limit->toArray(); // add some extra metadata: - $spentArr = $this->opsRepository->sumExpenses( - $limit->start_date, - $limit->end_date, - null, - new Collection()->push($budget), - $currency - ); + $spentArr = $this->opsRepository->sumExpenses($limit->start_date, $limit->end_date, null, new Collection()->push($budget), $currency); $array['spent'] = $spentArr[$currency->id]['sum'] ?? '0'; $array['left_formatted'] = Amount::formatAnything($limit->transactionCurrency, bcadd($array['spent'], (string) $array['amount'])); $array['amount_formatted'] = Amount::formatAnything($limit->transactionCurrency, $limit['amount']); diff --git a/app/Http/Controllers/Budget/IndexController.php b/app/Http/Controllers/Budget/IndexController.php index 750a88e633..674f77fbee 100644 --- a/app/Http/Controllers/Budget/IndexController.php +++ b/app/Http/Controllers/Budget/IndexController.php @@ -284,10 +284,7 @@ final class IndexController extends Controller if (array_key_exists($currency->id, $spentArr) && array_key_exists('sum', $spentArr[$currency->id])) { $array['spent'][$currency->id]['spent'] = $spentArr[$currency->id]['sum']; - $array['spent'][$currency->id]['spent_outside'] = Steam::negative(bcsub( - $spentInLimits[$currency->id], - $spentArr[$currency->id]['sum'] - )); + $array['spent'][$currency->id]['spent_outside'] = Steam::negative(bcsub($spentInLimits[$currency->id], $spentArr[$currency->id]['sum'])); $array['spent'][$currency->id]['currency_id'] = $currency->id; $array['spent'][$currency->id]['currency_symbol'] = $currency->symbol; $array['spent'][$currency->id]['currency_decimal_places'] = $currency->decimal_places; diff --git a/app/Http/Controllers/Chart/BudgetController.php b/app/Http/Controllers/Chart/BudgetController.php index f4b32fe5c5..ad724137dc 100644 --- a/app/Http/Controllers/Chart/BudgetController.php +++ b/app/Http/Controllers/Chart/BudgetController.php @@ -539,13 +539,7 @@ final class BudgetController extends Controller } // get spent amount in this period for this currency. - $sum = $this->opsRepository->sumExpenses( - $currentStart, - $currentEnd, - $accounts, - new Collection()->push($budget), - $currency - ); + $sum = $this->opsRepository->sumExpenses($currentStart, $currentEnd, $accounts, new Collection()->push($budget), $currency); $amount = Steam::positive($sum[$currency->id]['sum'] ?? '0'); $chartData[0]['entries'][$title] = Steam::bcround($amount, $currency->decimal_places); diff --git a/app/Jobs/CreateAutoBudgetLimits.php b/app/Jobs/CreateAutoBudgetLimits.php index d61661dd50..93cf5e9364 100644 --- a/app/Jobs/CreateAutoBudgetLimits.php +++ b/app/Jobs/CreateAutoBudgetLimits.php @@ -122,13 +122,7 @@ class CreateAutoBudgetLimits implements ShouldQueue // if has one, calculate expenses and use that as a base. $repository = app(OperationsRepositoryInterface::class); $repository->setUser($autoBudget->budget->user); - $spent = $repository->sumExpenses( - $previousStart, - $previousEnd, - null, - new Collection()->push($autoBudget->budget), - $autoBudget->transactionCurrency - ); + $spent = $repository->sumExpenses($previousStart, $previousEnd, null, new Collection()->push($autoBudget->budget), $autoBudget->transactionCurrency); $currencyId = $autoBudget->transaction_currency_id; $spentAmount = $spent[$currencyId]['sum'] ?? '0'; Log::debug(sprintf('Spent in previous budget period (%s-%s) is %s', $previousStart->format('Y-m-d'), $previousEnd->format('Y-m-d'), $spentAmount)); @@ -218,13 +212,7 @@ class CreateAutoBudgetLimits implements ShouldQueue // if has one, calculate expenses and use that as a base. $repository = app(OperationsRepositoryInterface::class); $repository->setUser($autoBudget->budget->user); - $spent = $repository->sumExpenses( - $previousStart, - $previousEnd, - null, - new Collection()->push($autoBudget->budget), - $autoBudget->transactionCurrency - ); + $spent = $repository->sumExpenses($previousStart, $previousEnd, null, new Collection()->push($autoBudget->budget), $autoBudget->transactionCurrency); $currencyId = $autoBudget->transaction_currency_id; $spentAmount = $spent[$currencyId]['sum'] ?? '0'; Log::debug(sprintf('Spent in previous budget period (%s-%s) is %s', $previousStart->format('Y-m-d'), $previousEnd->format('Y-m-d'), $spentAmount)); diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 1bde7e2687..765cfa5aab 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -114,8 +114,7 @@ class AccountRepository implements AccountRepositoryInterface, UserGroupInterfac public function findByAccountNumber(string $number, array $types): ?Account { - $dbQuery = $this->user - ->accounts() + $dbQuery = $this->user->accounts() ->leftJoin('account_meta', 'accounts.id', '=', 'account_meta.account_id') ->where('accounts.active', true) ->where(static function (EloquentBuilder $q1) use ($number): void { @@ -251,8 +250,7 @@ class AccountRepository implements AccountRepositoryInterface, UserGroupInterfac public function getActiveAccountsByType(array $types): Collection { - $query = $this->user - ->accounts() + $query = $this->user->accounts() ->with([ 'accountmeta' => static function (HasMany $query): void { $query->where('name', 'account_role'); @@ -315,8 +313,7 @@ class AccountRepository implements AccountRepositoryInterface, UserGroupInterfac public function getInactiveAccountsByType(array $types): Collection { - $query = $this->user - ->accounts() + $query = $this->user->accounts() ->with(['accountmeta' => static function (HasMany $query): void { $query->where('name', 'account_role'); }]) @@ -630,8 +627,7 @@ class AccountRepository implements AccountRepositoryInterface, UserGroupInterfac AccountTypeEnum::CREDITCARD->value, AccountTypeEnum::MORTGAGE->value, ]; - $this->user - ->accounts() + $this->user->accounts() ->leftJoin('account_types', 'account_types.id', '=', 'accounts.account_type_id') ->whereNotIn('account_types.type', $all) ->update(['order' => 0]) @@ -640,8 +636,7 @@ class AccountRepository implements AccountRepositoryInterface, UserGroupInterfac public function searchAccount(string $query, array $types, int $limit): Collection { - $dbQuery = $this->user - ->accounts() + $dbQuery = $this->user->accounts() ->where('active', true) ->orderBy('accounts.order', 'ASC') ->orderBy('accounts.account_type_id', 'ASC') @@ -666,8 +661,7 @@ class AccountRepository implements AccountRepositoryInterface, UserGroupInterfac public function searchAccountIncludingInactive(string $query, array $types, int $limit): Collection { - $dbQuery = $this->user - ->accounts() + $dbQuery = $this->user->accounts() ->orderBy('accounts.order', 'ASC') ->orderBy('accounts.account_type_id', 'ASC') ->orderBy('accounts.name', 'ASC') @@ -691,8 +685,7 @@ class AccountRepository implements AccountRepositoryInterface, UserGroupInterfac public function searchAccountNr(string $query, array $types, int $limit): Collection { - $dbQuery = $this->user - ->accounts() + $dbQuery = $this->user->accounts() ->distinct() ->leftJoin('account_meta', 'accounts.id', '=', 'account_meta.account_id') ->where('accounts.active', true) diff --git a/app/Repositories/Bill/BillRepository.php b/app/Repositories/Bill/BillRepository.php index cc33597740..95daad09d4 100644 --- a/app/Repositories/Bill/BillRepository.php +++ b/app/Repositories/Bill/BillRepository.php @@ -170,8 +170,7 @@ class BillRepository implements BillRepositoryInterface, UserGroupInterface public function getActiveBills(): Collection { - return $this->user - ->bills() + return $this->user->bills() ->where('active', true) ->orderBy('bills.name', 'ASC') ->get(['bills.*', DB::raw('((bills.amount_min + bills.amount_max) / 2) AS expectedAmount')]) @@ -197,8 +196,7 @@ class BillRepository implements BillRepositoryInterface, UserGroupInterface public function getBills(): Collection { - return $this->user - ->bills() + return $this->user->bills() ->orderBy('order', 'ASC') ->orderBy('active', 'DESC') ->orderBy('name', 'ASC') @@ -226,8 +224,7 @@ class BillRepository implements BillRepositoryInterface, UserGroupInterface ]; $ids = $accounts->pluck('id')->toArray(); - return $this->user - ->bills() + return $this->user->bills() ->leftJoin('transaction_journals', static function (JoinClause $join): void { $join->on('transaction_journals.bill_id', '=', 'bills.id')->whereNull('transaction_journals.deleted_at'); }) @@ -383,8 +380,7 @@ class BillRepository implements BillRepositoryInterface, UserGroupInterface */ public function getRulesForBill(Bill $bill): Collection { - return $this->user - ->rules() + return $this->user->rules() ->leftJoin('rule_actions', 'rule_actions.rule_id', '=', 'rules.id') ->where('rule_actions.action_type', 'link_to_bill') ->where('rule_actions.action_value', $bill->name) @@ -400,8 +396,7 @@ class BillRepository implements BillRepositoryInterface, UserGroupInterface */ public function getRulesForBills(Collection $collection): array { - $rules = $this->user - ->rules() + $rules = $this->user->rules() ->leftJoin('rule_actions', 'rule_actions.rule_id', '=', 'rules.id') ->where('rule_actions.action_type', 'link_to_bill') ->get(['rules.id', 'rules.title', 'rule_actions.action_value', 'rules.active']) @@ -569,8 +564,7 @@ class BillRepository implements BillRepositoryInterface, UserGroupInterface { $query = sprintf('%%%s%%', $query); - return $this->user - ->bills() + return $this->user->bills() ->orderBy('name', 'ASC') ->whereLike('name', $query) ->take($limit) diff --git a/app/Repositories/Budget/AvailableBudgetRepository.php b/app/Repositories/Budget/AvailableBudgetRepository.php index c61b187470..3188421091 100644 --- a/app/Repositories/Budget/AvailableBudgetRepository.php +++ b/app/Repositories/Budget/AvailableBudgetRepository.php @@ -102,8 +102,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface, U public function find(TransactionCurrency $currency, Carbon $start, Carbon $end): ?AvailableBudget { /** @var null|AvailableBudget */ - return $this->user - ->availableBudgets() + return $this->user->availableBudgets() ->where('transaction_currency_id', $currency->id) ->where('start_date', $start->format('Y-m-d')) ->where('end_date', $end->format('Y-m-d')) @@ -121,8 +120,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface, U public function findInRange(TransactionCurrency $currency, Carbon $start, Carbon $end): Collection { /** @var Collection */ - return $this->user - ->availableBudgets() + return $this->user->availableBudgets() ->where('transaction_currency_id', $currency->id) // start date OR end date must be the same or equal to start or END respectively. ->where(function ($q1) use ($start, $end): void { @@ -157,8 +155,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface, U $amount = '0'; /** @var null|AvailableBudget $availableBudget */ - $availableBudget = $this->user - ->availableBudgets() + $availableBudget = $this->user->availableBudgets() ->where('transaction_currency_id', $currency->id) ->where('start_date', $start->format('Y-m-d')) ->where('end_date', $end->format('Y-m-d')) @@ -234,8 +231,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface, U public function getByCurrencyDate(Carbon $start, Carbon $end, TransactionCurrency $currency): ?AvailableBudget { /** @var null|AvailableBudget */ - return $this->user - ->availableBudgets() + return $this->user->availableBudgets() ->where('transaction_currency_id', $currency->id) ->where('start_date', $start->format('Y-m-d')) ->where('end_date', $end->format('Y-m-d')) @@ -279,8 +275,7 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface, U public function setAvailableBudget(TransactionCurrency $currency, Carbon $start, Carbon $end, string $amount): AvailableBudget { /** @var null|AvailableBudget $availableBudget */ - $availableBudget = $this->user - ->availableBudgets() + $availableBudget = $this->user->availableBudgets() ->where('transaction_currency_id', $currency->id) ->where('start_date', $start->format('Y-m-d')) ->where('end_date', $end->format('Y-m-d')) diff --git a/app/Repositories/Budget/BudgetRepository.php b/app/Repositories/Budget/BudgetRepository.php index 8791c31a6c..4cb7a96279 100644 --- a/app/Repositories/Budget/BudgetRepository.php +++ b/app/Repositories/Budget/BudgetRepository.php @@ -330,8 +330,7 @@ class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface public function getActiveBudgets(): Collection { - return $this->user - ->budgets() + return $this->user->budgets() ->where('active', true) ->orderBy('order', 'ASC') ->orderBy('name', 'ASC') @@ -379,8 +378,7 @@ class BudgetRepository implements BudgetRepositoryInterface, UserGroupInterface public function getInactiveBudgets(): Collection { - return $this->user - ->budgets() + return $this->user->budgets() ->orderBy('order', 'ASC') ->orderBy('name', 'ASC') ->where('active', 0) diff --git a/app/Repositories/Currency/CurrencyRepository.php b/app/Repositories/Currency/CurrencyRepository.php index bd37cd5314..0385b03134 100644 --- a/app/Repositories/Currency/CurrencyRepository.php +++ b/app/Repositories/Currency/CurrencyRepository.php @@ -345,8 +345,7 @@ class CurrencyRepository implements CurrencyRepositoryInterface, UserGroupInterf } /** @var null|CurrencyExchangeRate $rate */ - $rate = $this->user - ->currencyExchangeRates() + $rate = $this->user->currencyExchangeRates() ->where('from_currency_id', $fromCurrency->id) ->where('to_currency_id', $toCurrency->id) ->where('date', $date->format('Y-m-d')) diff --git a/app/Repositories/ExchangeRate/ExchangeRateRepository.php b/app/Repositories/ExchangeRate/ExchangeRateRepository.php index 9460538b9b..ce0cc3d06d 100644 --- a/app/Repositories/ExchangeRate/ExchangeRateRepository.php +++ b/app/Repositories/ExchangeRate/ExchangeRateRepository.php @@ -58,8 +58,7 @@ class ExchangeRateRepository implements ExchangeRateRepositoryInterface, UserGro public function getRates(TransactionCurrency $from, TransactionCurrency $to): Collection { // orderBy('date', 'DESC')->toRawSql(); - return $this->userGroup - ->currencyExchangeRates() + return $this->userGroup->currencyExchangeRates() ->where(static function (Builder $q1) use ($from, $to): void { $q1->where(static function (Builder $q) use ($from, $to): void { $q->where('from_currency_id', $from->id)->where('to_currency_id', $to->id); @@ -76,8 +75,7 @@ class ExchangeRateRepository implements ExchangeRateRepositoryInterface, UserGro public function getSpecificRateOnDate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): ?CurrencyExchangeRate { /** @var null|CurrencyExchangeRate */ - return $this->userGroup - ->currencyExchangeRates() + return $this->userGroup->currencyExchangeRates() ->where('from_currency_id', $from->id) ->where('to_currency_id', $to->id) ->where('date', $date->format('Y-m-d')) diff --git a/app/Repositories/Journal/JournalRepository.php b/app/Repositories/Journal/JournalRepository.php index b0454933bf..8d451141b3 100644 --- a/app/Repositories/Journal/JournalRepository.php +++ b/app/Repositories/Journal/JournalRepository.php @@ -117,8 +117,7 @@ class JournalRepository implements JournalRepositoryInterface, UserGroupInterfac public function findByType(array $types): Collection { - return $this->user - ->transactionJournals() + return $this->user->transactionJournals() ->leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id') ->whereIn('transaction_types.type', $types) ->get(['transaction_journals.*']) diff --git a/app/Repositories/LinkType/LinkTypeRepository.php b/app/Repositories/LinkType/LinkTypeRepository.php index 553d49e2eb..ab0ecb4bed 100644 --- a/app/Repositories/LinkType/LinkTypeRepository.php +++ b/app/Repositories/LinkType/LinkTypeRepository.php @@ -119,8 +119,7 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface, UserGroupInterf $destinations = $links->pluck('destination_id')->toArray(); $joined = array_unique(array_merge($sources, $destinations)); - return $this->user - ->transactionJournals() + return $this->user->transactionJournals() ->whereIn('id', $joined) ->get(['transaction_journals.id']) ->pluck('id') diff --git a/app/Repositories/ObjectGroup/ObjectGroupRepository.php b/app/Repositories/ObjectGroup/ObjectGroupRepository.php index 294358ca9c..856810125f 100644 --- a/app/Repositories/ObjectGroup/ObjectGroupRepository.php +++ b/app/Repositories/ObjectGroup/ObjectGroupRepository.php @@ -78,8 +78,7 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface, UserGroup public function get(): Collection { - return $this->user - ->objectGroups() + return $this->user->objectGroups() ->with(['piggyBanks', 'bills']) ->orderBy('order', 'ASC') ->orderBy('title', 'ASC') @@ -140,8 +139,7 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface, UserGroup $oldOrder = $objectGroup->order; if ($newOrder > $oldOrder) { - $this->user - ->objectGroups() + $this->user->objectGroups() ->where('object_groups.order', '<=', $newOrder) ->where('object_groups.order', '>', $oldOrder) ->where('object_groups.id', '!=', $objectGroup->id) @@ -152,8 +150,7 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface, UserGroup $objectGroup->save(); } if ($newOrder < $oldOrder) { - $this->user - ->objectGroups() + $this->user->objectGroups() ->where('object_groups.order', '>=', $newOrder) ->where('object_groups.order', '<', $oldOrder) ->where('object_groups.id', '!=', $objectGroup->id) diff --git a/app/Repositories/PeriodStatistic/PeriodStatisticRepository.php b/app/Repositories/PeriodStatistic/PeriodStatisticRepository.php index 09cc530f19..ee0ba9ac3c 100644 --- a/app/Repositories/PeriodStatistic/PeriodStatisticRepository.php +++ b/app/Repositories/PeriodStatistic/PeriodStatisticRepository.php @@ -52,8 +52,7 @@ class PeriodStatisticRepository implements PeriodStatisticRepositoryInterface, U Log::debug(sprintf('Collect all statistics where type starts with "%s"', $prefix)); Log::debug(sprintf('Between %s and %s', $start->format('Y-m-d H:i:s'), $end->format('Y-m-d H:i:s'))); - return $this->userGroup - ->periodStatistics() + return $this->userGroup->periodStatistics() ->where('type', 'LIKE', sprintf('%s%%', $prefix)) ->where('start', '>=', $start) ->where('end', '<=', $end) @@ -103,8 +102,7 @@ class PeriodStatisticRepository implements PeriodStatisticRepositoryInterface, U return; } - $count = $this->userGroup - ->periodStatistics() + $count = $this->userGroup->periodStatistics() ->where(function (Builder $q) use ($dates): void { foreach ($dates as $date) { $q->where(function (Builder $q1) use ($date): void { diff --git a/app/Repositories/Recurring/RecurringRepository.php b/app/Repositories/Recurring/RecurringRepository.php index 753f727b65..2cb871e0a8 100644 --- a/app/Repositories/Recurring/RecurringRepository.php +++ b/app/Repositories/Recurring/RecurringRepository.php @@ -119,8 +119,7 @@ class RecurringRepository implements RecurringRepositoryInterface, UserGroupInte */ public function get(): Collection { - return $this->user - ->recurrences() + return $this->user->recurrences() ->with(['TransactionCurrency', 'TransactionType', 'RecurrenceRepetitions', 'RecurrenceTransactions']) ->orderBy('active', 'DESC') ->orderBy('transaction_type_id', 'ASC') diff --git a/app/Repositories/Rule/RuleRepository.php b/app/Repositories/Rule/RuleRepository.php index 65114dcf95..aed440ec1d 100644 --- a/app/Repositories/Rule/RuleRepository.php +++ b/app/Repositories/Rule/RuleRepository.php @@ -167,8 +167,7 @@ class RuleRepository implements RuleRepositoryInterface, UserGroupInterface public function getStoreRules(): Collection { - $collection = $this->user - ->rules() + $collection = $this->user->rules() ->leftJoin('rule_groups', 'rule_groups.id', '=', 'rules.rule_group_id') ->where('rules.active', true) ->where('rule_groups.active', true) @@ -195,8 +194,7 @@ class RuleRepository implements RuleRepositoryInterface, UserGroupInterface public function getUpdateRules(): Collection { - $collection = $this->user - ->rules() + $collection = $this->user->rules() ->leftJoin('rule_groups', 'rule_groups.id', '=', 'rules.rule_group_id') ->where('rules.active', true) ->where('rule_groups.active', true) @@ -267,8 +265,7 @@ class RuleRepository implements RuleRepositoryInterface, UserGroupInterface Log::debug(sprintf('New order will be %d', $newOrder)); if ($newOrder > $oldOrder) { - $this->user - ->rules() + $this->user->rules() ->where('rules.rule_group_id', $groupId) ->where('rules.order', '<=', $newOrder) ->where('rules.order', '>', $oldOrder) @@ -282,8 +279,7 @@ class RuleRepository implements RuleRepositoryInterface, UserGroupInterface return; } - $this->user - ->rules() + $this->user->rules() ->where('rules.rule_group_id', $groupId) ->where('rules.order', '>=', $newOrder) ->where('rules.order', '<', $oldOrder) diff --git a/app/Repositories/RuleGroup/RuleGroupRepository.php b/app/Repositories/RuleGroup/RuleGroupRepository.php index ea0e78a44d..a7e8518795 100644 --- a/app/Repositories/RuleGroup/RuleGroupRepository.php +++ b/app/Repositories/RuleGroup/RuleGroupRepository.php @@ -43,8 +43,7 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface, UserGroupInte public function correctRuleGroupOrder(): void { - $set = $this->user - ->ruleGroups() + $set = $this->user->ruleGroups() ->orderBy('order', 'ASC') ->orderBy('active', 'DESC') ->orderBy('title', 'ASC') @@ -125,8 +124,7 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface, UserGroupInte public function getActiveGroups(): Collection { - return $this->user - ->ruleGroups() + return $this->user->ruleGroups() ->with(['rules']) ->where('rule_groups.active', true) ->orderBy('order', 'ASC') @@ -166,8 +164,7 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface, UserGroupInte public function getAllRuleGroupsWithRules(?string $filter): Collection { - $groups = $this->user - ->ruleGroups() + $groups = $this->user->ruleGroups() ->orderBy('order', 'ASC') ->with([ 'rules' => static function (HasMany $query): void { @@ -219,8 +216,7 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface, UserGroupInte public function getRuleGroupsWithRules(?string $filter): Collection { - $groups = $this->user - ->ruleGroups() + $groups = $this->user->ruleGroups() ->orderBy('order', 'ASC') ->where('active', true) ->with([ @@ -275,8 +271,7 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface, UserGroupInte public function resetOrder(): bool { - $set = $this->user - ->ruleGroups() + $set = $this->user->ruleGroups() ->whereNull('deleted_at') ->orderBy('order', 'ASC') ->orderBy('title', 'DESC') @@ -337,8 +332,7 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface, UserGroupInte $oldOrder = $ruleGroup->order; if ($newOrder > $oldOrder) { - $this->user - ->ruleGroups() + $this->user->ruleGroups() ->where('rule_groups.order', '<=', $newOrder) ->where('rule_groups.order', '>', $oldOrder) ->where('rule_groups.id', '!=', $ruleGroup->id) @@ -351,8 +345,7 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface, UserGroupInte return; } - $this->user - ->ruleGroups() + $this->user->ruleGroups() ->where('rule_groups.order', '>=', $newOrder) ->where('rule_groups.order', '<', $oldOrder) ->where('rule_groups.id', '!=', $ruleGroup->id) diff --git a/app/Repositories/Webhook/WebhookRepository.php b/app/Repositories/Webhook/WebhookRepository.php index 7ac0f0c4bd..09baeca6fc 100644 --- a/app/Repositories/Webhook/WebhookRepository.php +++ b/app/Repositories/Webhook/WebhookRepository.php @@ -45,8 +45,7 @@ class WebhookRepository implements WebhookRepositoryInterface, UserGroupInterfac public function all(): Collection { - return $this->user - ->webhooks() + return $this->user->webhooks() // only get upgraded webhooks ->where('delivery', 1) ->where('response', 1) diff --git a/app/Services/Internal/Update/AccountUpdateService.php b/app/Services/Internal/Update/AccountUpdateService.php index 2062e41c51..33b05697c4 100644 --- a/app/Services/Internal/Update/AccountUpdateService.php +++ b/app/Services/Internal/Update/AccountUpdateService.php @@ -145,8 +145,7 @@ class AccountUpdateService } if ($newOrder > $oldOrder) { - $this->user - ->accounts() + $this->user->accounts() ->where('accounts.order', '<=', $newOrder) ->where('accounts.order', '>', $oldOrder) ->where('accounts.id', '!=', $account->id) @@ -160,8 +159,7 @@ class AccountUpdateService return $account; } - $this->user - ->accounts() + $this->user->accounts() ->where('accounts.order', '>=', $newOrder) ->where('accounts.order', '<', $oldOrder) ->where('accounts.id', '!=', $account->id) diff --git a/app/Services/Internal/Update/BillUpdateService.php b/app/Services/Internal/Update/BillUpdateService.php index 0c46517c2e..21db673bd3 100644 --- a/app/Services/Internal/Update/BillUpdateService.php +++ b/app/Services/Internal/Update/BillUpdateService.php @@ -163,8 +163,7 @@ class BillUpdateService private function updateOrder(Bill $bill, int $oldOrder, int $newOrder): void { if ($newOrder > $oldOrder) { - $this->user - ->bills() + $this->user->bills() ->where('order', '<=', $newOrder) ->where('order', '>', $oldOrder) ->where('bills.id', '!=', $bill->id) @@ -174,8 +173,7 @@ class BillUpdateService $bill->save(); } if ($newOrder < $oldOrder) { - $this->user - ->bills() + $this->user->bills() ->where('order', '>=', $newOrder) ->where('order', '<', $oldOrder) ->where('bills.id', '!=', $bill->id) diff --git a/app/Support/Http/Api/ExchangeRateConverter.php b/app/Support/Http/Api/ExchangeRateConverter.php index a198913941..13e6930945 100644 --- a/app/Support/Http/Api/ExchangeRateConverter.php +++ b/app/Support/Http/Api/ExchangeRateConverter.php @@ -201,8 +201,7 @@ class ExchangeRateConverter } /** @var null|CurrencyExchangeRate $result */ - $result = $this->userGroup - ->currencyExchangeRates() + $result = $this->userGroup->currencyExchangeRates() ->where('from_currency_id', $from) ->where('to_currency_id', $to) ->where('date', '<=', $date) diff --git a/app/Support/Http/Controllers/AugumentData.php b/app/Support/Http/Controllers/AugumentData.php index a507156873..a3a940b1ba 100644 --- a/app/Support/Http/Controllers/AugumentData.php +++ b/app/Support/Http/Controllers/AugumentData.php @@ -222,14 +222,7 @@ trait AugumentData $currentEnd->addMonth(); } // primary currency amount. - $expenses = $opsRepository->sumExpenses( - $currentStart, - $currentEnd, - null, - $budgetCollection, - $entry->transactionCurrency, - $this->convertToPrimary - ); + $expenses = $opsRepository->sumExpenses($currentStart, $currentEnd, null, $budgetCollection, $entry->transactionCurrency, $this->convertToPrimary); $spent = $expenses[$currency->id]['sum'] ?? '0'; $entry->pc_spent = $spent; diff --git a/app/Support/JsonApi/Enrichments/RecurringEnrichment.php b/app/Support/JsonApi/Enrichments/RecurringEnrichment.php index 672bdb2f90..d0c09bf027 100644 --- a/app/Support/JsonApi/Enrichments/RecurringEnrichment.php +++ b/app/Support/JsonApi/Enrichments/RecurringEnrichment.php @@ -354,10 +354,7 @@ class RecurringEnrichment implements EnrichmentInterface /** @var RecurrenceRepetition $repetition */ foreach ($set as $repetition) { - $recurrence = $this->collection - ->filter(static fn (Recurrence $item): bool => (int) $item->id === (int) $repetition->recurrence_id) - ->first() - ; + $recurrence = $this->collection->filter(static fn (Recurrence $item): bool => (int) $item->id === (int) $repetition->recurrence_id)->first(); $fromDate = clone ($recurrence->latest_date ?? $recurrence->first_date); $recurrenceId = (int) $repetition->recurrence_id; $repId = (int) $repetition->id; diff --git a/app/Support/JsonApi/Enrichments/SubscriptionEnrichment.php b/app/Support/JsonApi/Enrichments/SubscriptionEnrichment.php index c6673f71e3..037e115c1b 100644 --- a/app/Support/JsonApi/Enrichments/SubscriptionEnrichment.php +++ b/app/Support/JsonApi/Enrichments/SubscriptionEnrichment.php @@ -260,8 +260,7 @@ class SubscriptionEnrichment implements EnrichmentInterface Log::debug(sprintf('Search parameters are: start: %s, end: %s', $searchStart->format('Y-m-d H:i:s'), $searchEnd->format('Y-m-d H:i:s'))); // Get from database when bills were paid. - $set = $this->user - ->transactionJournals() + $set = $this->user->transactionJournals() ->whereIn('bill_id', $this->subscriptionIds) ->leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id') ->leftJoin('transaction_currencies AS currency', 'currency.id', '=', 'transactions.transaction_currency_id') diff --git a/app/Support/Search/AccountSearch.php b/app/Support/Search/AccountSearch.php index 516c7d1405..d95335befc 100644 --- a/app/Support/Search/AccountSearch.php +++ b/app/Support/Search/AccountSearch.php @@ -53,8 +53,7 @@ class AccountSearch implements GenericSearchInterface public function search(): Collection { - $searchQuery = $this->user - ->accounts() + $searchQuery = $this->user->accounts() ->leftJoin('account_types', 'accounts.account_type_id', '=', 'account_types.id') ->leftJoin('account_meta', 'accounts.id', '=', 'account_meta.account_id') ->whereIn('account_types.type', $this->types) diff --git a/composer.lock b/composer.lock index 6b0aa29c38..deffc06fcc 100644 --- a/composer.lock +++ b/composer.lock @@ -1817,16 +1817,16 @@ }, { "name": "laravel-notification-channels/pushover", - "version": "5.0.0", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/laravel-notification-channels/pushover.git", - "reference": "a276d3cdbfede11bb5f4013c24ad1ef2a06bcb39" + "reference": "74e4b870e41b65c220be81d85e3b481591cfb2ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel-notification-channels/pushover/zipball/a276d3cdbfede11bb5f4013c24ad1ef2a06bcb39", - "reference": "a276d3cdbfede11bb5f4013c24ad1ef2a06bcb39", + "url": "https://api.github.com/repos/laravel-notification-channels/pushover/zipball/74e4b870e41b65c220be81d85e3b481591cfb2ea", + "reference": "74e4b870e41b65c220be81d85e3b481591cfb2ea", "shasum": "" }, "require": { @@ -1878,22 +1878,22 @@ "homepage": "https://github.com/laravel-notification-channels/pushover", "support": { "issues": "https://github.com/laravel-notification-channels/pushover/issues", - "source": "https://github.com/laravel-notification-channels/pushover/tree/5.0.0" + "source": "https://github.com/laravel-notification-channels/pushover/tree/5.0.1" }, - "time": "2026-03-18T11:30:33+00:00" + "time": "2026-05-31T17:09:07+00:00" }, { "name": "laravel/framework", - "version": "v13.13.0", + "version": "v13.14.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "1daa6d3b4defe46976ccfa4fb0a7ab62717712a2" + "reference": "e60b1c817a9ef7da319e4007de6cfda5301a58c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1daa6d3b4defe46976ccfa4fb0a7ab62717712a2", - "reference": "1daa6d3b4defe46976ccfa4fb0a7ab62717712a2", + "url": "https://api.github.com/repos/laravel/framework/zipball/e60b1c817a9ef7da319e4007de6cfda5301a58c0", + "reference": "e60b1c817a9ef7da319e4007de6cfda5301a58c0", "shasum": "" }, "require": { @@ -2104,7 +2104,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-06-02T14:28:17+00:00" + "time": "2026-06-04T18:46:35+00:00" }, { "name": "laravel/passport", @@ -5079,16 +5079,16 @@ }, { "name": "predis/predis", - "version": "v3.4.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "2033429520d8997a7815a2485f56abe6d2d0e075" + "reference": "8cc4319c06924c8ff0c5c7eec4243a19e3be32f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/2033429520d8997a7815a2485f56abe6d2d0e075", - "reference": "2033429520d8997a7815a2485f56abe6d2d0e075", + "url": "https://api.github.com/repos/predis/predis/zipball/8cc4319c06924c8ff0c5c7eec4243a19e3be32f1", + "reference": "8cc4319c06924c8ff0c5c7eec4243a19e3be32f1", "shasum": "" }, "require": { @@ -5130,7 +5130,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v3.4.2" + "source": "https://github.com/predis/predis/tree/v3.5.0" }, "funding": [ { @@ -5138,7 +5138,7 @@ "type": "github" } ], - "time": "2026-03-09T20:33:04+00:00" + "time": "2026-06-02T19:25:56+00:00" }, { "name": "psr/cache", @@ -10305,16 +10305,16 @@ }, { "name": "carthage-software/mago", - "version": "1.29.0", + "version": "1.30.0", "source": { "type": "git", "url": "https://github.com/carthage-software/mago.git", - "reference": "8aab53f6d004f9a6e85128c365d3d28737fdb272" + "reference": "0e8a3644d974984069fa27b0ffbb44123b1b74cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/carthage-software/mago/zipball/8aab53f6d004f9a6e85128c365d3d28737fdb272", - "reference": "8aab53f6d004f9a6e85128c365d3d28737fdb272", + "url": "https://api.github.com/repos/carthage-software/mago/zipball/0e8a3644d974984069fa27b0ffbb44123b1b74cd", + "reference": "0e8a3644d974984069fa27b0ffbb44123b1b74cd", "shasum": "" }, "require": { @@ -10352,7 +10352,7 @@ ], "support": { "issues": "https://github.com/carthage-software/mago/issues", - "source": "https://github.com/carthage-software/mago/tree/1.29.0" + "source": "https://github.com/carthage-software/mago/tree/1.30.0" }, "funding": [ { @@ -10360,7 +10360,7 @@ "type": "github" } ], - "time": "2026-05-23T18:53:33+00:00" + "time": "2026-06-04T15:46:37+00:00" }, { "name": "cloudcreativity/json-api-testing", @@ -10742,16 +10742,16 @@ }, { "name": "fruitcake/laravel-debugbar", - "version": "v4.2.8", + "version": "v4.3.0", "source": { "type": "git", "url": "https://github.com/fruitcake/laravel-debugbar.git", - "reference": "799d70c1101d3f8840dd76ff68ff6a78f9352905" + "reference": "3d76ea8d78b82225b92789de65fc630c1cd8e80c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/799d70c1101d3f8840dd76ff68ff6a78f9352905", - "reference": "799d70c1101d3f8840dd76ff68ff6a78f9352905", + "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/3d76ea8d78b82225b92789de65fc630c1cd8e80c", + "reference": "3d76ea8d78b82225b92789de65fc630c1cd8e80c", "shasum": "" }, "require": { @@ -10828,7 +10828,7 @@ ], "support": { "issues": "https://github.com/fruitcake/laravel-debugbar/issues", - "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.2.8" + "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.3.0" }, "funding": [ { @@ -10840,7 +10840,7 @@ "type": "github" } ], - "time": "2026-04-20T13:31:29+00:00" + "time": "2026-06-04T07:54:01+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -11791,16 +11791,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "14.1.10", + "version": "14.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "3719c5b6c045761798238ebacfee1fe06e4ce5be" + "reference": "ab8a36c9bd98c51f6cfe665a732bfadf72e18e8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/3719c5b6c045761798238ebacfee1fe06e4ce5be", - "reference": "3719c5b6c045761798238ebacfee1fe06e4ce5be", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ab8a36c9bd98c51f6cfe665a732bfadf72e18e8d", + "reference": "ab8a36c9bd98c51f6cfe665a732bfadf72e18e8d", "shasum": "" }, "require": { @@ -11819,7 +11819,7 @@ "theseer/tokenizer": "^2.0.1" }, "require-dev": { - "phpunit/phpunit": "^13.1.13" + "phpunit/phpunit": "^13.1.14" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -11828,7 +11828,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "14.1.x-dev" + "dev-main": "14.2.x-dev" } }, "autoload": { @@ -11857,7 +11857,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/14.1.10" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/14.2.0" }, "funding": [ { @@ -11877,7 +11877,7 @@ "type": "tidelift" } ], - "time": "2026-06-01T13:26:42+00:00" + "time": "2026-06-05T02:59:08+00:00" }, { "name": "phpunit/php-file-iterator", @@ -12174,16 +12174,16 @@ }, { "name": "phpunit/phpunit", - "version": "13.1.13", + "version": "13.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "ddf7f25d9ee9652b464475d7f3bacde2613e355e" + "reference": "3796ea973f1e7698f0d432c1c66662af9764fd9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ddf7f25d9ee9652b464475d7f3bacde2613e355e", - "reference": "ddf7f25d9ee9652b464475d7f3bacde2613e355e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3796ea973f1e7698f0d432c1c66662af9764fd9a", + "reference": "3796ea973f1e7698f0d432c1c66662af9764fd9a", "shasum": "" }, "require": { @@ -12197,18 +12197,19 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.4.1", - "phpunit/php-code-coverage": "^14.1.9", + "phpunit/php-code-coverage": "^14.2", "phpunit/php-file-iterator": "^7.0.0", "phpunit/php-invoker": "^7.0.0", "phpunit/php-text-template": "^6.0.0", "phpunit/php-timer": "^9.0.0", "sebastian/cli-parser": "^5.0.0", - "sebastian/comparator": "^8.2.1", - "sebastian/diff": "^8.3.0", + "sebastian/comparator": "^8.3.0", + "sebastian/diff": "^9.0", "sebastian/environment": "^9.3.2", "sebastian/exporter": "^8.1.0", + "sebastian/file-filter": "^1.0", "sebastian/git-state": "^1.0", - "sebastian/global-state": "^9.0.0", + "sebastian/global-state": "^9.0.1", "sebastian/object-enumerator": "^8.0.0", "sebastian/recursion-context": "^8.0.0", "sebastian/type": "^7.0.1", @@ -12221,7 +12222,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "13.1-dev" + "dev-main": "13.2-dev" } }, "autoload": { @@ -12253,7 +12254,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/13.1.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/13.2.0" }, "funding": [ { @@ -12261,7 +12262,7 @@ "type": "other" } ], - "time": "2026-05-27T14:03:08+00:00" + "time": "2026-06-05T03:13:07+00:00" }, { "name": "rector/rector", @@ -12394,27 +12395,27 @@ }, { "name": "sebastian/comparator", - "version": "8.2.1", + "version": "8.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "ce999bf08b2c387a5423fe56961c32eed3f88089" + "reference": "c025fc7604afab3f195fab7cdaf72327331af241" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/ce999bf08b2c387a5423fe56961c32eed3f88089", - "reference": "ce999bf08b2c387a5423fe56961c32eed3f88089", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/c025fc7604afab3f195fab7cdaf72327331af241", + "reference": "c025fc7604afab3f195fab7cdaf72327331af241", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", "php": ">=8.4", - "sebastian/diff": "^8.3", - "sebastian/exporter": "^8.0.3" + "sebastian/diff": "^9.0", + "sebastian/exporter": "^8.1.0" }, "require-dev": { - "phpunit/phpunit": "^13.1.10" + "phpunit/phpunit": "^13.2" }, "suggest": { "ext-bcmath": "For comparing BcMath\\Number objects" @@ -12422,7 +12423,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "8.2-dev" + "dev-main": "8.3-dev" } }, "autoload": { @@ -12462,7 +12463,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/8.2.1" + "source": "https://github.com/sebastianbergmann/comparator/tree/8.3.0" }, "funding": [ { @@ -12482,7 +12483,7 @@ "type": "tidelift" } ], - "time": "2026-05-21T04:46:40+00:00" + "time": "2026-06-05T03:06:45+00:00" }, { "name": "sebastian/complexity", @@ -12556,29 +12557,29 @@ }, { "name": "sebastian/diff", - "version": "8.3.0", + "version": "9.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b36d33b6e796513de7cb7df053afb3f55eefcd47" + "reference": "a3fb6a298a265ff487a91bbea46e03cd01dbb226" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b36d33b6e796513de7cb7df053afb3f55eefcd47", - "reference": "b36d33b6e796513de7cb7df053afb3f55eefcd47", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/a3fb6a298a265ff487a91bbea46e03cd01dbb226", + "reference": "a3fb6a298a265ff487a91bbea46e03cd01dbb226", "shasum": "" }, "require": { "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^13.0", - "symfony/process": "^7.2" + "phpunit/phpunit": "^13.2", + "symfony/process": "^7.4.13" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "8.3-dev" + "dev-main": "9.0-dev" } }, "autoload": { @@ -12611,7 +12612,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/8.3.0" + "source": "https://github.com/sebastianbergmann/diff/tree/9.0.0" }, "funding": [ { @@ -12631,7 +12632,7 @@ "type": "tidelift" } ], - "time": "2026-05-15T04:58:09+00:00" + "time": "2026-06-05T03:04:51+00:00" }, { "name": "sebastian/environment", @@ -12799,6 +12800,75 @@ ], "time": "2026-05-21T11:50:56+00:00" }, + { + "name": "sebastian/file-filter", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/file-filter.git", + "reference": "33a26f394330f6faa7684bb9cc73afb7727aae93" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/file-filter/zipball/33a26f394330f6faa7684bb9cc73afb7727aae93", + "reference": "33a26f394330f6faa7684bb9cc73afb7727aae93", + "shasum": "" + }, + "require": { + "php": ">=8.4" + }, + "require-dev": { + "phpunit/phpunit": "^13.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for filtering files", + "homepage": "https://github.com/sebastianbergmann/file-filter", + "support": { + "issues": "https://github.com/sebastianbergmann/file-filter/issues", + "security": "https://github.com/sebastianbergmann/file-filter/security/policy", + "source": "https://github.com/sebastianbergmann/file-filter/tree/1.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/file-filter", + "type": "tidelift" + } + ], + "time": "2026-04-22T07:20:04+00:00" + }, { "name": "sebastian/git-state", "version": "1.0.0", diff --git a/config/firefly.php b/config/firefly.php index e30e34cf6c..942f5a074b 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -78,8 +78,8 @@ return [ 'running_balance_column' => (bool)env_default_when_empty(env('USE_RUNNING_BALANCE'), true), // this is only the default value, is not used. // see cer.php for exchange rates feature flag. ], -'version' => 'develop/2026-06-02', -'build_time' => 1780426455, +'version' => 'develop/2026-06-05', +'build_time' => 1780631165, 'api_version' => '2.1.0', // field is no longer used. 'db_version' => 28, // field is no longer used. diff --git a/package-lock.json b/package-lock.json index 5d3997cbe9..8cbd3a456d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3600,9 +3600,9 @@ } }, "node_modules/axios": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.16.1.tgz", - "integrity": "sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.17.0.tgz", + "integrity": "sha512-J8SwNxprqqpbfenehxWYXE7CW+wM1BB4w3+N+g+/Wx40xM4rsLrfPmHHxSWIxJLYDgSY/HqlFPIYb2/S3rxafw==", "dev": true, "license": "MIT", "dependencies": { @@ -5344,9 +5344,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.366", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.366.tgz", - "integrity": "sha512-OlRuhb688YTCzzU3gXPLn6nGyd+F+53INE1qaKKlu6kETErE8FYsyDh0XqXEU+uBRn0MpCzz2vfNwORhkap8qg==", + "version": "1.5.368", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.368.tgz", + "integrity": "sha512-7RckJJK4uESJF9PxvfMWd3TGqIiieUTG4HxnKaKuIpGbcr+r2ZEB3g2gAhCP3Fqm42vJSzLfgab9eva/C4/XVw==", "dev": true, "license": "ISC" }, @@ -5401,9 +5401,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.22.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.1.tgz", - "integrity": "sha512-6QEuw3zoX1SJQc7b87aBXke/no+mG2bTBgw29gWMQonLmpEkWoCAVkl+M49e48AZlWzxiDzDZzYdp6kobcyLww==", + "version": "5.22.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.2.tgz", + "integrity": "sha512-0rxICaFZ7NQho/sHely2bvOPRP0Eu2B0NZ9zM54YvRvWMn7jfz3DmnOZDR9LlXDdDcqntAVc6Hfy4gr/tdH/Ag==", "dev": true, "license": "MIT", "dependencies": { @@ -6651,9 +6651,9 @@ } }, "node_modules/i18next": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.0.tgz", - "integrity": "sha512-gHSgGpUXVmuqE2El1W61DmxeyeTlFfZgdJRWMo9jScAn5pu7TuTuiccb1zh3E2J9hEBVGJ23+96x0ieBhfuIHA==", + "version": "26.3.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-26.3.1.tgz", + "integrity": "sha512-txQqd5EULsqEh9OJqRH15aCaOuy/nLJyhw5EHCSKLKJE1aBbb3Zve2+uQIxgWhPm1QqUQoWyQBm2kfmmIrzkcQ==", "funding": [ { "type": "individual", @@ -10074,9 +10074,9 @@ } }, "node_modules/semver": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", - "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.2.tgz", + "integrity": "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -12019,9 +12019,9 @@ } }, "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -12207,7 +12207,7 @@ }, "resources/assets/v1": { "dependencies": { - "date-fns": "^4.4.0", + "date-fns": "4.4.0", "stream-browserify": "^3.0.0" }, "devDependencies": { @@ -12241,7 +12241,7 @@ "chart.js": "^4", "chartjs-adapter-date-fns": "^3.0.0", "chartjs-chart-sankey": "^0.14.0", - "date-fns": "^4.4.0", + "date-fns": "4.4.0", "i18next": "^26.0.3", "i18next-chained-backend": "^5.0.0", "i18next-http-backend": "^4.0.0", @@ -12254,7 +12254,7 @@ "laravel-vite-plugin": "^3", "patch-package": "^8", "sass": "^1", - "vite": "^8.0.15", + "vite": "=8.0.15", "vite-plugin-manifest-sri": "^0.2.0" } }