Auto commit for release 'develop' on 2024-10-14

This commit is contained in:
github-actions 2024-10-14 05:14:52 +02:00
parent 9463285ac9
commit e0c446dd13
26 changed files with 3613 additions and 3503 deletions

View File

@ -143,7 +143,6 @@ class MFAHandler
}
}
public function sendBackupNoLeftMail(MFABackupNoLeft $event): void
{
app('log')->debug(sprintf('Now in %s', __METHOD__));

View File

@ -223,7 +223,7 @@ class TwoFactorController extends Controller
private function addToMFAFailureCounter(): void
{
$preference = (int) app('preferences')->get('mfa_failure_count', 0)->data;
$preference++;
++$preference;
Log::channel('audit')->info(sprintf('MFA failure count is set to %d.', $preference));
app('preferences')->set('mfa_failure_count', $preference);
}
@ -232,6 +232,7 @@ class TwoFactorController extends Controller
{
$value = (int) app('preferences')->get('mfa_failure_count', 0)->data;
Log::channel('audit')->info(sprintf('MFA failure count is %d.', $value));
return $value;
}

View File

@ -23,7 +23,6 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Profile;
use FireflyIII\Events\ActuallyLoggedIn;
use FireflyIII\Events\Security\DisabledMFA;
use FireflyIII\Events\Security\EnabledMFA;
use FireflyIII\Events\Security\MFANewBackupCodes;
@ -40,9 +39,6 @@ use Illuminate\Http\Request;
use Illuminate\Routing\Redirector;
use Illuminate\Support\Facades\Log;
use Illuminate\View\View;
use PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException;
use PragmaRX\Google2FA\Exceptions\InvalidCharactersException;
use PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException;
use PragmaRX\Recovery\Recovery;
/**
@ -94,6 +90,7 @@ class MfaController extends Controller
$subTitle = (string)trans('firefly.mfa_index_title');
$subTitleIcon = 'fa-calculator';
$enabledMFA = null !== auth()->user()->mfa_secret;
return view('profile.mfa.index')->with(compact('subTitle', 'subTitleIcon', 'enabledMFA'));
}
@ -107,6 +104,7 @@ class MfaController extends Controller
$enabledMFA = null !== auth()->user()->mfa_secret;
if (false === $enabledMFA) {
request()->session()->flash('info', trans('firefly.mfa_already_disabled'));
return redirect(route('profile.index'));
}
$subTitle = (string)trans('firefly.mfa_index_title');
@ -186,7 +184,8 @@ class MfaController extends Controller
}
public function backupCodesPost(ExistingTokenFormRequest $request): Redirector | RedirectResponse | View {
public function backupCodesPost(ExistingTokenFormRequest $request): Redirector|RedirectResponse|View
{
if (!$this->internalAuth) {
$request->session()->flash('error', trans('firefly.external_user_mgt_disabled'));
@ -195,6 +194,7 @@ class MfaController extends Controller
$enabledMFA = null !== auth()->user()->mfa_secret;
if (false === $enabledMFA) {
request()->session()->flash('info', trans('firefly.mfa_not_enabled'));
return redirect(route('profile.index'));
}
// generate recovery codes:
@ -203,7 +203,8 @@ class MfaController extends Controller
->setCount(8) // Generate 8 codes
->setBlocks(2) // Every code must have 2 blocks
->setChars(6) // Each block must have 6 chars
->toArray();
->toArray()
;
$codes = implode("\r\n", $recoveryCodes);
app('preferences')->set('mfa_recovery', $recoveryCodes);
@ -217,6 +218,7 @@ class MfaController extends Controller
return view('profile.mfa.backup-codes-post')->with(compact('codes'));
}
/**
* @throws FireflyException
*/
@ -230,6 +232,7 @@ class MfaController extends Controller
$enabledMFA = null !== auth()->user()->mfa_secret;
if (false === $enabledMFA) {
request()->session()->flash('info', trans('firefly.mfa_not_enabled'));
return redirect(route('profile.index'));
}
@ -258,6 +261,7 @@ class MfaController extends Controller
$password = $request->get('password');
if (!auth()->validate(['email' => $user->email, 'password' => $password])) {
session()->flash('error', 'Bad user pw, no MFA for you!');
return redirect(route('profile.mfa.index'));
}
@ -295,7 +299,6 @@ class MfaController extends Controller
return redirect(route('profile.mfa.backup-codes'));
}
/**
* TODO duplicate code.
*
@ -336,5 +339,4 @@ class MfaController extends Controller
}
app('preferences')->set('mfa_history', $newHistory);
}
}

View File

@ -30,7 +30,6 @@ use FireflyIII\Http\Middleware\IsDemoUser;
use FireflyIII\Http\Requests\DeleteAccountFormRequest;
use FireflyIII\Http\Requests\EmailFormRequest;
use FireflyIII\Http\Requests\ProfileFormRequest;
use FireflyIII\Http\Requests\TokenFormRequest;
use FireflyIII\Models\Preference;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\Support\Http\Controllers\CreateStuff;
@ -45,10 +44,6 @@ use Illuminate\Routing\Redirector;
use Illuminate\Support\Collection;
use Illuminate\View\View;
use Laravel\Passport\ClientRepository;
use PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException;
use PragmaRX\Google2FA\Exceptions\InvalidCharactersException;
use PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException;
use PragmaRX\Recovery\Recovery;
/**
* Class ProfileController.

View File

@ -23,7 +23,6 @@ declare(strict_types=1);
namespace FireflyIII\Notifications\Security;
use FireflyIII\Models\Bill;
use FireflyIII\Support\Notifications\UrlValidator;
use FireflyIII\User;
use Illuminate\Bus\Queueable;

View File

@ -152,6 +152,7 @@ class Preferences
public function beginsWith(User $user, string $search): Collection
{
$value = sprintf('%s%%', $search);
return Preference::where('user_id', $user->id)->whereLike('name', $value)->get();
}

View File

@ -77,6 +77,7 @@ class FireflyValidator extends Validator
return (bool) \Google2FA::verifyKey((string) $secret, $value);
}
public function validateExistingMfaCode($attribute, $value): bool
{
if (!is_string($value) || 6 !== strlen($value)) {
@ -539,7 +540,8 @@ public function validateExistingMfaCode($attribute, $value): bool
/** @var null|Account $result */
$result = auth()->user()->accounts()->whereIn('account_type_id', $accountTypeIds)->where('id', '!=', $ignore)
->where('name', $value)
->first();
->first()
;
return null === $result;
}
@ -556,7 +558,8 @@ public function validateExistingMfaCode($attribute, $value): bool
/** @var null|Account $result */
$result = auth()->user()->accounts()->where('account_type_id', $type->id)->where('id', '!=', $ignore)
->where('name', $value)
->first();
->first()
;
return null === $result;
}
@ -574,7 +577,8 @@ public function validateExistingMfaCode($attribute, $value): bool
$entry = auth()->user()->accounts()->where('account_type_id', $type->id)->where('id', '!=', $ignore)
->where('name', $value)
->first();
->first()
;
return null === $entry;
}
@ -592,7 +596,8 @@ public function validateExistingMfaCode($attribute, $value): bool
$entry = auth()->user()->accounts()->where('account_type_id', $type->id)->where('id', '!=', $ignore)
->where('name', $value)
->first();
->first()
;
return null === $entry;
}
@ -620,7 +625,8 @@ public function validateExistingMfaCode($attribute, $value): bool
->whereNull('accounts.deleted_at')
->where('accounts.user_id', auth()->user()->id)
->where('account_meta.name', 'account_number')
->where('account_meta.data', json_encode($value));
->where('account_meta.data', json_encode($value))
;
if ($accountId > 0) {
// exclude current account from check.
@ -727,7 +733,8 @@ public function validateExistingMfaCode($attribute, $value): bool
->where('response', $response)
->where('delivery', $delivery)
->where('id', '!=', $existingId)
->where('url', $url)->count();
->where('url', $url)->count()
;
}
return false;
@ -763,7 +770,8 @@ public function validateExistingMfaCode($attribute, $value): bool
$result = \DB::table($table)->where('user_id', auth()->user()->id)->whereNull('deleted_at')
->where('id', '!=', $exclude)
->where($field, $value)
->first([$field]);
->first([$field])
;
if (null === $result) {
return true; // not found, so true.
}
@ -785,7 +793,8 @@ public function validateExistingMfaCode($attribute, $value): bool
$query = \DB::table('object_groups')
->whereNull('object_groups.deleted_at')
->where('object_groups.user_id', auth()->user()->id)
->where('object_groups.title', $value);
->where('object_groups.title', $value)
;
if (null !== $exclude) {
$query->where('object_groups.id', '!=', (int) $exclude);
}
@ -804,7 +813,8 @@ public function validateExistingMfaCode($attribute, $value): bool
{
$exclude = $parameters[0] ?? null;
$query = \DB::table('piggy_banks')->whereNull('piggy_banks.deleted_at')
->leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.account_id')->where('accounts.user_id', auth()->user()->id);
->leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.account_id')->where('accounts.user_id', auth()->user()->id)
;
if (null !== $exclude) {
$query->where('piggy_banks.id', '!=', (int) $exclude);
}

139
composer.lock generated
View File

@ -755,16 +755,16 @@
},
{
"name": "dragonmantank/cron-expression",
"version": "v3.3.3",
"version": "v3.4.0",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
"reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a"
"reference": "8c784d071debd117328803d86b2097615b457500"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
"reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
"url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500",
"reference": "8c784d071debd117328803d86b2097615b457500",
"shasum": ""
},
"require": {
@ -777,10 +777,14 @@
"require-dev": {
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^1.0",
"phpstan/phpstan-webmozart-assert": "^1.0",
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
"Cron\\": "src/Cron/"
@ -804,7 +808,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
"source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3"
"source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0"
},
"funding": [
{
@ -812,7 +816,7 @@
"type": "github"
}
],
"time": "2023-08-10T19:36:49+00:00"
"time": "2024-10-09T13:47:03+00:00"
},
{
"name": "egulias/email-validator",
@ -1996,16 +2000,16 @@
},
{
"name": "laravel-json-api/eloquent",
"version": "v4.2.0",
"version": "v4.3.0",
"source": {
"type": "git",
"url": "https://github.com/laravel-json-api/eloquent.git",
"reference": "35ccb634bd605697df3700660dedc0c292ac86ec"
"reference": "05644f31eb086e4d640f15eac7d03752ffcde99f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel-json-api/eloquent/zipball/35ccb634bd605697df3700660dedc0c292ac86ec",
"reference": "35ccb634bd605697df3700660dedc0c292ac86ec",
"url": "https://api.github.com/repos/laravel-json-api/eloquent/zipball/05644f31eb086e4d640f15eac7d03752ffcde99f",
"reference": "05644f31eb086e4d640f15eac7d03752ffcde99f",
"shasum": ""
},
"require": {
@ -2054,9 +2058,9 @@
],
"support": {
"issues": "https://github.com/laravel-json-api/eloquent/issues",
"source": "https://github.com/laravel-json-api/eloquent/tree/v4.2.0"
"source": "https://github.com/laravel-json-api/eloquent/tree/v4.3.0"
},
"time": "2024-08-26T08:11:13+00:00"
"time": "2024-10-13T12:53:07+00:00"
},
{
"name": "laravel-json-api/encoder-neomerx",
@ -2543,16 +2547,16 @@
},
{
"name": "laravel/framework",
"version": "v11.26.0",
"version": "v11.27.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "b8cb8998701d5b3cfe68539d3c3da1fc59ddd82b"
"reference": "a51d1f2b771c542324a3d9b76a98b1bbc75c0ee9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/b8cb8998701d5b3cfe68539d3c3da1fc59ddd82b",
"reference": "b8cb8998701d5b3cfe68539d3c3da1fc59ddd82b",
"url": "https://api.github.com/repos/laravel/framework/zipball/a51d1f2b771c542324a3d9b76a98b1bbc75c0ee9",
"reference": "a51d1f2b771c542324a3d9b76a98b1bbc75c0ee9",
"shasum": ""
},
"require": {
@ -2748,7 +2752,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2024-10-01T14:29:34+00:00"
"time": "2024-10-09T04:17:35+00:00"
},
{
"name": "laravel/passport",
@ -3204,38 +3208,38 @@
},
{
"name": "lcobucci/jwt",
"version": "5.3.0",
"version": "5.4.0",
"source": {
"type": "git",
"url": "https://github.com/lcobucci/jwt.git",
"reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83"
"reference": "aac4fd512681fd5cb4b77d2105ab7ec700c72051"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/08071d8d2c7f4b00222cc4b1fb6aa46990a80f83",
"reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83",
"url": "https://api.github.com/repos/lcobucci/jwt/zipball/aac4fd512681fd5cb4b77d2105ab7ec700c72051",
"reference": "aac4fd512681fd5cb4b77d2105ab7ec700c72051",
"shasum": ""
},
"require": {
"ext-openssl": "*",
"ext-sodium": "*",
"php": "~8.1.0 || ~8.2.0 || ~8.3.0",
"php": "~8.2.0 || ~8.3.0 || ~8.4.0",
"psr/clock": "^1.0"
},
"require-dev": {
"infection/infection": "^0.27.0",
"lcobucci/clock": "^3.0",
"infection/infection": "^0.29",
"lcobucci/clock": "^3.2",
"lcobucci/coding-standard": "^11.0",
"phpbench/phpbench": "^1.2.9",
"phpbench/phpbench": "^1.2",
"phpstan/extension-installer": "^1.2",
"phpstan/phpstan": "^1.10.7",
"phpstan/phpstan-deprecation-rules": "^1.1.3",
"phpstan/phpstan-phpunit": "^1.3.10",
"phpstan/phpstan-strict-rules": "^1.5.0",
"phpunit/phpunit": "^10.2.6"
"phpunit/phpunit": "^11.1"
},
"suggest": {
"lcobucci/clock": ">= 3.0"
"lcobucci/clock": ">= 3.2"
},
"type": "library",
"autoload": {
@ -3261,7 +3265,7 @@
],
"support": {
"issues": "https://github.com/lcobucci/jwt/issues",
"source": "https://github.com/lcobucci/jwt/tree/5.3.0"
"source": "https://github.com/lcobucci/jwt/tree/5.4.0"
},
"funding": [
{
@ -3273,7 +3277,7 @@
"type": "patreon"
}
],
"time": "2024-04-11T23:07:54+00:00"
"time": "2024-10-08T22:06:45+00:00"
},
{
"name": "league/commonmark",
@ -3465,16 +3469,16 @@
},
{
"name": "league/csv",
"version": "9.16.0",
"version": "9.17.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/csv.git",
"reference": "998280c6c34bd67d8125fdc8b45bae28d761b440"
"reference": "8cab815fb11ec93aa2f7b8a57b3daa1f1a364011"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/998280c6c34bd67d8125fdc8b45bae28d761b440",
"reference": "998280c6c34bd67d8125fdc8b45bae28d761b440",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/8cab815fb11ec93aa2f7b8a57b3daa1f1a364011",
"reference": "8cab815fb11ec93aa2f7b8a57b3daa1f1a364011",
"shasum": ""
},
"require": {
@ -3482,17 +3486,16 @@
"php": "^8.1.2"
},
"require-dev": {
"doctrine/collections": "^2.2.2",
"ext-dom": "*",
"ext-xdebug": "*",
"friendsofphp/php-cs-fixer": "^3.57.1",
"phpbench/phpbench": "^1.2.15",
"phpstan/phpstan": "^1.11.1",
"phpstan/phpstan-deprecation-rules": "^1.2.0",
"friendsofphp/php-cs-fixer": "^3.64.0",
"phpbench/phpbench": "^1.3.1",
"phpstan/phpstan": "^1.12.5",
"phpstan/phpstan-deprecation-rules": "^1.2.1",
"phpstan/phpstan-phpunit": "^1.4.0",
"phpstan/phpstan-strict-rules": "^1.6.0",
"phpunit/phpunit": "^10.5.16 || ^11.1.3",
"symfony/var-dumper": "^6.4.6 || ^7.0.7"
"phpstan/phpstan-strict-rules": "^1.6.1",
"phpunit/phpunit": "^10.5.16 || ^11.4.0",
"symfony/var-dumper": "^6.4.8 || ^7.1.5"
},
"suggest": {
"ext-dom": "Required to use the XMLConverter and the HTMLConverter classes",
@ -3510,7 +3513,7 @@
"src/functions_include.php"
],
"psr-4": {
"League\\Csv\\": "src"
"League\\Csv\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@ -3549,7 +3552,7 @@
"type": "github"
}
],
"time": "2024-05-24T11:04:54+00:00"
"time": "2024-10-10T10:30:28+00:00"
},
{
"name": "league/event",
@ -3607,16 +3610,16 @@
},
{
"name": "league/flysystem",
"version": "3.29.0",
"version": "3.29.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
"reference": "0adc0d9a51852e170e0028a60bd271726626d3f0"
"reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/0adc0d9a51852e170e0028a60bd271726626d3f0",
"reference": "0adc0d9a51852e170e0028a60bd271726626d3f0",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319",
"reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319",
"shasum": ""
},
"require": {
@ -3684,9 +3687,9 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.29.0"
"source": "https://github.com/thephpleague/flysystem/tree/3.29.1"
},
"time": "2024-09-29T11:59:11+00:00"
"time": "2024-10-08T08:58:34+00:00"
},
{
"name": "league/flysystem-local",
@ -11490,16 +11493,16 @@
},
{
"name": "nikic/php-parser",
"version": "v5.3.0",
"version": "v5.3.1",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a"
"reference": "8eea230464783aa9671db8eea6f8c6ac5285794b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3abf7425cd284141dc5d8d14a9ee444de3345d1a",
"reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b",
"reference": "8eea230464783aa9671db8eea6f8c6ac5285794b",
"shasum": ""
},
"require": {
@ -11542,9 +11545,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v5.3.0"
"source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1"
},
"time": "2024-09-29T13:56:26+00:00"
"time": "2024-10-08T18:51:32+00:00"
},
{
"name": "phar-io/manifest",
@ -11912,16 +11915,16 @@
},
{
"name": "phpstan/phpdoc-parser",
"version": "1.32.0",
"version": "1.33.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4"
"reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
"reference": "6ca22b154efdd9e3c68c56f5d94670920a1c19a4",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140",
"reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140",
"shasum": ""
},
"require": {
@ -11953,9 +11956,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.32.0"
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0"
},
"time": "2024-09-26T07:23:32+00:00"
"time": "2024-10-13T11:25:22+00:00"
},
{
"name": "phpstan/phpstan",
@ -12434,16 +12437,16 @@
},
{
"name": "phpunit/phpunit",
"version": "10.5.35",
"version": "10.5.36",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "7ac8b4e63f456046dcb4c9787da9382831a1874b"
"reference": "aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7ac8b4e63f456046dcb4c9787da9382831a1874b",
"reference": "7ac8b4e63f456046dcb4c9787da9382831a1874b",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870",
"reference": "aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870",
"shasum": ""
},
"require": {
@ -12515,7 +12518,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.35"
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.36"
},
"funding": [
{
@ -12531,7 +12534,7 @@
"type": "tidelift"
}
],
"time": "2024-09-19T10:52:21+00:00"
"time": "2024-10-08T15:36:51+00:00"
},
{
"name": "sebastian/cli-parser",

View File

@ -110,7 +110,7 @@ return [
'running_balance_column' => env('USE_RUNNING_BALANCE', false),
// see cer.php for exchange rates feature flag.
],
'version' => 'develop/2024-10-07',
'version' => 'develop/2024-10-14',
'api_version' => '2.1.0',
'db_version' => 24,

782
package-lock.json generated

File diff suppressed because it is too large Load Diff