Merge pull request #10537 from firefly-iii/develop

🤖 Automatically merge the PR into the main branch.
This commit is contained in:
github-actions[bot]
2025-07-02 06:03:28 +02:00
committed by GitHub
12 changed files with 223 additions and 199 deletions

View File

@@ -406,58 +406,59 @@
}, },
{ {
"name": "friendsofphp/php-cs-fixer", "name": "friendsofphp/php-cs-fixer",
"version": "v3.75.0", "version": "v3.76.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "399a128ff2fdaf4281e4e79b755693286cdf325c" "reference": "0e3c484cef0ae9314b0f85986a36296087432c40"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/399a128ff2fdaf4281e4e79b755693286cdf325c", "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/0e3c484cef0ae9314b0f85986a36296087432c40",
"reference": "399a128ff2fdaf4281e4e79b755693286cdf325c", "reference": "0e3c484cef0ae9314b0f85986a36296087432c40",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"clue/ndjson-react": "^1.0", "clue/ndjson-react": "^1.0",
"composer/semver": "^3.4", "composer/semver": "^3.4",
"composer/xdebug-handler": "^3.0.3", "composer/xdebug-handler": "^3.0.5",
"ext-filter": "*", "ext-filter": "*",
"ext-hash": "*", "ext-hash": "*",
"ext-json": "*", "ext-json": "*",
"ext-tokenizer": "*", "ext-tokenizer": "*",
"fidry/cpu-core-counter": "^1.2", "fidry/cpu-core-counter": "^1.2",
"php": "^7.4 || ^8.0", "php": "^7.4 || ^8.0",
"react/child-process": "^0.6.5", "react/child-process": "^0.6.6",
"react/event-loop": "^1.0", "react/event-loop": "^1.0",
"react/promise": "^2.0 || ^3.0", "react/promise": "^2.11 || ^3.0",
"react/socket": "^1.0", "react/socket": "^1.0",
"react/stream": "^1.0", "react/stream": "^1.0",
"sebastian/diff": "^4.0 || ^5.1 || ^6.0 || ^7.0", "sebastian/diff": "^4.0.6 || ^5.1.1 || ^6.0.2 || ^7.0",
"symfony/console": "^5.4 || ^6.4 || ^7.0", "symfony/console": "^5.4.45 || ^6.4.13 || ^7.0",
"symfony/event-dispatcher": "^5.4 || ^6.4 || ^7.0", "symfony/event-dispatcher": "^5.4.45 || ^6.4.13 || ^7.0",
"symfony/filesystem": "^5.4 || ^6.4 || ^7.0", "symfony/filesystem": "^5.4.45 || ^6.4.13 || ^7.0",
"symfony/finder": "^5.4 || ^6.4 || ^7.0", "symfony/finder": "^5.4.45 || ^6.4.17 || ^7.0",
"symfony/options-resolver": "^5.4 || ^6.4 || ^7.0", "symfony/options-resolver": "^5.4.45 || ^6.4.16 || ^7.0",
"symfony/polyfill-mbstring": "^1.31", "symfony/polyfill-mbstring": "^1.32",
"symfony/polyfill-php80": "^1.31", "symfony/polyfill-php80": "^1.32",
"symfony/polyfill-php81": "^1.31", "symfony/polyfill-php81": "^1.32",
"symfony/process": "^5.4 || ^6.4 || ^7.2", "symfony/process": "^5.4.47 || ^6.4.20 || ^7.2",
"symfony/stopwatch": "^5.4 || ^6.4 || ^7.0" "symfony/stopwatch": "^5.4.45 || ^6.4.19 || ^7.0"
}, },
"require-dev": { "require-dev": {
"facile-it/paraunit": "^1.3.1 || ^2.6", "facile-it/paraunit": "^1.3.1 || ^2.6",
"infection/infection": "^0.29.14", "infection/infection": "^0.29.14",
"justinrainbow/json-schema": "^5.3 || ^6.2", "justinrainbow/json-schema": "^5.3 || ^6.4",
"keradus/cli-executor": "^2.1", "keradus/cli-executor": "^2.2",
"mikey179/vfsstream": "^1.6.12", "mikey179/vfsstream": "^1.6.12",
"php-coveralls/php-coveralls": "^2.7", "php-coveralls/php-coveralls": "^2.8",
"php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/accessible-object": "^1.1",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6",
"phpunit/phpunit": "^9.6.22 || ^10.5.45 || ^11.5.12", "phpunit/phpunit": "^9.6.23 || ^10.5.47 || ^11.5.25",
"symfony/var-dumper": "^5.4.48 || ^6.4.18 || ^7.2.3", "symfony/polyfill-php84": "^1.32",
"symfony/yaml": "^5.4.45 || ^6.4.18 || ^7.2.3" "symfony/var-dumper": "^5.4.48 || ^6.4.23 || ^7.3.1",
"symfony/yaml": "^5.4.45 || ^6.4.23 || ^7.3.1"
}, },
"suggest": { "suggest": {
"ext-dom": "For handling output formats in XML", "ext-dom": "For handling output formats in XML",
@@ -498,7 +499,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.75.0" "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.76.0"
}, },
"funding": [ "funding": [
{ {
@@ -506,7 +507,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-03-31T18:40:42+00:00" "time": "2025-06-30T14:15:06+00:00"
}, },
{ {
"name": "psr/container", "name": "psr/container",
@@ -1256,16 +1257,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44" "reference": "9e27aecde8f506ba0fd1d9989620c04a87697101"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/66c1440edf6f339fd82ed6c7caa76cb006211b44", "url": "https://api.github.com/repos/symfony/console/zipball/9e27aecde8f506ba0fd1d9989620c04a87697101",
"reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44", "reference": "9e27aecde8f506ba0fd1d9989620c04a87697101",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1330,7 +1331,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v7.3.0" "source": "https://github.com/symfony/console/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -1346,7 +1347,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-24T10:34:04+00:00" "time": "2025-06-27T19:55:54+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",

View File

@@ -329,7 +329,7 @@ FIREFLY_III_LAYOUT=v1
# Which Query Parser implementation to use for the search engine and rules # Which Query Parser implementation to use for the search engine and rules
# 'new' is experimental, 'legacy' is the classic one # 'new' is experimental, 'legacy' is the classic one
# #
QUERY_PARSER_IMPLEMENTATION=legacy QUERY_PARSER_IMPLEMENTATION=new
# #
# Please make sure this URL matches the external URL of your Firefly III installation. # Please make sure this URL matches the external URL of your Firefly III installation.

View File

@@ -32,11 +32,14 @@ use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\Webhook; use FireflyIII\Models\Webhook;
use FireflyIII\Models\WebhookMessage; use FireflyIII\Models\WebhookMessage;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\JsonApi\Enrichments\AccountEnrichment;
use FireflyIII\Transformers\AccountTransformer; use FireflyIII\Transformers\AccountTransformer;
use FireflyIII\Transformers\TransactionGroupTransformer; use FireflyIII\Transformers\TransactionGroupTransformer;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use Ramsey\Uuid\Uuid; use Ramsey\Uuid\Uuid;
use Symfony\Component\HttpFoundation\ParameterBag; use Symfony\Component\HttpFoundation\ParameterBag;
@@ -59,14 +62,14 @@ class StandardMessageGenerator implements MessageGeneratorInterface
public function generateMessages(): void public function generateMessages(): void
{ {
app('log')->debug(__METHOD__); Log::debug(__METHOD__);
// get the webhooks: // get the webhooks:
if (0 === $this->webhooks->count()) { if (0 === $this->webhooks->count()) {
$this->webhooks = $this->getWebhooks(); $this->webhooks = $this->getWebhooks();
} }
// do some debugging // do some debugging
app('log')->debug( Log::debug(
sprintf('StandardMessageGenerator will generate messages for %d object(s) and %d webhook(s).', $this->objects->count(), $this->webhooks->count()) sprintf('StandardMessageGenerator will generate messages for %d object(s) and %d webhook(s).', $this->objects->count(), $this->webhooks->count())
); );
$this->run(); $this->run();
@@ -79,13 +82,13 @@ class StandardMessageGenerator implements MessageGeneratorInterface
private function run(): void private function run(): void
{ {
app('log')->debug('Now in StandardMessageGenerator::run'); Log::debug('Now in StandardMessageGenerator::run');
/** @var Webhook $webhook */ /** @var Webhook $webhook */
foreach ($this->webhooks as $webhook) { foreach ($this->webhooks as $webhook) {
$this->runWebhook($webhook); $this->runWebhook($webhook);
} }
app('log')->debug('Done with StandardMessageGenerator::run'); Log::debug('Done with StandardMessageGenerator::run');
} }
/** /**
@@ -93,7 +96,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface
*/ */
private function runWebhook(Webhook $webhook): void private function runWebhook(Webhook $webhook): void
{ {
app('log')->debug(sprintf('Now in runWebhook(#%d)', $webhook->id)); Log::debug(sprintf('Now in runWebhook(#%d)', $webhook->id));
/** @var Model $object */ /** @var Model $object */
foreach ($this->objects as $object) { foreach ($this->objects as $object) {
@@ -108,7 +111,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface
{ {
$class = $model::class; $class = $model::class;
// Line is ignored because all of Firefly III's Models have an id property. // Line is ignored because all of Firefly III's Models have an id property.
app('log')->debug(sprintf('Now in generateMessage(#%d, %s#%d)', $webhook->id, $class, $model->id)); Log::debug(sprintf('Now in generateMessage(#%d, %s#%d)', $webhook->id, $class, $model->id));
$uuid = Uuid::uuid4(); $uuid = Uuid::uuid4();
$basicMessage = [ $basicMessage = [
@@ -125,7 +128,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface
switch ($class) { switch ($class) {
default: default:
// Line is ignored because all of Firefly III's Models have an id property. // Line is ignored because all of Firefly III's Models have an id property.
app('log')->error( Log::error(
sprintf('Webhook #%d was given %s#%d to deal with but can\'t extract user ID from it.', $webhook->id, $class, $model->id) sprintf('Webhook #%d was given %s#%d to deal with but can\'t extract user ID from it.', $webhook->id, $class, $model->id)
); );
@@ -141,7 +144,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface
// then depends on the response what to put in the message: // then depends on the response what to put in the message:
switch ($webhook->response) { switch ($webhook->response) {
default: default:
app('log')->error( Log::error(
sprintf('The response code for webhook #%d is "%d" and the message generator cant handle it. Soft fail.', $webhook->id, $webhook->response) sprintf('The response code for webhook #%d is "%d" and the message generator cant handle it. Soft fail.', $webhook->id, $webhook->response)
); );
@@ -159,10 +162,10 @@ class StandardMessageGenerator implements MessageGeneratorInterface
try { try {
$basicMessage['content'] = $transformer->transformObject($model); $basicMessage['content'] = $transformer->transformObject($model);
} catch (FireflyException $e) { } catch (FireflyException $e) {
app('log')->error( Log::error(
sprintf('The transformer could not include the requested transaction group for webhook #%d: %s', $webhook->id, $e->getMessage()) sprintf('The transformer could not include the requested transaction group for webhook #%d: %s', $webhook->id, $e->getMessage())
); );
app('log')->error($e->getTraceAsString()); Log::error($e->getTraceAsString());
return; return;
} }
@@ -172,6 +175,10 @@ class StandardMessageGenerator implements MessageGeneratorInterface
case WebhookResponse::ACCOUNTS->value: case WebhookResponse::ACCOUNTS->value:
/** @var TransactionGroup $model */ /** @var TransactionGroup $model */
$accounts = $this->collectAccounts($model); $accounts = $this->collectAccounts($model);
$enrichment = new AccountEnrichment();
$enrichment->setUser($model->user);
$enrichment->setNative(Amount::getNativeCurrencyByUserGroup($model->userGroup));
$accounts = $enrichment->enrich($accounts);
foreach ($accounts as $account) { foreach ($accounts as $account) {
$transformer = new AccountTransformer(); $transformer = new AccountTransformer();
$transformer->setParameters(new ParameterBag()); $transformer->setParameters(new ParameterBag());
@@ -210,7 +217,7 @@ class StandardMessageGenerator implements MessageGeneratorInterface
$webhookMessage->uuid = $message['uuid']; $webhookMessage->uuid = $message['uuid'];
$webhookMessage->message = $message; $webhookMessage->message = $message;
$webhookMessage->save(); $webhookMessage->save();
app('log')->debug(sprintf('Stored new webhook message #%d', $webhookMessage->id)); Log::debug(sprintf('Stored new webhook message #%d', $webhookMessage->id));
} }
public function setObjects(Collection $objects): void public function setObjects(Collection $objects): void

View File

@@ -23,8 +23,6 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers; namespace FireflyIII\Http\Controllers;
use function Safe\realpath;
use function Safe\ini_get;
use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Facades\Steam;
@@ -38,6 +36,9 @@ use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use function Safe\realpath;
use function Safe\ini_get;
/** /**
* Class Controller. * Class Controller.
* *

View File

@@ -97,6 +97,9 @@ class Authenticate
} }
foreach ($guards as $guard) { foreach ($guards as $guard) {
if ('api' !== $guard) {
$this->auth->guard($guard)->authenticate();
}
$result = $this->auth->guard($guard)->check(); $result = $this->auth->guard($guard)->check();
if ($result) { if ($result) {
$user = $this->auth->guard($guard)->user(); $user = $this->auth->guard($guard)->user();
@@ -107,7 +110,7 @@ class Authenticate
} }
} }
// this is a massive hack, but if the hander has the oauth exception // this is a massive hack, but if the handler has the oauth exception
// at this point we can report its error instead of a generic one. // at this point we can report its error instead of a generic one.
$message = 'Unauthenticated.'; $message = 'Unauthenticated.';
if (Handler::$lastError instanceof OAuthServerException) { if (Handler::$lastError instanceof OAuthServerException) {

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Support\Authentication; namespace FireflyIII\Support\Authentication;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Support\Facades\Preferences;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Guard; use Illuminate\Contracts\Auth\Guard;
@@ -86,14 +87,14 @@ class RemoteUserGuard implements Guard
if (null !== $header) { if (null !== $header) {
$emailAddress = (string) (request()->server($header) ?? apache_request_headers()[$header] ?? null); $emailAddress = (string) (request()->server($header) ?? apache_request_headers()[$header] ?? null);
$preference = app('preferences')->getForUser($retrievedUser, 'remote_guard_alt_email'); $preference = Preferences::getForUser($retrievedUser, 'remote_guard_alt_email');
if ('' !== $emailAddress && null === $preference && $emailAddress !== $userID) { if ('' !== $emailAddress && null === $preference && $emailAddress !== $userID) {
app('preferences')->setForUser($retrievedUser, 'remote_guard_alt_email', $emailAddress); Preferences::setForUser($retrievedUser, 'remote_guard_alt_email', $emailAddress);
} }
// if the pref isn't null and the object returned isn't null, update the email address. // if the pref isn't null and the object returned isn't null, update the email address.
if ('' !== $emailAddress && null !== $preference && $emailAddress !== $preference->data) { if ('' !== $emailAddress && null !== $preference && $emailAddress !== $preference->data) {
app('preferences')->setForUser($retrievedUser, 'remote_guard_alt_email', $emailAddress); Preferences::setForUser($retrievedUser, 'remote_guard_alt_email', $emailAddress);
} }
} }

View File

@@ -28,6 +28,7 @@ use FireflyIII\Models\RuleAction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\TransactionRules\Traits\RefreshNotesTrait; use FireflyIII\TransactionRules\Traits\RefreshNotesTrait;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
/** /**
* Class SetDescription. * Class SetDescription.
@@ -51,7 +52,12 @@ class SetDescription implements ActionInterface
$after = $this->action->getValue($journal); $after = $this->action->getValue($journal);
// replace newlines. // replace newlines.
$after = str_replace(["\r", "\n", "\t", "\036", "\025"], '', $after); $after = trim(str_replace(["\r", "\n", "\t", "\036", "\025"], '', $after));
if ('' === $after) {
Log::warning('Action resulted in an empty description, reset to default value.');
$after = '(no description)';
}
DB::table('transaction_journals') DB::table('transaction_journals')
->where('id', '=', $journal['transaction_journal_id']) ->where('id', '=', $journal['transaction_journal_id'])

View File

@@ -3,6 +3,18 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/). This project adheres to [Semantic Versioning](http://semver.org/).
## 6.2.20 - 2025-07-02
### Changed
- New query parser is now the default.
### Fixed
- [Issue 10517](https://github.com/firefly-iii/firefly-iii/issues/10517) (401 when trying to create personal access token with Remote user authentication) reported by @MaxPelly
- [Discussion 10530](https://github.com/orgs/firefly-iii/discussions/10530) (Find and delete transactions with empty descriptions) started by @umfk
- [Issue 10535](https://github.com/firefly-iii/firefly-iii/issues/10535) (Internal Firefly III Exception: Undefined array key "currency") reported by @MaelFr
## 6.2.19 - 2025-06-29 ## 6.2.19 - 2025-06-29
### Changed ### Changed

146
composer.lock generated
View File

@@ -4805,16 +4805,16 @@
}, },
{ {
"name": "phpseclib/phpseclib", "name": "phpseclib/phpseclib",
"version": "3.0.45", "version": "3.0.46",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpseclib/phpseclib.git", "url": "https://github.com/phpseclib/phpseclib.git",
"reference": "bd81b90d5963c6b9d87de50357585375223f4dd8" "reference": "56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/bd81b90d5963c6b9d87de50357585375223f4dd8", "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6",
"reference": "bd81b90d5963c6b9d87de50357585375223f4dd8", "reference": "56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4895,7 +4895,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/phpseclib/phpseclib/issues", "issues": "https://github.com/phpseclib/phpseclib/issues",
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.45" "source": "https://github.com/phpseclib/phpseclib/tree/3.0.46"
}, },
"funding": [ "funding": [
{ {
@@ -4911,7 +4911,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-06-22T22:54:43+00:00" "time": "2025-06-26T16:29:55+00:00"
}, },
{ {
"name": "pragmarx/google2fa", "name": "pragmarx/google2fa",
@@ -6407,16 +6407,16 @@
}, },
{ {
"name": "symfony/cache", "name": "symfony/cache",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/cache.git", "url": "https://github.com/symfony/cache.git",
"reference": "c4b217b578c11ec764867aa0c73e602c602965de" "reference": "a7c6caa9d6113cebfb3020b427bcb021ebfdfc9e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/c4b217b578c11ec764867aa0c73e602c602965de", "url": "https://api.github.com/repos/symfony/cache/zipball/a7c6caa9d6113cebfb3020b427bcb021ebfdfc9e",
"reference": "c4b217b578c11ec764867aa0c73e602c602965de", "reference": "a7c6caa9d6113cebfb3020b427bcb021ebfdfc9e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6485,7 +6485,7 @@
"psr6" "psr6"
], ],
"support": { "support": {
"source": "https://github.com/symfony/cache/tree/v7.3.0" "source": "https://github.com/symfony/cache/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -6501,7 +6501,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-06T19:00:13+00:00" "time": "2025-06-27T19:55:54+00:00"
}, },
{ {
"name": "symfony/cache-contracts", "name": "symfony/cache-contracts",
@@ -6655,16 +6655,16 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44" "reference": "9e27aecde8f506ba0fd1d9989620c04a87697101"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/66c1440edf6f339fd82ed6c7caa76cb006211b44", "url": "https://api.github.com/repos/symfony/console/zipball/9e27aecde8f506ba0fd1d9989620c04a87697101",
"reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44", "reference": "9e27aecde8f506ba0fd1d9989620c04a87697101",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6729,7 +6729,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v7.3.0" "source": "https://github.com/symfony/console/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -6745,7 +6745,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-24T10:34:04+00:00" "time": "2025-06-27T19:55:54+00:00"
}, },
{ {
"name": "symfony/css-selector", "name": "symfony/css-selector",
@@ -6881,16 +6881,16 @@
}, },
{ {
"name": "symfony/error-handler", "name": "symfony/error-handler",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/error-handler.git", "url": "https://github.com/symfony/error-handler.git",
"reference": "cf68d225bc43629de4ff54778029aee6dc191b83" "reference": "35b55b166f6752d6aaf21aa042fc5ed280fce235"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/cf68d225bc43629de4ff54778029aee6dc191b83", "url": "https://api.github.com/repos/symfony/error-handler/zipball/35b55b166f6752d6aaf21aa042fc5ed280fce235",
"reference": "cf68d225bc43629de4ff54778029aee6dc191b83", "reference": "35b55b166f6752d6aaf21aa042fc5ed280fce235",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -6938,7 +6938,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code", "description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/error-handler/tree/v7.3.0" "source": "https://github.com/symfony/error-handler/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -6954,7 +6954,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-29T07:19:49+00:00" "time": "2025-06-13T07:48:40+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
@@ -7242,16 +7242,16 @@
}, },
{ {
"name": "symfony/http-client", "name": "symfony/http-client",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-client.git", "url": "https://github.com/symfony/http-client.git",
"reference": "57e4fb86314015a695a750ace358d07a7e37b8a9" "reference": "4403d87a2c16f33345dca93407a8714ee8c05a64"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/57e4fb86314015a695a750ace358d07a7e37b8a9", "url": "https://api.github.com/repos/symfony/http-client/zipball/4403d87a2c16f33345dca93407a8714ee8c05a64",
"reference": "57e4fb86314015a695a750ace358d07a7e37b8a9", "reference": "4403d87a2c16f33345dca93407a8714ee8c05a64",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7263,6 +7263,7 @@
}, },
"conflict": { "conflict": {
"amphp/amp": "<2.5", "amphp/amp": "<2.5",
"amphp/socket": "<1.1",
"php-http/discovery": "<1.15", "php-http/discovery": "<1.15",
"symfony/http-foundation": "<6.4" "symfony/http-foundation": "<6.4"
}, },
@@ -7275,7 +7276,6 @@
"require-dev": { "require-dev": {
"amphp/http-client": "^4.2.1|^5.0", "amphp/http-client": "^4.2.1|^5.0",
"amphp/http-tunnel": "^1.0|^2.0", "amphp/http-tunnel": "^1.0|^2.0",
"amphp/socket": "^1.1",
"guzzlehttp/promises": "^1.4|^2.0", "guzzlehttp/promises": "^1.4|^2.0",
"nyholm/psr7": "^1.0", "nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0", "php-http/httplug": "^1.0|^2.0",
@@ -7317,7 +7317,7 @@
"http" "http"
], ],
"support": { "support": {
"source": "https://github.com/symfony/http-client/tree/v7.3.0" "source": "https://github.com/symfony/http-client/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -7333,7 +7333,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-02T08:23:16+00:00" "time": "2025-06-28T07:58:39+00:00"
}, },
{ {
"name": "symfony/http-client-contracts", "name": "symfony/http-client-contracts",
@@ -7415,16 +7415,16 @@
}, },
{ {
"name": "symfony/http-foundation", "name": "symfony/http-foundation",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "4236baf01609667d53b20371486228231eb135fd" "reference": "23dd60256610c86a3414575b70c596e5deff6ed9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/4236baf01609667d53b20371486228231eb135fd", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/23dd60256610c86a3414575b70c596e5deff6ed9",
"reference": "4236baf01609667d53b20371486228231eb135fd", "reference": "23dd60256610c86a3414575b70c596e5deff6ed9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7474,7 +7474,7 @@
"description": "Defines an object-oriented layer for the HTTP specification", "description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.3.0" "source": "https://github.com/symfony/http-foundation/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -7490,20 +7490,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-12T14:48:23+00:00" "time": "2025-06-23T15:07:14+00:00"
}, },
{ {
"name": "symfony/http-kernel", "name": "symfony/http-kernel",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-kernel.git", "url": "https://github.com/symfony/http-kernel.git",
"reference": "ac7b8e163e8c83dce3abcc055a502d4486051a9f" "reference": "1644879a66e4aa29c36fe33dfa6c54b450ce1831"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/ac7b8e163e8c83dce3abcc055a502d4486051a9f", "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1644879a66e4aa29c36fe33dfa6c54b450ce1831",
"reference": "ac7b8e163e8c83dce3abcc055a502d4486051a9f", "reference": "1644879a66e4aa29c36fe33dfa6c54b450ce1831",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7588,7 +7588,7 @@
"description": "Provides a structured process for converting a Request into a Response", "description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.3.0" "source": "https://github.com/symfony/http-kernel/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -7604,20 +7604,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-29T07:47:32+00:00" "time": "2025-06-28T08:24:55+00:00"
}, },
{ {
"name": "symfony/mailer", "name": "symfony/mailer",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mailer.git", "url": "https://github.com/symfony/mailer.git",
"reference": "0f375bbbde96ae8c78e4aa3e63aabd486e33364c" "reference": "b5db5105b290bdbea5ab27b89c69effcf1cb3368"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mailer/zipball/0f375bbbde96ae8c78e4aa3e63aabd486e33364c", "url": "https://api.github.com/repos/symfony/mailer/zipball/b5db5105b290bdbea5ab27b89c69effcf1cb3368",
"reference": "0f375bbbde96ae8c78e4aa3e63aabd486e33364c", "reference": "b5db5105b290bdbea5ab27b89c69effcf1cb3368",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7668,7 +7668,7 @@
"description": "Helps sending emails", "description": "Helps sending emails",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/mailer/tree/v7.3.0" "source": "https://github.com/symfony/mailer/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -7684,20 +7684,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-04-04T09:51:09+00:00" "time": "2025-06-27T19:55:54+00:00"
}, },
{ {
"name": "symfony/mailgun-mailer", "name": "symfony/mailgun-mailer",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/mailgun-mailer.git", "url": "https://github.com/symfony/mailgun-mailer.git",
"reference": "3c1dfd9ff0a487a4116baec42d11ae21a061e3f1" "reference": "8c18f2bff4e70ed5669ab8228302edd2fecd689b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/3c1dfd9ff0a487a4116baec42d11ae21a061e3f1", "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/8c18f2bff4e70ed5669ab8228302edd2fecd689b",
"reference": "3c1dfd9ff0a487a4116baec42d11ae21a061e3f1", "reference": "8c18f2bff4e70ed5669ab8228302edd2fecd689b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -7737,7 +7737,7 @@
"description": "Symfony Mailgun Mailer Bridge", "description": "Symfony Mailgun Mailer Bridge",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/mailgun-mailer/tree/v7.3.0" "source": "https://github.com/symfony/mailgun-mailer/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -7753,7 +7753,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-28T08:24:38+00:00" "time": "2025-06-20T16:15:52+00:00"
}, },
{ {
"name": "symfony/mime", "name": "symfony/mime",
@@ -8940,16 +8940,16 @@
}, },
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/translation.git", "url": "https://github.com/symfony/translation.git",
"reference": "4aba29076a29a3aa667e09b791e5f868973a8667" "reference": "241d5ac4910d256660238a7ecf250deba4c73063"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/4aba29076a29a3aa667e09b791e5f868973a8667", "url": "https://api.github.com/repos/symfony/translation/zipball/241d5ac4910d256660238a7ecf250deba4c73063",
"reference": "4aba29076a29a3aa667e09b791e5f868973a8667", "reference": "241d5ac4910d256660238a7ecf250deba4c73063",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -9016,7 +9016,7 @@
"description": "Provides tools to internationalize your application", "description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/translation/tree/v7.3.0" "source": "https://github.com/symfony/translation/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -9032,7 +9032,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-29T07:19:49+00:00" "time": "2025-06-27T19:55:54+00:00"
}, },
{ {
"name": "symfony/translation-contracts", "name": "symfony/translation-contracts",
@@ -9114,16 +9114,16 @@
}, },
{ {
"name": "symfony/uid", "name": "symfony/uid",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/uid.git", "url": "https://github.com/symfony/uid.git",
"reference": "7beeb2b885cd584cd01e126c5777206ae4c3c6a3" "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/uid/zipball/7beeb2b885cd584cd01e126c5777206ae4c3c6a3", "url": "https://api.github.com/repos/symfony/uid/zipball/a69f69f3159b852651a6bf45a9fdd149520525bb",
"reference": "7beeb2b885cd584cd01e126c5777206ae4c3c6a3", "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -9168,7 +9168,7 @@
"uuid" "uuid"
], ],
"support": { "support": {
"source": "https://github.com/symfony/uid/tree/v7.3.0" "source": "https://github.com/symfony/uid/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -9184,20 +9184,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-05-24T14:28:13+00:00" "time": "2025-06-27T19:55:54+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v7.3.0", "version": "v7.3.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e" "reference": "6e209fbe5f5a7b6043baba46fe5735a4b85d0d42"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/548f6760c54197b1084e1e5c71f6d9d523f2f78e", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6e209fbe5f5a7b6043baba46fe5735a4b85d0d42",
"reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e", "reference": "6e209fbe5f5a7b6043baba46fe5735a4b85d0d42",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -9252,7 +9252,7 @@
"dump" "dump"
], ],
"support": { "support": {
"source": "https://github.com/symfony/var-dumper/tree/v7.3.0" "source": "https://github.com/symfony/var-dumper/tree/v7.3.1"
}, },
"funding": [ "funding": [
{ {
@@ -9268,7 +9268,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-04-27T18:39:23+00:00" "time": "2025-06-27T19:55:54+00:00"
}, },
{ {
"name": "symfony/var-exporter", "name": "symfony/var-exporter",

View File

@@ -78,7 +78,7 @@ 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' => '6.2.19', 'version' => '6.2.20',
'api_version' => '2.1.0', // field is no longer used. 'api_version' => '2.1.0', // field is no longer used.
'db_version' => 25, 'db_version' => 25,

95
package-lock.json generated
View File

@@ -2119,18 +2119,14 @@
} }
}, },
"node_modules/@jridgewell/gen-mapping": { "node_modules/@jridgewell/gen-mapping": {
"version": "0.3.8", "version": "0.3.12",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
"integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.5.0",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.24" "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
} }
}, },
"node_modules/@jridgewell/resolve-uri": { "node_modules/@jridgewell/resolve-uri": {
@@ -2143,20 +2139,10 @@
"node": ">=6.0.0" "node": ">=6.0.0"
} }
}, },
"node_modules/@jridgewell/set-array": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/source-map": { "node_modules/@jridgewell/source-map": {
"version": "0.3.6", "version": "0.3.10",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz",
"integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -2165,16 +2151,16 @@
} }
}, },
"node_modules/@jridgewell/sourcemap-codec": { "node_modules/@jridgewell/sourcemap-codec": {
"version": "1.5.0", "version": "1.5.4",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@jridgewell/trace-mapping": { "node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25", "version": "0.3.29",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -3110,9 +3096,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "24.0.6", "version": "24.0.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.6.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.10.tgz",
"integrity": "sha512-ZOyn+gOs749xU7ovp+Ibj0g1o3dFRqsfPnT22C2t5JzcRvgsEDpGawPbCISGKLudJk9Y0wiu9sYd6kUh0pc9TA==", "integrity": "sha512-ENHwaH+JIRTDIEEbDK6QSQntAYGtbvdDXnMXnZaZ6k13Du1dPMmprkEHIL7ok2Wl2aZevetwTAb5S+7yIF+enA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -3615,9 +3601,9 @@
} }
}, },
"node_modules/admin-lte": { "node_modules/admin-lte": {
"version": "4.0.0-rc2", "version": "4.0.0-rc3",
"resolved": "https://registry.npmjs.org/admin-lte/-/admin-lte-4.0.0-rc2.tgz", "resolved": "https://registry.npmjs.org/admin-lte/-/admin-lte-4.0.0-rc3.tgz",
"integrity": "sha512-VMi9+Fl/Eu/XFFH3V86jcIgiKs/VqKStKvDxZbdEcgEwXgjV/d2MP76UEnanVIjnC3lxqXESzmzu1iAhnNtlzg==", "integrity": "sha512-BKEGJknLiNW/l++6tjO9YIy2x6il4y/S977cSaRfi+wadZF3xe7U+vDR8q2H99CVC49VmPqRwb36hiyEVmBQTw==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/ajv": { "node_modules/ajv": {
@@ -5151,9 +5137,9 @@
} }
}, },
"node_modules/css-what": { "node_modules/css-what": {
"version": "6.1.0", "version": "6.2.2",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz",
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
"dev": true, "dev": true,
"license": "BSD-2-Clause", "license": "BSD-2-Clause",
"engines": { "engines": {
@@ -5650,9 +5636,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.5.177", "version": "1.5.178",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.177.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.178.tgz",
"integrity": "sha512-7EH2G59nLsEMj97fpDuvVcYi6lwTcM1xuWw3PssD8xzboAW7zj7iB3COEEEATUfjLHrs5uKBLQT03V/8URx06g==", "integrity": "sha512-wObbz/ar3Bc6e4X5vf0iO8xTN8YAjN/tgiAOJLr7yjYFtP9wAjq8Mb5h0yn6kResir+VYx2DXBj9NNobs0ETSA==",
"dev": true, "dev": true,
"license": "ISC" "license": "ISC"
}, },
@@ -7011,9 +6997,9 @@
} }
}, },
"node_modules/i18next": { "node_modules/i18next": {
"version": "25.2.1", "version": "25.3.0",
"resolved": "https://registry.npmjs.org/i18next/-/i18next-25.2.1.tgz", "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.3.0.tgz",
"integrity": "sha512-+UoXK5wh+VlE1Zy5p6MjcvctHXAhRwQKCxiJD8noKZzIXmnAX8gdHX5fLPA3MEVxEN4vbZkQFy8N0LyD9tUqPw==", "integrity": "sha512-ZSQIiNGfqSG6yoLHaCvrkPp16UejHI8PCDxFYaNG/1qxtmqNmqEg4JlWKlxkrUmrin2sEjsy+Mjy1TRozBhOgw==",
"funding": [ "funding": [
{ {
"type": "individual", "type": "individual",
@@ -7030,7 +7016,7 @@
], ],
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.27.1" "@babel/runtime": "^7.27.6"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": "^5" "typescript": "^5"
@@ -10473,17 +10459,24 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/sha.js": { "node_modules/sha.js": {
"version": "2.4.11", "version": "2.4.12",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz",
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==",
"dev": true, "dev": true,
"license": "(MIT AND BSD-3-Clause)", "license": "(MIT AND BSD-3-Clause)",
"dependencies": { "dependencies": {
"inherits": "^2.0.1", "inherits": "^2.0.4",
"safe-buffer": "^5.0.1" "safe-buffer": "^5.2.1",
"to-buffer": "^1.2.0"
}, },
"bin": { "bin": {
"sha.js": "bin.js" "sha.js": "bin.js"
},
"engines": {
"node": ">= 0.10"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/shallow-clone": { "node_modules/shallow-clone": {
@@ -12361,9 +12354,9 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/ws": { "node_modules/ws": {
"version": "8.18.2", "version": "8.18.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
"integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {

View File

@@ -2,7 +2,7 @@
"firefly": { "firefly": {
"administrations_page_title": "Administracions financeres", "administrations_page_title": "Administracions financeres",
"administrations_index_menu": "Administracions financeres", "administrations_index_menu": "Administracions financeres",
"expires_at": "Expires at", "expires_at": "Caduca a les",
"temp_administrations_introduction": "Firefly III aviat podr\u00e0 gestionar diverses administracions financeres. Ara mateix, nom\u00e9s en teniu una. Podeu definir el t\u00edtol d'aquesta administraci\u00f3 i la seva moneda nativa. Aix\u00f2 substitueix la configuraci\u00f3 anterior on definiu la vostra \"moneda predeterminada\". Aquesta configuraci\u00f3 ara est\u00e0 vinculada a l'administraci\u00f3 financera i pot ser diferent per a cada administraci\u00f3.", "temp_administrations_introduction": "Firefly III aviat podr\u00e0 gestionar diverses administracions financeres. Ara mateix, nom\u00e9s en teniu una. Podeu definir el t\u00edtol d'aquesta administraci\u00f3 i la seva moneda nativa. Aix\u00f2 substitueix la configuraci\u00f3 anterior on definiu la vostra \"moneda predeterminada\". Aquesta configuraci\u00f3 ara est\u00e0 vinculada a l'administraci\u00f3 financera i pot ser diferent per a cada administraci\u00f3.",
"administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.", "administration_currency_form_help": "It may take a long time for the page to load if you change the native currency because transaction may need to be converted to your (new) native currency.",
"administrations_page_edit_sub_title_js": "Edita l'administraci\u00f3 financera \"{title}\"", "administrations_page_edit_sub_title_js": "Edita l'administraci\u00f3 financera \"{title}\"",
@@ -46,7 +46,7 @@
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.", "is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s) unless you remove the reconciliation flag.",
"tags": "Etiquetes", "tags": "Etiquetes",
"no_budget": "(cap pressupost)", "no_budget": "(cap pressupost)",
"no_bill": "(no subscription)", "no_bill": "(cap subscripci\u00f3)",
"category": "Categoria", "category": "Categoria",
"attachments": "Adjunts", "attachments": "Adjunts",
"notes": "Notes", "notes": "Notes",
@@ -62,7 +62,7 @@
"destination_account_reconciliation": "No pots editar el compte de dest\u00ed d'una transacci\u00f3 de reconciliaci\u00f3.", "destination_account_reconciliation": "No pots editar el compte de dest\u00ed d'una transacci\u00f3 de reconciliaci\u00f3.",
"source_account_reconciliation": "No pots editar el compte d'origen d'una transacci\u00f3 de consolidaci\u00f3.", "source_account_reconciliation": "No pots editar el compte d'origen d'una transacci\u00f3 de consolidaci\u00f3.",
"budget": "Pressupost", "budget": "Pressupost",
"bill": "Subscription", "bill": "Subscripci\u00f3",
"you_create_withdrawal": "Est\u00e0s creant una retirada.", "you_create_withdrawal": "Est\u00e0s creant una retirada.",
"you_create_transfer": "Est\u00e0s creant una transfer\u00e8ncia.", "you_create_transfer": "Est\u00e0s creant una transfer\u00e8ncia.",
"you_create_deposit": "Est\u00e0s creant un ingr\u00e9s.", "you_create_deposit": "Est\u00e0s creant un ingr\u00e9s.",
@@ -140,21 +140,21 @@
"response": "Resposta", "response": "Resposta",
"visit_webhook_url": "Visitar l'URL del webhook", "visit_webhook_url": "Visitar l'URL del webhook",
"reset_webhook_secret": "Reiniciar el secret del webhook", "reset_webhook_secret": "Reiniciar el secret del webhook",
"header_exchange_rates": "Exchange rates", "header_exchange_rates": "Tipus de canvi",
"exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in <a href=\"https:\/\/docs.firefly-iii.org\/explanation\/financial-concepts\/exchange-rates\/\">the documentation<\/a>.", "exchange_rates_intro": "Firefly III supports downloading and using exchange rates. Read more about this in <a href=\"https:\/\/docs.firefly-iii.org\/explanation\/financial-concepts\/exchange-rates\/\">the documentation<\/a>.",
"exchange_rates_from_to": "Between {from} and {to} (and the other way around)", "exchange_rates_from_to": "Entre {from} i {to} (i a la inversa)",
"exchange_rates_intro_rates": "Firefly III uses the following exchange rates. The inverse is automatically calculated when it is not provided. If no exchange rate exists for the date of the transaction, Firefly III will go back in time to find one. If none are present, the rate \"1\" will be used.", "exchange_rates_intro_rates": "Firefly III uses the following exchange rates. The inverse is automatically calculated when it is not provided. If no exchange rate exists for the date of the transaction, Firefly III will go back in time to find one. If none are present, the rate \"1\" will be used.",
"header_exchange_rates_rates": "Exchange rates", "header_exchange_rates_rates": "Tipus de canvi",
"header_exchange_rates_table": "Table with exchange rates", "header_exchange_rates_table": "Taula amb els tipus de canvi",
"help_rate_form": "On this day, how many {to} will you get for one {from}?", "help_rate_form": "El dia d'avui, quants {to} obtindr\u00e0s amb un {from}?",
"add_new_rate": "Add a new exchange rate", "add_new_rate": "Afegeix un nou tipus de canvi",
"save_new_rate": "Save new rate" "save_new_rate": "Desa nou tipus"
}, },
"form": { "form": {
"url": "URL", "url": "URL",
"active": "Actiu", "active": "Actiu",
"interest_date": "Data d'inter\u00e8s", "interest_date": "Data d'inter\u00e8s",
"administration_currency": "Native currency", "administration_currency": "Moneda nativa",
"title": "T\u00edtol", "title": "T\u00edtol",
"date": "Data", "date": "Data",
"book_date": "Data de registre", "book_date": "Data de registre",
@@ -169,12 +169,12 @@
"webhook_delivery": "Lliurament", "webhook_delivery": "Lliurament",
"from_currency_to_currency": "{from} &rarr; {to}", "from_currency_to_currency": "{from} &rarr; {to}",
"to_currency_from_currency": "{to} &rarr; {from}", "to_currency_from_currency": "{to} &rarr; {from}",
"rate": "Rate" "rate": "Taxa"
}, },
"list": { "list": {
"title": "T\u00edtol", "title": "T\u00edtol",
"active": "Est\u00e0 actiu?", "active": "Est\u00e0 actiu?",
"native_currency": "Native currency", "native_currency": "Moneda nativa",
"trigger": "Activador", "trigger": "Activador",
"response": "Resposta", "response": "Resposta",
"delivery": "Lliurament", "delivery": "Lliurament",