🤖 Auto commit for release 'develop' on 2025-09-15

This commit is contained in:
JC5
2025-09-15 05:23:47 +02:00
parent 9075fa8ac8
commit de9efb0727
65 changed files with 416 additions and 408 deletions

View File

@@ -68,7 +68,7 @@ class StoreController extends Controller
public function store(StoreRequest $request): JsonResponse public function store(StoreRequest $request): JsonResponse
{ {
$data = $request->getAll(); $data = $request->getAll();
$data['fire_webhooks'] = $data['fire_webhooks'] ?? true; $data['fire_webhooks'] ??= true;
$budget = $this->repository->store($data); $budget = $this->repository->store($data);
$budget->refresh(); $budget->refresh();
$manager = $this->getManager(); $manager = $this->getManager();

View File

@@ -60,7 +60,7 @@ class UpdateController extends Controller
public function update(UpdateRequest $request, Budget $budget): JsonResponse public function update(UpdateRequest $request, Budget $budget): JsonResponse
{ {
$data = $request->getAll(); $data = $request->getAll();
$data['fire_webhooks'] = $data['fire_webhooks'] ?? true; $data['fire_webhooks'] ??= true;
$budget = $this->repository->update($budget, $data); $budget = $this->repository->update($budget, $data);
$manager = $this->getManager(); $manager = $this->getManager();

View File

@@ -70,7 +70,7 @@ class StoreController extends Controller
$data = $request->getAll(); $data = $request->getAll();
$data['start_date'] = $data['start']; $data['start_date'] = $data['start'];
$data['end_date'] = $data['end']; $data['end_date'] = $data['end'];
$data['fire_webhooks'] = $data['fire_webhooks'] ?? true; $data['fire_webhooks'] ??= true;
$data['budget_id'] = $budget->id; $data['budget_id'] = $budget->id;
$budgetLimit = $this->blRepository->store($data); $budgetLimit = $this->blRepository->store($data);

View File

@@ -77,7 +77,7 @@ class UpdateController extends Controller
throw new FireflyException('20028: The budget limit does not belong to the budget.'); throw new FireflyException('20028: The budget limit does not belong to the budget.');
} }
$data = $request->getAll(); $data = $request->getAll();
$data['fire_webhooks'] = $data['fire_webhooks'] ?? true; $data['fire_webhooks'] ??= true;
$data['budget_id'] = $budget->id; $data['budget_id'] = $budget->id;
$budgetLimit = $this->blRepository->update($budgetLimit, $data); $budgetLimit = $this->blRepository->update($budgetLimit, $data);
$manager = $this->getManager(); $manager = $this->getManager();

View File

@@ -61,7 +61,7 @@ class StoreRequest extends FormRequest
'auto_budget_period' => ['auto_budget_period', 'convertString'], 'auto_budget_period' => ['auto_budget_period', 'convertString'],
// webhooks // webhooks
'fire_webhooks' => ['fire_webhooks','boolean'] 'fire_webhooks' => ['fire_webhooks', 'boolean'],
]; ];
return $this->getAllData($fields); return $this->getAllData($fields);

View File

@@ -61,7 +61,7 @@ class UpdateRequest extends FormRequest
'auto_budget_period' => ['auto_budget_period', 'convertString'], 'auto_budget_period' => ['auto_budget_period', 'convertString'],
// webhooks // webhooks
'fire_webhooks' => ['fire_webhooks','boolean'] 'fire_webhooks' => ['fire_webhooks', 'boolean'],
]; ];
$allData = $this->getAllData($fields); $allData = $this->getAllData($fields);
if (array_key_exists('auto_budget_type', $allData)) { if (array_key_exists('auto_budget_type', $allData)) {

View File

@@ -25,9 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Models\BudgetLimit; namespace FireflyIII\Api\V1\Requests\Models\BudgetLimit;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Factory\TransactionCurrencyFactory; use FireflyIII\Factory\TransactionCurrencyFactory;
use FireflyIII\Models\Budget;
use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidPositiveAmount; use FireflyIII\Rules\IsValidPositiveAmount;
use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Facades\Amount;
@@ -89,7 +87,7 @@ class StoreRequest extends FormRequest
$budget = $this->route()->parameter('budget'); $budget = $this->route()->parameter('budget');
$validator->after( $validator->after(
static function (Validator $validator) use ($budget): void { static function (Validator $validator) use ($budget): void {
if(0 !== count($validator->failed())) { if (0 !== count($validator->failed())) {
return; return;
} }
$data = $validator->getData(); $data = $validator->getData();
@@ -115,7 +113,7 @@ class StoreRequest extends FormRequest
->where('budget_limits.transaction_currency_id', $currency->id) ->where('budget_limits.transaction_currency_id', $currency->id)
->first(['budget_limits.*']) ->first(['budget_limits.*'])
; ;
if(null !== $limit) { if (null !== $limit) {
$validator->errors()->add('start', trans('validation.limit_exists')); $validator->errors()->add('start', trans('validation.limit_exists'));
} }
} }

View File

@@ -55,7 +55,7 @@ class UpdateRequest extends FormRequest
'notes' => ['notes', 'stringWithNewlines'], 'notes' => ['notes', 'stringWithNewlines'],
// webhooks // webhooks
'fire_webhooks' => ['fire_webhooks','boolean'] 'fire_webhooks' => ['fire_webhooks', 'boolean'],
]; ];
if (false === $this->has('notes')) { if (false === $this->has('notes')) {
// ignore notes, not submitted. // ignore notes, not submitted.

View File

@@ -146,7 +146,7 @@ class Account extends Model
protected function accountId(): Attribute protected function accountId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -159,7 +159,8 @@ class Account extends Model
/** @var null|AccountMeta $metaValue */ /** @var null|AccountMeta $metaValue */
$metaValue = $this->accountMeta() $metaValue = $this->accountMeta()
->where('name', 'account_number') ->where('name', 'account_number')
->first(); ->first()
;
return null !== $metaValue ? $metaValue->data : ''; return null !== $metaValue ? $metaValue->data : '';
}); });
@@ -176,7 +177,7 @@ class Account extends Model
protected function accountTypeId(): Attribute protected function accountTypeId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -220,14 +221,14 @@ class Account extends Model
protected function iban(): Attribute protected function iban(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => null === $value ? null : trim(str_replace(' ', '', (string)$value)), get: static fn ($value) => null === $value ? null : trim(str_replace(' ', '', (string)$value)),
); );
} }
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -237,7 +238,7 @@ class Account extends Model
protected function virtualBalance(): Attribute protected function virtualBalance(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
} }

View File

@@ -27,6 +27,7 @@ use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use function Safe\json_decode; use function Safe\json_decode;
use function Safe\json_encode; use function Safe\json_encode;
@@ -52,6 +53,6 @@ class AccountMeta extends Model
protected function data(): Attribute protected function data(): Attribute
{ {
return Attribute::make(get: fn(mixed $value) => (string)json_decode((string)$value, true), set: fn(mixed $value) => ['data' => json_encode($value)]); return Attribute::make(get: fn (mixed $value) => (string)json_decode((string)$value, true), set: fn (mixed $value) => ['data' => json_encode($value)]);
} }
} }

View File

@@ -100,7 +100,7 @@ class Attachment extends Model
protected function attachableId(): Attribute protected function attachableId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }

View File

@@ -48,7 +48,7 @@ class AuditLogEntry extends Model
protected function auditableId(): Attribute protected function auditableId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -66,7 +66,7 @@ class AuditLogEntry extends Model
protected function changerId(): Attribute protected function changerId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -70,14 +70,14 @@ class AutoBudget extends Model
protected function amount(): Attribute protected function amount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
protected function budgetId(): Attribute protected function budgetId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -91,7 +91,7 @@ class AutoBudget extends Model
protected function transactionCurrencyId(): Attribute protected function transactionCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -80,7 +80,7 @@ class AvailableBudget extends Model
protected function amount(): Attribute protected function amount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
@@ -103,23 +103,23 @@ class AvailableBudget extends Model
protected function endDate(): Attribute protected function endDate(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: fn(string $value) => Carbon::parse($value), get: fn (string $value) => Carbon::parse($value),
set: fn(Carbon $value) => $value->format('Y-m-d'), set: fn (Carbon $value) => $value->format('Y-m-d'),
); );
} }
protected function startDate(): Attribute protected function startDate(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: fn(string $value) => Carbon::parse($value), get: fn (string $value) => Carbon::parse($value),
set: fn(Carbon $value) => $value->format('Y-m-d'), set: fn (Carbon $value) => $value->format('Y-m-d'),
); );
} }
protected function transactionCurrencyId(): Attribute protected function transactionCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -151,7 +151,7 @@ class Bill extends Model
protected function amountMax(): Attribute protected function amountMax(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
@@ -161,7 +161,7 @@ class Bill extends Model
protected function amountMin(): Attribute protected function amountMin(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
@@ -189,7 +189,7 @@ class Bill extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -199,14 +199,14 @@ class Bill extends Model
protected function skip(): Attribute protected function skip(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function transactionCurrencyId(): Attribute protected function transactionCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -125,7 +125,7 @@ class Budget extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -52,7 +52,8 @@ class BudgetLimit extends Model
$budgetLimit = self::where('budget_limits.id', $budgetLimitId) $budgetLimit = self::where('budget_limits.id', $budgetLimitId)
->leftJoin('budgets', 'budgets.id', '=', 'budget_limits.budget_id') ->leftJoin('budgets', 'budgets.id', '=', 'budget_limits.budget_id')
->where('budgets.user_id', auth()->user()->id) ->where('budgets.user_id', auth()->user()->id)
->first(['budget_limits.*']); ->first(['budget_limits.*'])
;
if (null !== $budgetLimit) { if (null !== $budgetLimit) {
return $budgetLimit; return $budgetLimit;
} }
@@ -85,14 +86,14 @@ class BudgetLimit extends Model
protected function amount(): Attribute protected function amount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
protected function budgetId(): Attribute protected function budgetId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -112,7 +113,7 @@ class BudgetLimit extends Model
protected function transactionCurrencyId(): Attribute protected function transactionCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -27,6 +27,7 @@ use FireflyIII\Support\Models\ReturnsIntegerIdTrait;
use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use function Safe\json_decode; use function Safe\json_decode;
use function Safe\json_encode; use function Safe\json_encode;
@@ -51,6 +52,6 @@ class Configuration extends Model
*/ */
protected function data(): Attribute protected function data(): Attribute
{ {
return Attribute::make(get: fn($value) => json_decode((string)$value), set: fn($value) => ['data' => json_encode($value)]); return Attribute::make(get: fn ($value) => json_decode((string)$value), set: fn ($value) => ['data' => json_encode($value)]);
} }
} }

View File

@@ -73,28 +73,28 @@ class CurrencyExchangeRate extends Model
protected function fromCurrencyId(): Attribute protected function fromCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function rate(): Attribute protected function rate(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
protected function toCurrencyId(): Attribute protected function toCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function userRate(): Attribute protected function userRate(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
} }

View File

@@ -66,7 +66,7 @@ class GroupMembership extends Model
protected function userRoleId(): Attribute protected function userRoleId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -81,7 +81,7 @@ class Location extends Model
protected function locatableId(): Attribute protected function locatableId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -56,7 +56,7 @@ class Note extends Model
protected function noteableId(): Attribute protected function noteableId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -52,7 +52,8 @@ class ObjectGroup extends Model
/** @var null|ObjectGroup $objectGroup */ /** @var null|ObjectGroup $objectGroup */
$objectGroup = self::where('object_groups.id', $objectGroupId) $objectGroup = self::where('object_groups.id', $objectGroupId)
->where('object_groups.user_id', auth()->user()->id)->first(); ->where('object_groups.user_id', auth()->user()->id)->first()
;
if (null !== $objectGroup) { if (null !== $objectGroup) {
return $objectGroup; return $objectGroup;
} }
@@ -104,7 +105,7 @@ class ObjectGroup extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -56,7 +56,8 @@ class PiggyBank extends Model
$piggyBank = self::where('piggy_banks.id', $piggyBankId) $piggyBank = self::where('piggy_banks.id', $piggyBankId)
->leftJoin('account_piggy_bank', 'account_piggy_bank.piggy_bank_id', '=', 'piggy_banks.id') ->leftJoin('account_piggy_bank', 'account_piggy_bank.piggy_bank_id', '=', 'piggy_banks.id')
->leftJoin('accounts', 'accounts.id', '=', 'account_piggy_bank.account_id') ->leftJoin('accounts', 'accounts.id', '=', 'account_piggy_bank.account_id')
->where('accounts.user_id', auth()->user()->id)->first(['piggy_banks.*']); ->where('accounts.user_id', auth()->user()->id)->first(['piggy_banks.*'])
;
if (null !== $piggyBank) { if (null !== $piggyBank) {
return $piggyBank; return $piggyBank;
} }
@@ -122,7 +123,7 @@ class PiggyBank extends Model
protected function accountId(): Attribute protected function accountId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -145,7 +146,7 @@ class PiggyBank extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -155,7 +156,7 @@ class PiggyBank extends Model
protected function targetAmount(): Attribute protected function targetAmount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
} }

View File

@@ -64,7 +64,7 @@ class PiggyBankEvent extends Model
protected function amount(): Attribute protected function amount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
@@ -82,7 +82,7 @@ class PiggyBankEvent extends Model
protected function piggyBankId(): Attribute protected function piggyBankId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -68,7 +68,7 @@ class PiggyBankRepetition extends Model
protected function currentAmount(): Attribute protected function currentAmount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
@@ -81,7 +81,7 @@ class PiggyBankRepetition extends Model
protected function piggyBankId(): Attribute protected function piggyBankId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -102,6 +102,7 @@ class PiggyBankRepetition extends Model
$q->where('target_date', '>=', $date->format('Y-m-d 00:00:00')); $q->where('target_date', '>=', $date->format('Y-m-d 00:00:00'));
$q->orWhereNull('target_date'); $q->orWhereNull('target_date');
} }
); )
;
} }
} }

View File

@@ -139,7 +139,7 @@ class Recurrence extends Model
protected function transactionTypeId(): Attribute protected function transactionTypeId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -58,7 +58,7 @@ class RecurrenceMeta extends Model
protected function recurrenceId(): Attribute protected function recurrenceId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -82,21 +82,21 @@ class RecurrenceRepetition extends Model
protected function recurrenceId(): Attribute protected function recurrenceId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function repetitionSkip(): Attribute protected function repetitionSkip(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function weekend(): Attribute protected function weekend(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -91,7 +91,7 @@ class RecurrenceTransaction extends Model
protected function amount(): Attribute protected function amount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
@@ -110,42 +110,42 @@ class RecurrenceTransaction extends Model
protected function destinationId(): Attribute protected function destinationId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function foreignAmount(): Attribute protected function foreignAmount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
protected function recurrenceId(): Attribute protected function recurrenceId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function sourceId(): Attribute protected function sourceId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function transactionCurrencyId(): Attribute protected function transactionCurrencyId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function userId(): Attribute protected function userId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -58,7 +58,7 @@ class RecurrenceTransactionMeta extends Model
protected function rtId(): Attribute protected function rtId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -110,20 +110,20 @@ class Rule extends Model
protected function description(): Attribute protected function description(): Attribute
{ {
return Attribute::make(set: fn($value) => ['description' => e($value)]); return Attribute::make(set: fn ($value) => ['description' => e($value)]);
} }
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function ruleGroupId(): Attribute protected function ruleGroupId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -80,14 +80,14 @@ class RuleAction extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function ruleId(): Attribute protected function ruleId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -94,7 +94,7 @@ class RuleGroup extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -53,14 +53,14 @@ class RuleTrigger extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function ruleId(): Attribute protected function ruleId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -113,7 +113,7 @@ class Transaction extends Model
protected function accountId(): Attribute protected function accountId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
@@ -151,14 +151,14 @@ class Transaction extends Model
protected function amount(): Attribute protected function amount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
protected function balanceDirty(): Attribute protected function balanceDirty(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => 1 === (int)$value, get: static fn ($value) => 1 === (int)$value,
); );
} }
@@ -201,14 +201,14 @@ class Transaction extends Model
protected function foreignAmount(): Attribute protected function foreignAmount(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (string)$value, get: static fn ($value) => (string)$value,
); );
} }
protected function transactionJournalId(): Attribute protected function transactionJournalId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }

View File

@@ -115,7 +115,7 @@ class TransactionCurrency extends Model
protected function decimalPlaces(): Attribute protected function decimalPlaces(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -61,7 +61,8 @@ class TransactionGroup extends Model
/** @var null|TransactionGroup $group */ /** @var null|TransactionGroup $group */
$group = $user->transactionGroups() $group = $user->transactionGroups()
->with(['transactionJournals', 'transactionJournals.transactions']) ->with(['transactionJournals', 'transactionJournals.transactions'])
->where('transaction_groups.id', $groupId)->first(['transaction_groups.*']); ->where('transaction_groups.id', $groupId)->first(['transaction_groups.*'])
;
if (null !== $group) { if (null !== $group) {
app('log')->debug(sprintf('Found group #%d.', $group->id)); app('log')->debug(sprintf('Found group #%d.', $group->id));

View File

@@ -230,14 +230,14 @@ class TransactionJournal extends Model
protected function order(): Attribute protected function order(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function transactionTypeId(): Attribute protected function transactionTypeId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }

View File

@@ -50,7 +50,8 @@ class TransactionJournalLink extends Model
->leftJoin('transaction_journals as t_b', 't_b.id', '=', 'destination_id') ->leftJoin('transaction_journals as t_b', 't_b.id', '=', 'destination_id')
->where('t_a.user_id', auth()->user()->id) ->where('t_a.user_id', auth()->user()->id)
->where('t_b.user_id', auth()->user()->id) ->where('t_b.user_id', auth()->user()->id)
->first(['journal_links.*']); ->first(['journal_links.*'])
;
if (null !== $link) { if (null !== $link) {
return $link; return $link;
} }
@@ -93,21 +94,21 @@ class TransactionJournalLink extends Model
protected function destinationId(): Attribute protected function destinationId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function linkTypeId(): Attribute protected function linkTypeId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
protected function sourceId(): Attribute protected function sourceId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -28,6 +28,7 @@ use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use function Safe\json_decode; use function Safe\json_decode;
use function Safe\json_encode; use function Safe\json_encode;
@@ -56,7 +57,7 @@ class TransactionJournalMeta extends Model
protected function data(): Attribute protected function data(): Attribute
{ {
return Attribute::make(get: fn($value) => json_decode((string)$value, false), set: function ($value) { return Attribute::make(get: fn ($value) => json_decode((string)$value, false), set: function ($value) {
$data = json_encode($value); $data = json_encode($value);
return ['data' => $data, 'hash' => hash('sha256', $data)]; return ['data' => $data, 'hash' => hash('sha256', $data)];
@@ -66,7 +67,7 @@ class TransactionJournalMeta extends Model
protected function transactionJournalId(): Attribute protected function transactionJournalId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -68,7 +68,7 @@ class WebhookAttempt extends Model
protected function webhookMessageId(): Attribute protected function webhookMessageId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -41,7 +41,7 @@ class WebhookDelivery extends Model
protected function key(): Attribute protected function key(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -89,14 +89,14 @@ class WebhookMessage extends Model
protected function sent(): Attribute protected function sent(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (bool)$value, get: static fn ($value) => (bool)$value,
); );
} }
protected function webhookId(): Attribute protected function webhookId(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -41,7 +41,7 @@ class WebhookResponse extends Model
protected function key(): Attribute protected function key(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -41,7 +41,7 @@ class WebhookTrigger extends Model
protected function key(): Attribute protected function key(): Attribute
{ {
return Attribute::make( return Attribute::make(
get: static fn($value) => (int)$value, get: static fn ($value) => (int)$value,
); );
} }
} }

View File

@@ -216,7 +216,5 @@ class EventServiceProvider extends ServiceProvider
* Register any events for your application. * Register any events for your application.
*/ */
#[Override] #[Override]
public function boot(): void public function boot(): void {}
{
}
} }

View File

@@ -395,63 +395,63 @@ class BudgetLimitRepository implements BudgetLimitRepositoryInterface, UserGroup
return $budgetLimit; return $budgetLimit;
} }
// public function updateLimitAmount(Budget $budget, Carbon $start, Carbon $end, string $amount): ?BudgetLimit // public function updateLimitAmount(Budget $budget, Carbon $start, Carbon $end, string $amount): ?BudgetLimit
// { // {
// // count the limits: // // count the limits:
// $limits = $budget->budgetlimits() // $limits = $budget->budgetlimits()
// ->where('budget_limits.start_date', $start->format('Y-m-d 00:00:00')) // ->where('budget_limits.start_date', $start->format('Y-m-d 00:00:00'))
// ->where('budget_limits.end_date', $end->format('Y-m-d 00:00:00')) // ->where('budget_limits.end_date', $end->format('Y-m-d 00:00:00'))
// ->count('budget_limits.*') // ->count('budget_limits.*')
// ; // ;
// Log::debug(sprintf('Found %d budget limits.', $limits)); // Log::debug(sprintf('Found %d budget limits.', $limits));
// //
// // there might be a budget limit for these dates: // // there might be a budget limit for these dates:
// /** @var null|BudgetLimit $limit */ // /** @var null|BudgetLimit $limit */
// $limit = $budget->budgetlimits() // $limit = $budget->budgetlimits()
// ->where('budget_limits.start_date', $start->format('Y-m-d 00:00:00')) // ->where('budget_limits.start_date', $start->format('Y-m-d 00:00:00'))
// ->where('budget_limits.end_date', $end->format('Y-m-d 00:00:00')) // ->where('budget_limits.end_date', $end->format('Y-m-d 00:00:00'))
// ->first(['budget_limits.*']) // ->first(['budget_limits.*'])
// ; // ;
// //
// // if more than 1 limit found, delete the others: // // if more than 1 limit found, delete the others:
// if ($limits > 1 && null !== $limit) { // if ($limits > 1 && null !== $limit) {
// Log::debug(sprintf('Found more than 1, delete all except #%d', $limit->id)); // Log::debug(sprintf('Found more than 1, delete all except #%d', $limit->id));
// $budget->budgetlimits() // $budget->budgetlimits()
// ->where('budget_limits.start_date', $start->format('Y-m-d 00:00:00')) // ->where('budget_limits.start_date', $start->format('Y-m-d 00:00:00'))
// ->where('budget_limits.end_date', $end->format('Y-m-d 00:00:00')) // ->where('budget_limits.end_date', $end->format('Y-m-d 00:00:00'))
// ->where('budget_limits.id', '!=', $limit->id)->delete() // ->where('budget_limits.id', '!=', $limit->id)->delete()
// ; // ;
// } // }
// //
// // delete if amount is zero. // // delete if amount is zero.
// // Returns 0 if the two operands are equal, // // Returns 0 if the two operands are equal,
// // 1 if the left_operand is larger than the right_operand, -1 otherwise. // // 1 if the left_operand is larger than the right_operand, -1 otherwise.
// if (null !== $limit && bccomp($amount, '0') <= 0) { // if (null !== $limit && bccomp($amount, '0') <= 0) {
// Log::debug(sprintf('%s is zero, delete budget limit #%d', $amount, $limit->id)); // Log::debug(sprintf('%s is zero, delete budget limit #%d', $amount, $limit->id));
// $limit->delete(); // $limit->delete();
// //
// return null; // return null;
// } // }
// // update if exists: // // update if exists:
// if (null !== $limit) { // if (null !== $limit) {
// Log::debug(sprintf('Existing budget limit is #%d, update this to amount %s', $limit->id, $amount)); // Log::debug(sprintf('Existing budget limit is #%d, update this to amount %s', $limit->id, $amount));
// $limit->amount = $amount; // $limit->amount = $amount;
// $limit->save(); // $limit->save();
// //
// return $limit; // return $limit;
// } // }
// Log::debug('No existing budget limit, create a new one'); // Log::debug('No existing budget limit, create a new one');
// // or create one and return it. // // or create one and return it.
// $limit = new BudgetLimit(); // $limit = new BudgetLimit();
// $limit->budget()->associate($budget); // $limit->budget()->associate($budget);
// $limit->start_date = $start->startOfDay(); // $limit->start_date = $start->startOfDay();
// $limit->start_date_tz = $start->format('e'); // $limit->start_date_tz = $start->format('e');
// $limit->end_date = $end->startOfDay(); // $limit->end_date = $end->startOfDay();
// $limit->end_date_tz = $end->format('e'); // $limit->end_date_tz = $end->format('e');
// $limit->amount = $amount; // $limit->amount = $amount;
// $limit->save(); // $limit->save();
// Log::debug(sprintf('Created new budget limit with ID #%d and amount %s', $limit->id, $amount)); // Log::debug(sprintf('Created new budget limit with ID #%d and amount %s', $limit->id, $amount));
// //
// return $limit; // return $limit;
// } // }
} }

View File

@@ -81,5 +81,5 @@ interface BudgetLimitRepositoryInterface
public function update(BudgetLimit $budgetLimit, array $data): BudgetLimit; public function update(BudgetLimit $budgetLimit, array $data): BudgetLimit;
//public function updateLimitAmount(Budget $budget, Carbon $start, Carbon $end, string $amount): ?BudgetLimit; // public function updateLimitAmount(Budget $budget, Carbon $start, Carbon $end, string $amount): ?BudgetLimit;
} }

View File

@@ -115,7 +115,8 @@ class BudgetLimitEnrichment implements EnrichmentInterface
$notes = Note::query()->whereIn('noteable_id', $this->ids) $notes = Note::query()->whereIn('noteable_id', $this->ids)
->whereNotNull('notes.text') ->whereNotNull('notes.text')
->where('notes.text', '!=', '') ->where('notes.text', '!=', '')
->where('noteable_type', BudgetLimit::class)->get(['notes.noteable_id', 'notes.text'])->toArray(); ->where('noteable_type', BudgetLimit::class)->get(['notes.noteable_id', 'notes.text'])->toArray()
;
foreach ($notes as $note) { foreach ($notes as $note) {
$this->notes[(int)$note['noteable_id']] = (string)$note['text']; $this->notes[(int)$note['noteable_id']] = (string)$note['text'];
} }
@@ -180,13 +181,13 @@ class BudgetLimitEnrichment implements EnrichmentInterface
private function stringifyIds(): void private function stringifyIds(): void
{ {
$this->expenses = array_map(fn($first) => array_map(function ($second) { $this->expenses = array_map(fn ($first) => array_map(function ($second) {
$second['currency_id'] = (string)($second['currency_id'] ?? 0); $second['currency_id'] = (string)($second['currency_id'] ?? 0);
return $second; return $second;
}, $first), $this->expenses); }, $first), $this->expenses);
$this->pcExpenses = array_map(fn($first) => array_map(function ($second) { $this->pcExpenses = array_map(fn ($first) => array_map(function ($second) {
$second['currency_id'] = (string)($second['currency_id'] ?? 0); $second['currency_id'] = (string)($second['currency_id'] ?? 0);
return $second; return $second;
@@ -195,8 +196,9 @@ class BudgetLimitEnrichment implements EnrichmentInterface
private function filterToBudget(array $expenses, int $budget): array private function filterToBudget(array $expenses, int $budget): array
{ {
$result = array_filter($expenses, fn(array $item) => (int)$item['budget_id'] === $budget); $result = array_filter($expenses, fn (array $item) => (int)$item['budget_id'] === $budget);
Log::debug(sprintf('filterToBudget for budget #%d, from %d to %d items', $budget, count($expenses), count($result))); Log::debug(sprintf('filterToBudget for budget #%d, from %d to %d items', $budget, count($expenses), count($result)));
return $result; return $result;
} }
} }

28
composer.lock generated
View File

@@ -11819,16 +11819,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "12.3.10", "version": "12.3.11",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "0d401d0df2e3c1703be425ecdc2d04f5c095938d" "reference": "6a62f2b394e042884e4997ddc8b8db1ce56a0009"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0d401d0df2e3c1703be425ecdc2d04f5c095938d", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6a62f2b394e042884e4997ddc8b8db1ce56a0009",
"reference": "0d401d0df2e3c1703be425ecdc2d04f5c095938d", "reference": "6a62f2b394e042884e4997ddc8b8db1ce56a0009",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -11847,7 +11847,7 @@
"phpunit/php-invoker": "^6.0.0", "phpunit/php-invoker": "^6.0.0",
"phpunit/php-text-template": "^5.0.0", "phpunit/php-text-template": "^5.0.0",
"phpunit/php-timer": "^8.0.0", "phpunit/php-timer": "^8.0.0",
"sebastian/cli-parser": "^4.0.0", "sebastian/cli-parser": "^4.1.0",
"sebastian/comparator": "^7.1.3", "sebastian/comparator": "^7.1.3",
"sebastian/diff": "^7.0.0", "sebastian/diff": "^7.0.0",
"sebastian/environment": "^8.0.3", "sebastian/environment": "^8.0.3",
@@ -11896,7 +11896,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.3.10" "source": "https://github.com/sebastianbergmann/phpunit/tree/12.3.11"
}, },
"funding": [ "funding": [
{ {
@@ -11920,7 +11920,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-09-11T10:35:19+00:00" "time": "2025-09-14T06:21:44+00:00"
}, },
{ {
"name": "rector/rector", "name": "rector/rector",
@@ -11984,16 +11984,16 @@
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
"version": "4.1.0", "version": "4.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git", "url": "https://github.com/sebastianbergmann/cli-parser.git",
"reference": "8fd93be538992d556aaa45c74570129448a42084" "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/8fd93be538992d556aaa45c74570129448a42084", "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04",
"reference": "8fd93be538992d556aaa45c74570129448a42084", "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -12005,7 +12005,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "4.1-dev" "dev-main": "4.2-dev"
} }
}, },
"autoload": { "autoload": {
@@ -12029,7 +12029,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues", "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
"security": "https://github.com/sebastianbergmann/cli-parser/security/policy", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
"source": "https://github.com/sebastianbergmann/cli-parser/tree/4.1.0" "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0"
}, },
"funding": [ "funding": [
{ {
@@ -12049,7 +12049,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-09-13T14:16:18+00:00" "time": "2025-09-14T09:36:45+00:00"
}, },
{ {
"name": "sebastian/comparator", "name": "sebastian/comparator",

View File

@@ -78,8 +78,8 @@ return [
'running_balance_column' => env('USE_RUNNING_BALANCE', false), 'running_balance_column' => env('USE_RUNNING_BALANCE', false),
// see cer.php for exchange rates feature flag. // see cer.php for exchange rates feature flag.
], ],
'version' => 'develop/2025-09-13', 'version' => 'develop/2025-09-15',
'build_time' => 1757782204, 'build_time' => 1757906521,
'api_version' => '2.1.0', // field is no longer used. 'api_version' => '2.1.0', // field is no longer used.
'db_version' => 26, 'db_version' => 26,

26
package-lock.json generated
View File

@@ -3159,13 +3159,13 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "24.3.3", "version": "24.4.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.3.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.4.0.tgz",
"integrity": "sha512-GKBNHjoNw3Kra1Qg5UXttsY5kiWMEfoHq2TmXb+b1rcm6N7B3wTrFYIf/oSZ1xNQ+hVVijgLkiDZh7jRRsh+Gw==", "integrity": "sha512-gUuVEAK4/u6F9wRLznPUU4WGUacSEBDPoC2TrBkw3GAnOLHBL45QdfHOXp1kJ4ypBGLxTOB+t7NJLpKoC3gznQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"undici-types": "~7.10.0" "undici-types": "~7.11.0"
} }
}, },
"node_modules/@types/node-forge": { "node_modules/@types/node-forge": {
@@ -3949,9 +3949,9 @@
} }
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.12.1", "version": "1.12.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.12.1.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.2.tgz",
"integrity": "sha512-Kn4kbSXpkFHCGE6rBFNwIv0GQs4AvDT80jlveJDKFxjbTYMUeB4QtsdPCv6H8Cm19Je7IU6VFtRl2zWZI0rudQ==", "integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -5375,9 +5375,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/debug": { "node_modules/debug": {
"version": "4.4.1", "version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -11357,9 +11357,9 @@
} }
}, },
"node_modules/undici-types": { "node_modules/undici-types": {
"version": "7.10.0", "version": "7.11.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.11.0.tgz",
"integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", "integrity": "sha512-kt1ZriHTi7MU+Z/r9DOdAI3ONdaR3M3csEaRc6ewa4f4dTvX4cQCbJ4NkEn0ohE4hHtq85+PhPSTY+pO/1PwgA==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },