From 78de8007772029743dd3fc25d072f823586fe397 Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 12 Nov 2025 18:02:24 +0100 Subject: [PATCH 1/4] Fix #11228 --- .../V1/Requests/Generic/ObjectTypeApiRequest.php | 15 ++++++++++----- app/Rules/Account/IsValidAccountTypeList.php | 2 +- app/Support/Http/Api/AccountFilter.php | 2 ++ resources/lang/en_US/validation.php | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/Api/V1/Requests/Generic/ObjectTypeApiRequest.php b/app/Api/V1/Requests/Generic/ObjectTypeApiRequest.php index 2e8a793747..0cb60c67fc 100644 --- a/app/Api/V1/Requests/Generic/ObjectTypeApiRequest.php +++ b/app/Api/V1/Requests/Generic/ObjectTypeApiRequest.php @@ -23,15 +23,16 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Generic; -use Override; -use Illuminate\Contracts\Validation\Validator; use FireflyIII\Api\V1\Requests\ApiRequest; +use FireflyIII\Enums\AccountTypeEnum; use FireflyIII\Models\Account; use FireflyIII\Models\Transaction; use FireflyIII\Rules\Account\IsValidAccountTypeList; use FireflyIII\Rules\TransactionType\IsValidTransactionTypeList; use FireflyIII\Support\Http\Api\AccountFilter; use FireflyIII\Support\Http\Api\TransactionFilter; +use Illuminate\Contracts\Validation\Validator; +use Override; use RuntimeException; class ObjectTypeApiRequest extends ApiRequest @@ -55,7 +56,7 @@ class ObjectTypeApiRequest extends ApiRequest public function rules(): array { - $rule = null; + $rule = null; if (Account::class === $this->objectType) { $rule = new IsValidAccountTypeList(); } @@ -86,9 +87,13 @@ class ObjectTypeApiRequest extends ApiRequest default: $this->attributes->set('types', []); - // no break + // no break case Account::class: - $this->attributes->set('types', $this->mapAccountTypes($type)); + $types = $this->mapAccountTypes($type); + + // remove system account types because autocomplete doesn't need them. + $types = array_values(array_diff($types, [AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::RECONCILIATION->value, AccountTypeEnum::LIABILITY_CREDIT->value])); + $this->attributes->set('types', $types); break; diff --git a/app/Rules/Account/IsValidAccountTypeList.php b/app/Rules/Account/IsValidAccountTypeList.php index 9cb71bf44c..08c2c25894 100644 --- a/app/Rules/Account/IsValidAccountTypeList.php +++ b/app/Rules/Account/IsValidAccountTypeList.php @@ -48,7 +48,7 @@ class IsValidAccountTypeList implements ValidationRule $keys = array_keys($this->types); foreach ($values as $entry) { if (!in_array($entry, $keys, true)) { - $fail('validation.invalid_account_list')->translate(); + $fail('validation.invalid_account_list')->translate(['value'=> $entry]); } } } diff --git a/app/Support/Http/Api/AccountFilter.php b/app/Support/Http/Api/AccountFilter.php index 00033ec5e1..25d9c08907 100644 --- a/app/Support/Http/Api/AccountFilter.php +++ b/app/Support/Http/Api/AccountFilter.php @@ -76,6 +76,7 @@ trait AccountFilter AccountTypeEnum::MORTGAGE->value => [AccountTypeEnum::MORTGAGE->value], AccountTypeEnum::DEBT->value => [AccountTypeEnum::DEBT->value], AccountTypeEnum::CREDITCARD->value => [AccountTypeEnum::CREDITCARD->value], + AccountTypeEnum::LIABILITY_CREDIT->value => [AccountTypeEnum::LIABILITY_CREDIT->value], 'default account' => [AccountTypeEnum::DEFAULT->value], 'cash account' => [AccountTypeEnum::CASH->value], 'asset account' => [AccountTypeEnum::ASSET->value], @@ -104,6 +105,7 @@ trait AccountFilter $return = array_merge($return, $this->types[$part]); } } + if (0 === count($return)) { $return = $this->types['normal']; } diff --git a/resources/lang/en_US/validation.php b/resources/lang/en_US/validation.php index 833154b1e1..7236f38e29 100644 --- a/resources/lang/en_US/validation.php +++ b/resources/lang/en_US/validation.php @@ -24,7 +24,7 @@ declare(strict_types=1); return [ - 'invalid_account_list' => 'Invalid account type list', + 'invalid_account_list' => 'Invalid account type list entry ":value"', 'invalid_transaction_type_list' => 'Invalid transaction type list', 'limit_exists' => 'There is already a budget limit (amount) for this budget and currency in the given period.', 'invalid_sort_instruction' => 'The sort instruction is invalid for an object of type ":object".', From 3ec528812bae2aa52504f9e8e369e5f5caab4afb Mon Sep 17 00:00:00 2001 From: JC5 Date: Wed, 12 Nov 2025 18:08:30 +0100 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=A4=96=20Auto=20commit=20for=20releas?= =?UTF-8?q?e=20'develop'=20on=202025-11-12?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Requests/Generic/ObjectTypeApiRequest.php | 4 +- app/Rules/Account/IsValidAccountTypeList.php | 2 +- app/Support/Http/Api/AccountFilter.php | 74 +++++++++---------- composer.lock | 38 +++++----- config/firefly.php | 4 +- package-lock.json | 6 +- 6 files changed, 64 insertions(+), 64 deletions(-) diff --git a/app/Api/V1/Requests/Generic/ObjectTypeApiRequest.php b/app/Api/V1/Requests/Generic/ObjectTypeApiRequest.php index 0cb60c67fc..7780376b7f 100644 --- a/app/Api/V1/Requests/Generic/ObjectTypeApiRequest.php +++ b/app/Api/V1/Requests/Generic/ObjectTypeApiRequest.php @@ -56,7 +56,7 @@ class ObjectTypeApiRequest extends ApiRequest public function rules(): array { - $rule = null; + $rule = null; if (Account::class === $this->objectType) { $rule = new IsValidAccountTypeList(); } @@ -87,7 +87,7 @@ class ObjectTypeApiRequest extends ApiRequest default: $this->attributes->set('types', []); - // no break + // no break case Account::class: $types = $this->mapAccountTypes($type); diff --git a/app/Rules/Account/IsValidAccountTypeList.php b/app/Rules/Account/IsValidAccountTypeList.php index 08c2c25894..c1ee33da73 100644 --- a/app/Rules/Account/IsValidAccountTypeList.php +++ b/app/Rules/Account/IsValidAccountTypeList.php @@ -48,7 +48,7 @@ class IsValidAccountTypeList implements ValidationRule $keys = array_keys($this->types); foreach ($values as $entry) { if (!in_array($entry, $keys, true)) { - $fail('validation.invalid_account_list')->translate(['value'=> $entry]); + $fail('validation.invalid_account_list')->translate(['value' => $entry]); } } } diff --git a/app/Support/Http/Api/AccountFilter.php b/app/Support/Http/Api/AccountFilter.php index 25d9c08907..1cce125919 100644 --- a/app/Support/Http/Api/AccountFilter.php +++ b/app/Support/Http/Api/AccountFilter.php @@ -33,7 +33,7 @@ trait AccountFilter { protected array $types = [ - 'all' => [ + 'all' => [ AccountTypeEnum::DEFAULT->value, AccountTypeEnum::CASH->value, AccountTypeEnum::ASSET->value, @@ -47,7 +47,7 @@ trait AccountFilter AccountTypeEnum::DEBT->value, AccountTypeEnum::MORTGAGE->value, ], - 'normal' => [ + 'normal' => [ AccountTypeEnum::ASSET->value, AccountTypeEnum::EXPENSE->value, AccountTypeEnum::REVENUE->value, @@ -55,42 +55,42 @@ trait AccountFilter AccountTypeEnum::DEBT->value, AccountTypeEnum::MORTGAGE->value, ], - 'asset' => [AccountTypeEnum::DEFAULT->value, AccountTypeEnum::ASSET->value], - 'cash' => [AccountTypeEnum::CASH->value], - 'expense' => [AccountTypeEnum::EXPENSE->value, AccountTypeEnum::BENEFICIARY->value], - 'revenue' => [AccountTypeEnum::REVENUE->value], - 'special' => [AccountTypeEnum::CASH->value, AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::RECONCILIATION->value], - 'hidden' => [AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::RECONCILIATION->value], - 'liability' => [AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::CREDITCARD->value], - 'liabilities' => [AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::CREDITCARD->value], - AccountTypeEnum::DEFAULT->value => [AccountTypeEnum::DEFAULT->value], - AccountTypeEnum::CASH->value => [AccountTypeEnum::CASH->value], - AccountTypeEnum::ASSET->value => [AccountTypeEnum::ASSET->value], - AccountTypeEnum::EXPENSE->value => [AccountTypeEnum::EXPENSE->value], - AccountTypeEnum::REVENUE->value => [AccountTypeEnum::REVENUE->value], - AccountTypeEnum::INITIAL_BALANCE->value => [AccountTypeEnum::INITIAL_BALANCE->value], - AccountTypeEnum::BENEFICIARY->value => [AccountTypeEnum::BENEFICIARY->value], - AccountTypeEnum::IMPORT->value => [AccountTypeEnum::IMPORT->value], - AccountTypeEnum::RECONCILIATION->value => [AccountTypeEnum::RECONCILIATION->value], - AccountTypeEnum::LOAN->value => [AccountTypeEnum::LOAN->value], - AccountTypeEnum::MORTGAGE->value => [AccountTypeEnum::MORTGAGE->value], - AccountTypeEnum::DEBT->value => [AccountTypeEnum::DEBT->value], - AccountTypeEnum::CREDITCARD->value => [AccountTypeEnum::CREDITCARD->value], + 'asset' => [AccountTypeEnum::DEFAULT->value, AccountTypeEnum::ASSET->value], + 'cash' => [AccountTypeEnum::CASH->value], + 'expense' => [AccountTypeEnum::EXPENSE->value, AccountTypeEnum::BENEFICIARY->value], + 'revenue' => [AccountTypeEnum::REVENUE->value], + 'special' => [AccountTypeEnum::CASH->value, AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::RECONCILIATION->value], + 'hidden' => [AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::RECONCILIATION->value], + 'liability' => [AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::CREDITCARD->value], + 'liabilities' => [AccountTypeEnum::DEBT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::CREDITCARD->value], + AccountTypeEnum::DEFAULT->value => [AccountTypeEnum::DEFAULT->value], + AccountTypeEnum::CASH->value => [AccountTypeEnum::CASH->value], + AccountTypeEnum::ASSET->value => [AccountTypeEnum::ASSET->value], + AccountTypeEnum::EXPENSE->value => [AccountTypeEnum::EXPENSE->value], + AccountTypeEnum::REVENUE->value => [AccountTypeEnum::REVENUE->value], + AccountTypeEnum::INITIAL_BALANCE->value => [AccountTypeEnum::INITIAL_BALANCE->value], + AccountTypeEnum::BENEFICIARY->value => [AccountTypeEnum::BENEFICIARY->value], + AccountTypeEnum::IMPORT->value => [AccountTypeEnum::IMPORT->value], + AccountTypeEnum::RECONCILIATION->value => [AccountTypeEnum::RECONCILIATION->value], + AccountTypeEnum::LOAN->value => [AccountTypeEnum::LOAN->value], + AccountTypeEnum::MORTGAGE->value => [AccountTypeEnum::MORTGAGE->value], + AccountTypeEnum::DEBT->value => [AccountTypeEnum::DEBT->value], + AccountTypeEnum::CREDITCARD->value => [AccountTypeEnum::CREDITCARD->value], AccountTypeEnum::LIABILITY_CREDIT->value => [AccountTypeEnum::LIABILITY_CREDIT->value], - 'default account' => [AccountTypeEnum::DEFAULT->value], - 'cash account' => [AccountTypeEnum::CASH->value], - 'asset account' => [AccountTypeEnum::ASSET->value], - 'expense account' => [AccountTypeEnum::EXPENSE->value], - 'revenue account' => [AccountTypeEnum::REVENUE->value], - 'initial balance account' => [AccountTypeEnum::INITIAL_BALANCE->value], - 'reconciliation' => [AccountTypeEnum::RECONCILIATION->value], - 'loan' => [AccountTypeEnum::LOAN->value], - 'mortgage' => [AccountTypeEnum::MORTGAGE->value], - 'debt' => [AccountTypeEnum::DEBT->value], - 'credit card' => [AccountTypeEnum::CREDITCARD->value], - 'credit-card' => [AccountTypeEnum::CREDITCARD->value], - 'creditcard' => [AccountTypeEnum::CREDITCARD->value], - 'cc' => [AccountTypeEnum::CREDITCARD->value], + 'default account' => [AccountTypeEnum::DEFAULT->value], + 'cash account' => [AccountTypeEnum::CASH->value], + 'asset account' => [AccountTypeEnum::ASSET->value], + 'expense account' => [AccountTypeEnum::EXPENSE->value], + 'revenue account' => [AccountTypeEnum::REVENUE->value], + 'initial balance account' => [AccountTypeEnum::INITIAL_BALANCE->value], + 'reconciliation' => [AccountTypeEnum::RECONCILIATION->value], + 'loan' => [AccountTypeEnum::LOAN->value], + 'mortgage' => [AccountTypeEnum::MORTGAGE->value], + 'debt' => [AccountTypeEnum::DEBT->value], + 'credit card' => [AccountTypeEnum::CREDITCARD->value], + 'credit-card' => [AccountTypeEnum::CREDITCARD->value], + 'creditcard' => [AccountTypeEnum::CREDITCARD->value], + 'cc' => [AccountTypeEnum::CREDITCARD->value], ]; /** diff --git a/composer.lock b/composer.lock index 8075796e51..4db83f7616 100644 --- a/composer.lock +++ b/composer.lock @@ -1937,16 +1937,16 @@ }, { "name": "laravel/framework", - "version": "v12.37.0", + "version": "v12.38.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "3c3c4ad30f5b528b164a7c09aa4ad03118c4c125" + "reference": "1c30f547a3117bac99dc62a0afe767810cb112fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/3c3c4ad30f5b528b164a7c09aa4ad03118c4c125", - "reference": "3c3c4ad30f5b528b164a7c09aa4ad03118c4c125", + "url": "https://api.github.com/repos/laravel/framework/zipball/1c30f547a3117bac99dc62a0afe767810cb112fa", + "reference": "1c30f547a3117bac99dc62a0afe767810cb112fa", "shasum": "" }, "require": { @@ -2064,7 +2064,7 @@ "phpstan/phpstan": "^2.0", "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", "predis/predis": "^2.3|^3.0", - "resend/resend-php": "^0.10.0", + "resend/resend-php": "^0.10.0|^1.0", "symfony/cache": "^7.2.0", "symfony/http-client": "^7.2.0", "symfony/psr-http-message-bridge": "^7.2.0", @@ -2098,7 +2098,7 @@ "predis/predis": "Required to use the predis connector (^2.3|^3.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", @@ -2152,7 +2152,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-11-04T15:39:33+00:00" + "time": "2025-11-12T16:51:30+00:00" }, { "name": "laravel/passport", @@ -7697,16 +7697,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.3.6", + "version": "v7.3.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c" + "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6379e490d6ecfc5c4224ff3a754b90495ecd135c", - "reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/db488a62f98f7a81d5746f05eea63a74e55bb7c4", + "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4", "shasum": "" }, "require": { @@ -7756,7 +7756,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.3.6" + "source": "https://github.com/symfony/http-foundation/tree/v7.3.7" }, "funding": [ { @@ -7776,20 +7776,20 @@ "type": "tidelift" } ], - "time": "2025-11-06T11:05:57+00:00" + "time": "2025-11-08T16:41:12+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.3.6", + "version": "v7.3.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "f9a34dc0196677250e3609c2fac9de9e1551a262" + "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9a34dc0196677250e3609c2fac9de9e1551a262", - "reference": "f9a34dc0196677250e3609c2fac9de9e1551a262", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/10b8e9b748ea95fa4539c208e2487c435d3c87ce", + "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce", "shasum": "" }, "require": { @@ -7874,7 +7874,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.3.6" + "source": "https://github.com/symfony/http-kernel/tree/v7.3.7" }, "funding": [ { @@ -7894,7 +7894,7 @@ "type": "tidelift" } ], - "time": "2025-11-06T20:58:12+00:00" + "time": "2025-11-12T11:38:40+00:00" }, { "name": "symfony/mailer", diff --git a/config/firefly.php b/config/firefly.php index d7046fe4f9..d7087df92c 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -78,8 +78,8 @@ return [ 'running_balance_column' => env('USE_RUNNING_BALANCE', false), // see cer.php for exchange rates feature flag. ], - 'version' => '6.4.7', - 'build_time' => 1762922901, + 'version' => 'develop/2025-11-12', + 'build_time' => 1762967199, '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 3b54c8207d..ba6958e770 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4075,9 +4075,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.26", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.26.tgz", - "integrity": "sha512-73lC1ugzwoaWCLJ1LvOgrR5xsMLTqSKIEoMHVtL9E/HNk0PXtTM76ZIm84856/SF7Nv8mPZxKoBsgpm0tR1u1Q==", + "version": "2.8.27", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.27.tgz", + "integrity": "sha512-2CXFpkjVnY2FT+B6GrSYxzYf65BJWEqz5tIRHCvNsZZ2F3CmsCB37h8SpYgKG7y9C4YAeTipIPWG7EmFmhAeXA==", "dev": true, "license": "Apache-2.0", "bin": { From 479b90d9fc97f9c9773d7cb6494605d7c6732eba Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 13 Nov 2025 05:36:59 +0100 Subject: [PATCH 3/4] Expand changelog. --- changelog.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index 91a10fab2d..e1867617fa 100644 --- a/changelog.md +++ b/changelog.md @@ -3,13 +3,19 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## 6.4.8 - 2025-11-14 + +### Fixed + +- #11228 + ## 6.4.7 ### Fixed -- [Issue 11206](https://github.com/firefly-iii/firefly-iii/issues/11206) (New transition shows additional option in input) reported by @zhiiwg +- #11206 -## 6.4.6 - 2025-11-09 +## 6.4.6 - 2025-11-13 ### Fixed From bab767a4475622f4e73f7266c0895f7cbf075061 Mon Sep 17 00:00:00 2001 From: JC5 Date: Thu, 13 Nov 2025 05:42:02 +0100 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=A4=96=20Auto=20commit=20for=20releas?= =?UTF-8?q?e=20'v6.4.8'=20on=202025-11-13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.md | 4 ++-- composer.lock | 24 ++++++++++++------------ config/firefly.php | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/changelog.md b/changelog.md index e1867617fa..08452898e0 100644 --- a/changelog.md +++ b/changelog.md @@ -7,13 +7,13 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Fixed -- #11228 +- [Issue 11228](https://github.com/firefly-iii/firefly-iii/issues/11228) (Autocomplete fails when the requested account type list includes hidden account types) reported by @jgmm81 ## 6.4.7 ### Fixed -- #11206 +- [Issue 11206](https://github.com/firefly-iii/firefly-iii/issues/11206) (New transaction shows additional option in input) reported by @zhiiwg ## 6.4.6 - 2025-11-13 diff --git a/composer.lock b/composer.lock index 4db83f7616..fc5e553989 100644 --- a/composer.lock +++ b/composer.lock @@ -1937,16 +1937,16 @@ }, { "name": "laravel/framework", - "version": "v12.38.0", + "version": "v12.38.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "1c30f547a3117bac99dc62a0afe767810cb112fa" + "reference": "7f3012af6059f5f64a12930701cd8caed6cf7c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1c30f547a3117bac99dc62a0afe767810cb112fa", - "reference": "1c30f547a3117bac99dc62a0afe767810cb112fa", + "url": "https://api.github.com/repos/laravel/framework/zipball/7f3012af6059f5f64a12930701cd8caed6cf7c17", + "reference": "7f3012af6059f5f64a12930701cd8caed6cf7c17", "shasum": "" }, "require": { @@ -2152,7 +2152,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-11-12T16:51:30+00:00" + "time": "2025-11-13T02:12:47+00:00" }, { "name": "laravel/passport", @@ -12116,21 +12116,21 @@ }, { "name": "rector/rector", - "version": "2.2.7", + "version": "2.2.8", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "022038537838bc8a4e526af86c2d6e38eaeff7ef" + "reference": "303aa811649ccd1d32e51e62d5c85949d01b5f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/022038537838bc8a4e526af86c2d6e38eaeff7ef", - "reference": "022038537838bc8a4e526af86c2d6e38eaeff7ef", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/303aa811649ccd1d32e51e62d5c85949d01b5f1b", + "reference": "303aa811649ccd1d32e51e62d5c85949d01b5f1b", "shasum": "" }, "require": { "php": "^7.4|^8.0", - "phpstan/phpstan": "^2.1.26" + "phpstan/phpstan": "^2.1.32" }, "conflict": { "rector/rector-doctrine": "*", @@ -12164,7 +12164,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.2.7" + "source": "https://github.com/rectorphp/rector/tree/2.2.8" }, "funding": [ { @@ -12172,7 +12172,7 @@ "type": "github" } ], - "time": "2025-10-29T15:46:12+00:00" + "time": "2025-11-12T18:38:00+00:00" }, { "name": "sebastian/cli-parser", diff --git a/config/firefly.php b/config/firefly.php index d7087df92c..e8d24229ea 100644 --- a/config/firefly.php +++ b/config/firefly.php @@ -78,8 +78,8 @@ return [ 'running_balance_column' => env('USE_RUNNING_BALANCE', false), // see cer.php for exchange rates feature flag. ], - 'version' => 'develop/2025-11-12', - 'build_time' => 1762967199, + 'version' => '6.4.8', + 'build_time' => 1763008810, 'api_version' => '2.1.0', // field is no longer used. 'db_version' => 28, // field is no longer used.