Compare commits

...

18 Commits

Author SHA1 Message Date
github-actions[bot]
659240a98b Merge pull request #10363 from firefly-iii/develop
🤖 Automatically merge the PR into the main branch.
2025-05-25 06:49:54 +02:00
github-actions[bot]
4a5a31bf69 Merge pull request #10362 from firefly-iii/release-1748148584
🤖 Automatically merge the PR into the develop branch.
2025-05-25 06:49:50 +02:00
JC5
5f73e37657 🤖 Auto commit for release 'v6.2.14' on 2025-05-25 2025-05-25 06:49:44 +02:00
github-actions[bot]
7a9c0a8172 Merge pull request #10361 from firefly-iii/release-1748147782
🤖 Automatically merge the PR into the develop branch.
2025-05-25 06:36:31 +02:00
JC5
39914e2380 🤖 Auto commit for release 'develop' on 2025-05-25 2025-05-25 06:36:22 +02:00
James Cole
5a3240f69d Update changelog. 2025-05-25 06:27:05 +02:00
James Cole
19e5fd6277 Back to passport 12 for the time being. 2025-05-25 06:24:01 +02:00
James Cole
e9844dc2f5 Fix #10353 2025-05-24 19:48:09 +02:00
James Cole
c9f07c093a Fix tests and migrations 2025-05-24 17:30:08 +02:00
James Cole
6a986d8119 Merge pull request #10352 from firefly-iii/rector-cleanup-2
Rector cleanup 2
2025-05-24 17:20:07 +02:00
James Cole
f780de9e71 Replace magic facades 2025-05-24 17:19:18 +02:00
James Cole
b830bd2732 Replace magic facades 2025-05-24 17:15:46 +02:00
James Cole
e333dedeec Replace magic facades. 2025-05-24 17:07:12 +02:00
James Cole
6e5a08245c Rector code cleanup 2025-05-24 16:39:20 +02:00
James Cole
6a82a813e0 Fix version, I guess. 2025-05-24 07:24:28 +02:00
James Cole
7992ecf7f6 Use other workflow thing. 2025-05-24 07:22:18 +02:00
James Cole
967f7cb015 Move fix around 2025-05-24 06:37:19 +02:00
James Cole
7ca5e03752 Fix access rights in Sonar test 2025-05-24 06:36:06 +02:00
70 changed files with 287 additions and 445 deletions

View File

@@ -32,6 +32,7 @@ return RectorConfig::configure()
]) ])
->withPaths([ ->withPaths([
// __DIR__ . '/../app', // __DIR__ . '/../app',
__DIR__ . '/../app/Api',
__DIR__ . '/../app/Http', __DIR__ . '/../app/Http',
// __DIR__ . '/../bootstrap', // __DIR__ . '/../bootstrap',
// __DIR__ . '/../config', // __DIR__ . '/../config',

View File

@@ -51,7 +51,10 @@ jobs:
wget -q https://github.com/firefly-iii/test-fixtures/raw/refs/heads/main/test-database.sqlite -O storage/database/database.sqlite wget -q https://github.com/firefly-iii/test-fixtures/raw/refs/heads/main/test-database.sqlite -O storage/database/database.sqlite
- name: "Upgrades the database to the latest version" - name: "Upgrades the database to the latest version"
run: php artisan firefly-iii:upgrade-database run: |
php artisan firefly-iii:upgrade-database
chmod 600 storage/oauth-public.key
chmod 600 storage/oauth-private.key
- name: "Integrity Database Report" - name: "Integrity Database Report"
run: php artisan firefly-iii:report-integrity run: php artisan firefly-iii:report-integrity
@@ -63,7 +66,7 @@ jobs:
run: sed -i 's@'$GITHUB_WORKSPACE'@/github/workspace/@g' coverage.xml run: sed -i 's@'$GITHUB_WORKSPACE'@/github/workspace/@g' coverage.xml
- name: SonarCloud Scan - name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master uses: SonarSource/sonarqube-scan-action@v5.2.0
env: env:
GITHUB_TOKEN: ${{ secrets.GH_ACTIONS_PERSONAL_ACCESS_TOKEN }} GITHUB_TOKEN: ${{ secrets.GH_ACTIONS_PERSONAL_ACCESS_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Autocomplete; namespace FireflyIII\Api\V1\Controllers\Autocomplete;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -102,7 +103,7 @@ class TransactionController extends Controller
if (is_numeric($data['query'])) { if (is_numeric($data['query'])) {
// search for group, not journal. // search for group, not journal.
$firstResult = $this->groupRepository->find((int) $data['query']); $firstResult = $this->groupRepository->find((int) $data['query']);
if (null !== $firstResult) { if ($firstResult instanceof TransactionGroup) {
// group may contain multiple journals, each a result: // group may contain multiple journals, each a result:
foreach ($firstResult->transactionJournals as $journal) { foreach ($firstResult->transactionJournals as $journal) {
$result->push($journal); $result->push($journal);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart; namespace FireflyIII\Api\V1\Controllers\Chart;
use FireflyIII\Models\TransactionCurrency;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Chart\ChartRequest; use FireflyIII\Api\V1\Requests\Chart\ChartRequest;
@@ -99,7 +100,7 @@ class AccountController extends Controller
private function renderAccountData(array $params, Account $account): void private function renderAccountData(array $params, Account $account): void
{ {
$currency = $this->repository->getAccountCurrency($account); $currency = $this->repository->getAccountCurrency($account);
if (null === $currency) { if (!$currency instanceof TransactionCurrency) {
$currency = $this->default; $currency = $this->default;
} }
$currentSet = [ $currentSet = [

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\DestroyRequest; use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\DestroyRequest;
use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Enums\UserRoleEnum;
@@ -59,11 +60,11 @@ class DestroyController extends Controller
public function destroy(DestroyRequest $request, TransactionCurrency $from, TransactionCurrency $to): JsonResponse public function destroy(DestroyRequest $request, TransactionCurrency $from, TransactionCurrency $to): JsonResponse
{ {
$date = $request->getDate(); $date = $request->getDate();
if (null === $date) { if (!$date instanceof Carbon) {
throw new ValidationException('Date is required'); throw new ValidationException('Date is required');
} }
$rate = $this->repository->getSpecificRateOnDate($from, $to, $date); $rate = $this->repository->getSpecificRateOnDate($from, $to, $date);
if (null === $rate) { if (!$rate instanceof CurrencyExchangeRate) {
throw new NotFoundHttpException(); throw new NotFoundHttpException();
} }
$this->repository->deleteRate($rate); $this->repository->deleteRate($rate);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate;
use FireflyIII\Models\CurrencyExchangeRate;
use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\StoreRequest; use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\StoreRequest;
use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Controllers\Controller;
use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface; use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface;
@@ -61,11 +62,11 @@ class StoreController extends Controller
// already has rate? // already has rate?
$object = $this->repository->getSpecificRateOnDate($from, $to, $date); $object = $this->repository->getSpecificRateOnDate($from, $to, $date);
if (null !== $object) { if ($object instanceof CurrencyExchangeRate) {
// just update it, no matter. // just update it, no matter.
$rate = $this->repository->updateExchangeRate($object, $rate, $date); $rate = $this->repository->updateExchangeRate($object, $rate, $date);
} }
if (null === $object) { if (!$object instanceof CurrencyExchangeRate) {
// store new // store new
$rate = $this->repository->storeExchangeRate($from, $to, $rate, $date); $rate = $this->repository->storeExchangeRate($from, $to, $rate, $date);
} }

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency; namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency;
use Illuminate\Support\Facades\Validator;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionCurrency;
@@ -74,15 +75,15 @@ class DestroyController extends Controller
if (!$this->userRepository->hasRole($admin, 'owner')) { if (!$this->userRepository->hasRole($admin, 'owner')) {
// access denied: // access denied:
$messages = ['currency_code' => '200005: You need the "owner" role to do this.']; $messages = ['currency_code' => '200005: You need the "owner" role to do this.'];
\Validator::make([], $rules, $messages)->validate(); Validator::make([], $rules, $messages)->validate();
} }
if ($this->repository->currencyInUse($currency)) { if ($this->repository->currencyInUse($currency)) {
$messages = ['currency_code' => '200006: Currency in use.']; $messages = ['currency_code' => '200006: Currency in use.'];
\Validator::make([], $rules, $messages)->validate(); Validator::make([], $rules, $messages)->validate();
} }
if ($this->repository->isFallbackCurrency($currency)) { if ($this->repository->isFallbackCurrency($currency)) {
$messages = ['currency_code' => '200026: Currency is fallback.']; $messages = ['currency_code' => '200026: Currency is fallback.'];
\Validator::make([], $rules, $messages)->validate(); Validator::make([], $rules, $messages)->validate();
} }
$this->repository->destroy($currency); $this->repository->destroy($currency);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\TransactionLink; namespace FireflyIII\Api\V1\Controllers\Models\TransactionLink;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\TransactionLink\StoreRequest; use FireflyIII\Api\V1\Requests\Models\TransactionLink\StoreRequest;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
@@ -81,7 +82,7 @@ class StoreController extends Controller
$data = $request->getAll(); $data = $request->getAll();
$inward = $this->journalRepository->find($data['inward_id'] ?? 0); $inward = $this->journalRepository->find($data['inward_id'] ?? 0);
$outward = $this->journalRepository->find($data['outward_id'] ?? 0); $outward = $this->journalRepository->find($data['outward_id'] ?? 0);
if (null === $inward || null === $outward) { if (!$inward instanceof TransactionJournal || !$outward instanceof TransactionJournal) {
throw new FireflyException('200024: Source or destination does not exist.'); throw new FireflyException('200024: Source or destination does not exist.');
} }
$data['direction'] = 'inward'; $data['direction'] = 'inward';

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType;
use Illuminate\Support\Facades\Validator;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\TransactionLinkType\StoreRequest; use FireflyIII\Api\V1\Requests\Models\TransactionLinkType\StoreRequest;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
@@ -81,7 +82,7 @@ class StoreController extends Controller
if (!$this->userRepository->hasRole($admin, 'owner')) { if (!$this->userRepository->hasRole($admin, 'owner')) {
// access denied: // access denied:
$messages = ['name' => '200005: You need the "owner" role to do this.']; $messages = ['name' => '200005: You need the "owner" role to do this.'];
\Validator::make([], $rules, $messages)->validate(); Validator::make([], $rules, $messages)->validate();
} }
$data = $request->getAll(); $data = $request->getAll();
// if currency ID is 0, find the currency by the code: // if currency ID is 0, find the currency by the code:

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType;
use Illuminate\Support\Facades\Validator;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\Models\TransactionLinkType\UpdateRequest; use FireflyIII\Api\V1\Requests\Models\TransactionLinkType\UpdateRequest;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
@@ -85,7 +86,7 @@ class UpdateController extends Controller
if (!$this->userRepository->hasRole($admin, 'owner')) { if (!$this->userRepository->hasRole($admin, 'owner')) {
$messages = ['name' => '200005: You need the "owner" role to do this.']; $messages = ['name' => '200005: You need the "owner" role to do this.'];
\Validator::make([], $rules, $messages)->validate(); Validator::make([], $rules, $messages)->validate();
} }
$data = $request->getAll(); $data = $request->getAll();

View File

@@ -674,15 +674,14 @@ class BasicController extends Controller
*/ */
protected function notInDateRange(Carbon $date, Carbon $start, Carbon $end): bool // Validate a preference protected function notInDateRange(Carbon $date, Carbon $start, Carbon $end): bool // Validate a preference
{ {
$result = false;
if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) { if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) {
$result = true; return true;
} }
// start and end in the past? use $end // start and end in the past? use $end
if ($start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date)) { if ($start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date)) {
$result = true; return true;
} }
return $result; return false;
} }
} }

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\System; namespace FireflyIII\Api\V1\Controllers\System;
use Illuminate\Support\Facades\Validator;
use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Controllers\Controller;
use FireflyIII\Api\V1\Requests\System\UpdateRequest; use FireflyIII\Api\V1\Requests\System\UpdateRequest;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
@@ -158,7 +159,7 @@ class ConfigurationController extends Controller
$rules = ['value' => 'required']; $rules = ['value' => 'required'];
if (!$this->repository->hasRole(auth()->user(), 'owner')) { if (!$this->repository->hasRole(auth()->user(), 'owner')) {
$messages = ['value' => '200005: You need the "owner" role to do this.']; $messages = ['value' => '200005: You need the "owner" role to do this.'];
\Validator::make([], $rules, $messages)->validate(); Validator::make([], $rules, $messages)->validate();
} }
$data = $request->getAll(); $data = $request->getAll();
$shortName = str_replace('configuration.', '', $name); $shortName = str_replace('configuration.', '', $name);

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\System; namespace FireflyIII\Api\V1\Requests\System;
use Carbon\Carbon;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@@ -58,7 +59,7 @@ class CronRequest extends FormRequest
$data['date'] = $this->getCarbonDate('date'); $data['date'] = $this->getCarbonDate('date');
} }
// catch NULL. // catch NULL.
if (null === $data['date']) { if (!$data['date'] instanceof Carbon) {
$data['date'] = today(config('app.timezone')); $data['date'] = today(config('app.timezone'));
} }

View File

@@ -90,7 +90,7 @@ class AccountController extends Controller
'meta' => [ 'meta' => [
'type' => $account->accountType->type, 'type' => $account->accountType->type,
// TODO is multi currency property. // TODO is multi currency property.
'currency_id' => null === $currency ? null : (string) $currency->id, 'currency_id' => $currency instanceof TransactionCurrency ? (string) $currency->id : null,
'currency_code' => $currency?->code, 'currency_code' => $currency?->code,
'currency_symbol' => $currency?->symbol, 'currency_symbol' => $currency?->symbol,
'currency_decimal_places' => $currency?->decimal_places, 'currency_decimal_places' => $currency?->decimal_places,

View File

@@ -94,7 +94,7 @@ class AccountController extends Controller
private function renderAccountData(array $params, Account $account): void private function renderAccountData(array $params, Account $account): void
{ {
$currency = $this->repository->getAccountCurrency($account); $currency = $this->repository->getAccountCurrency($account);
if (null === $currency) { if (!$currency instanceof TransactionCurrency) {
$currency = $this->default; $currency = $this->default;
} }
$currentSet = [ $currentSet = [

View File

@@ -117,7 +117,7 @@ class Controller extends BaseController
app('log')->warning(sprintf('Ignored invalid date "%s" in API v2 controller parameter check: %s', substr((string) $date, 0, 20), $e->getMessage())); app('log')->warning(sprintf('Ignored invalid date "%s" in API v2 controller parameter check: %s', substr((string) $date, 0, 20), $e->getMessage()));
} }
// out of range? set to null. // out of range? set to null.
if (null !== $obj && ($obj->year <= 1900 || $obj->year > 2099)) { if ($obj instanceof Carbon && ($obj->year <= 1900 || $obj->year > 2099)) {
app('log')->warning(sprintf('Refuse to use date "%s" in API v2 controller parameter check: %s', $field, $obj->toAtomString())); app('log')->warning(sprintf('Refuse to use date "%s" in API v2 controller parameter check: %s', $field, $obj->toAtomString()));
$obj = null; $obj = null;
} }

View File

@@ -398,15 +398,14 @@ class BasicController extends Controller
*/ */
protected function notInDateRange(Carbon $date, Carbon $start, Carbon $end): bool // Validate a preference protected function notInDateRange(Carbon $date, Carbon $start, Carbon $end): bool // Validate a preference
{ {
$result = false;
if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) { if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) {
$result = true; return true;
} }
// start and end in the past? use $end // start and end in the past? use $end
if ($start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date)) { if ($start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date)) {
$result = true; return true;
} }
return $result; return false;
} }
} }

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V2\Controllers\Transaction\List; namespace FireflyIII\Api\V2\Controllers\Transaction\List;
use Carbon\Carbon;
use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Controllers\Controller;
use FireflyIII\Api\V2\Request\Model\Transaction\ListRequest; use FireflyIII\Api\V2\Request\Model\Transaction\ListRequest;
use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Helpers\Collector\GroupCollectorInterface;
@@ -62,11 +63,11 @@ class AccountController extends Controller
$start = $request->getStartDate(); $start = $request->getStartDate();
$end = $request->getEndDate(); $end = $request->getEndDate();
if (null !== $start) { if ($start instanceof Carbon) {
app('log')->debug(sprintf('Set start date to %s', $start->toIso8601String())); app('log')->debug(sprintf('Set start date to %s', $start->toIso8601String()));
$collector->setStart($start); $collector->setStart($start);
} }
if (null !== $end) { if ($end instanceof Carbon) {
app('log')->debug(sprintf('Set end date to %s', $start->toIso8601String())); app('log')->debug(sprintf('Set end date to %s', $start->toIso8601String()));
$collector->setEnd($end); $collector->setEnd($end);
} }

View File

@@ -53,7 +53,7 @@ class InfiniteListRequest extends FormRequest
$start = $this->getStartDate(); $start = $this->getStartDate();
$end = $this->getEndDate(); $end = $this->getEndDate();
if (null !== $start && null !== $end) { if ($start instanceof Carbon && $end instanceof Carbon) {
$array['start'] = $start->format('Y-m-d'); $array['start'] = $start->format('Y-m-d');
$array['end'] = $end->format('Y-m-d'); $array['end'] = $end->format('Y-m-d');
} }

View File

@@ -49,7 +49,7 @@ class ListRequest extends FormRequest
$start = $this->getStartDate(); $start = $this->getStartDate();
$end = $this->getEndDate(); $end = $this->getEndDate();
if (null !== $start && null !== $end) { if ($start instanceof Carbon && $end instanceof Carbon) {
$array['start'] = $start->format('Y-m-d'); $array['start'] = $start->format('Y-m-d');
$array['end'] = $end->format('Y-m-d'); $array['end'] = $end->format('Y-m-d');
} }

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Console\Commands\Correction;
use FireflyIII\Console\Commands\ShowsFriendlyMessages; use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Schema;
class CorrectsDatabase extends Command class CorrectsDatabase extends Command
{ {
@@ -40,7 +41,7 @@ class CorrectsDatabase extends Command
public function handle(): int public function handle(): int
{ {
// if table does not exist, return false // if table does not exist, return false
if (!\Schema::hasTable('users')) { if (!Schema::hasTable('users')) {
$this->friendlyError('No "users"-table, will not continue.'); $this->friendlyError('No "users"-table, will not continue.');
return 1; return 1;

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Console\Commands\Integrity;
use FireflyIII\Console\Commands\ShowsFriendlyMessages; use FireflyIII\Console\Commands\ShowsFriendlyMessages;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Schema;
class ReportsIntegrity extends Command class ReportsIntegrity extends Command
{ {
@@ -41,7 +42,7 @@ class ReportsIntegrity extends Command
public function handle(): int public function handle(): int
{ {
// if table does not exist, return false // if table does not exist, return false
if (!\Schema::hasTable('users')) { if (!Schema::hasTable('users')) {
return 1; return 1;
} }
$commands = [ $commands = [

View File

@@ -31,6 +31,7 @@ use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalCLIRepositoryInterface; use FireflyIII\Repositories\Journal\JournalCLIRepositoryInterface;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Schema;
class AddsTransactionIdentifiers extends Command class AddsTransactionIdentifiers extends Command
{ {
@@ -65,7 +66,7 @@ class AddsTransactionIdentifiers extends Command
} }
// if table does not exist, return false // if table does not exist, return false
if (!\Schema::hasTable('transaction_journals')) { if (!Schema::hasTable('transaction_journals')) {
return 0; return 0;
} }

View File

@@ -32,6 +32,7 @@ use FireflyIII\Models\TransactionJournal;
use FireflyIII\Rules\UniqueIban; use FireflyIII\Rules\UniqueIban;
use FireflyIII\Services\Internal\Update\AccountUpdateService; use FireflyIII\Services\Internal\Update\AccountUpdateService;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Validator;
/** /**
* Class TransactionFactory * Class TransactionFactory
@@ -152,7 +153,7 @@ class TransactionFactory
return; return;
} }
// validate info: // validate info:
$validator = \Validator::make(['iban' => $this->accountInformation['iban']], [ $validator = Validator::make(['iban' => $this->accountInformation['iban']], [
'iban' => ['required', new UniqueIban($this->account, $this->account->accountType->type)], 'iban' => ['required', new UniqueIban($this->account, $this->account->accountType->type)],
]); ]);
if ($validator->fails()) { if ($validator->fails()) {

View File

@@ -54,8 +54,8 @@ use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Auth\Events\Login; use Illuminate\Auth\Events\Login;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification; use Illuminate\Support\Facades\Notification;
use Mail;
/** /**
* Class UserEventHandler. * Class UserEventHandler.
@@ -266,7 +266,7 @@ class UserEventHandler
$url = route('profile.confirm-email-change', [$token->data]); $url = route('profile.confirm-email-change', [$token->data]);
try { try {
\Mail::to($newEmail)->send(new ConfirmEmailChangeMail($newEmail, $oldEmail, $url)); Mail::to($newEmail)->send(new ConfirmEmailChangeMail($newEmail, $oldEmail, $url));
} catch (\Exception $e) { } catch (\Exception $e) {
app('log')->error($e->getMessage()); app('log')->error($e->getMessage());
app('log')->error($e->getTraceAsString()); app('log')->error($e->getTraceAsString());
@@ -291,7 +291,7 @@ class UserEventHandler
$url = route('profile.undo-email-change', [$token->data, $hashed]); $url = route('profile.undo-email-change', [$token->data, $hashed]);
try { try {
\Mail::to($oldEmail)->send(new UndoEmailChangeMail($newEmail, $oldEmail, $url)); Mail::to($oldEmail)->send(new UndoEmailChangeMail($newEmail, $oldEmail, $url));
} catch (\Exception $e) { } catch (\Exception $e) {
app('log')->error($e->getMessage()); app('log')->error($e->getMessage());
app('log')->error($e->getTraceAsString()); app('log')->error($e->getTraceAsString());
@@ -355,7 +355,7 @@ class UserEventHandler
$url = route('invite', [$event->invitee->invite_code]); $url = route('invite', [$event->invitee->invite_code]);
try { try {
\Mail::to($invitee)->send(new InvitationMail($invitee, $admin, $url)); Mail::to($invitee)->send(new InvitationMail($invitee, $admin, $url));
} catch (\Exception $e) { } catch (\Exception $e) {
app('log')->error($e->getMessage()); app('log')->error($e->getMessage());
app('log')->error($e->getTraceAsString()); app('log')->error($e->getTraceAsString());

View File

@@ -36,7 +36,7 @@ use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Routing\Controller as BaseController; use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\View;
use Route; use Illuminate\Support\Facades\Route;
/** /**
* Class Controller. * Class Controller.

View File

@@ -24,6 +24,8 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\Profile; namespace FireflyIII\Http\Controllers\Profile;
use Illuminate\Support\Facades\Cookie;
use PragmaRX\Google2FALaravel\Facade as Google2FA;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Events\Security\DisabledMFA; use FireflyIII\Events\Security\DisabledMFA;
use FireflyIII\Events\Security\EnabledMFA; use FireflyIII\Events\Security\EnabledMFA;
@@ -182,7 +184,7 @@ class MfaController extends Controller
// also logout current 2FA tokens. // also logout current 2FA tokens.
$cookieName = config('google2fa.cookie_name', 'google2fa_token'); $cookieName = config('google2fa.cookie_name', 'google2fa_token');
\Cookie::forget($cookieName); Cookie::forget($cookieName);
// send user notification. // send user notification.
Log::channel('audit')->info(sprintf('User "%s" has disabled MFA', $user->email)); Log::channel('audit')->info(sprintf('User "%s" has disabled MFA', $user->email));
@@ -215,8 +217,8 @@ class MfaController extends Controller
} }
$domain = $this->getDomain(); $domain = $this->getDomain();
$secret = \Google2FA::generateSecretKey(); $secret = Google2FA::generateSecretKey();
$image = \Google2FA::getQRCodeInline($domain, auth()->user()->email, $secret); $image = Google2FA::getQRCodeInline($domain, auth()->user()->email, $secret);
app('preferences')->set('temp-mfa-secret', $secret); app('preferences')->set('temp-mfa-secret', $secret);
@@ -272,7 +274,7 @@ class MfaController extends Controller
// make sure MFA is logged out. // make sure MFA is logged out.
if ('testing' !== config('app.env')) { if ('testing' !== config('app.env')) {
\Google2FA::logout(); Google2FA::logout();
} }
// drop all info from session: // drop all info from session:

View File

@@ -23,6 +23,8 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers; namespace FireflyIII\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use FireflyIII\Events\UserChangedEmail; use FireflyIII\Events\UserChangedEmail;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Exceptions\ValidationException; use FireflyIII\Exceptions\ValidationException;
@@ -154,7 +156,8 @@ class ProfileController extends Controller
if (0 === $count) { if (0 === $count) {
/** @var ClientRepository $repository */ /** @var ClientRepository $repository */
$repository = app(ClientRepository::class); $repository = app(ClientRepository::class);
$repository->createPersonalAccessClient(null, config('app.name').' Personal Access Client', 'http://localhost'); $name = sprintf('%s Personal Access Grant Client', config('app.name'));
$repository->createPersonalAccessClient(null, $name, 'http://localhost');
} }
$accessToken = app('preferences')->get('access_token'); $accessToken = app('preferences')->get('access_token');
@@ -203,7 +206,7 @@ class ProfileController extends Controller
$existing = $repository->findByEmail($newEmail); $existing = $repository->findByEmail($newEmail);
if ($existing instanceof User) { if ($existing instanceof User) {
// force user logout. // force user logout.
\Auth::guard()->logout(); // @phpstan-ignore-line (does not recognize function) Auth::guard()->logout(); // @phpstan-ignore-line (does not recognize function)
$request->session()->invalidate(); $request->session()->invalidate();
session()->flash('success', (string) trans('firefly.email_changed')); session()->flash('success', (string) trans('firefly.email_changed'));
@@ -217,7 +220,7 @@ class ProfileController extends Controller
event(new UserChangedEmail($user, $newEmail, $oldEmail)); event(new UserChangedEmail($user, $newEmail, $oldEmail));
// force user logout. // force user logout.
\Auth::guard()->logout(); // @phpstan-ignore-line (does not recognize function) Auth::guard()->logout(); // @phpstan-ignore-line (does not recognize function)
$request->session()->invalidate(); $request->session()->invalidate();
session()->flash('success', (string) trans('firefly.email_changed')); session()->flash('success', (string) trans('firefly.email_changed'));
@@ -310,7 +313,7 @@ class ProfileController extends Controller
return redirect(route('profile.index')); return redirect(route('profile.index'));
} }
if (!\Hash::check($request->get('password'), auth()->user()->password)) { if (!Hash::check($request->get('password'), auth()->user()->password)) {
session()->flash('error', (string) trans('firefly.invalid_password')); session()->flash('error', (string) trans('firefly.invalid_password'));
return redirect(route('profile.delete-account')); return redirect(route('profile.delete-account'));
@@ -343,8 +346,8 @@ class ProfileController extends Controller
'email' => auth()->user()->email, 'email' => auth()->user()->email,
'password' => $request->get('password'), 'password' => $request->get('password'),
]; ];
if (\Auth::once($creds)) { if (Auth::once($creds)) {
\Auth::logoutOtherDevices($request->get('password')); Auth::logoutOtherDevices($request->get('password'));
session()->flash('info', (string) trans('firefly.other_sessions_logged_out')); session()->flash('info', (string) trans('firefly.other_sessions_logged_out'));
return redirect(route('profile.index')); return redirect(route('profile.index'));

View File

@@ -24,7 +24,8 @@ declare(strict_types=1);
namespace FireflyIII\Http\Controllers\System; namespace FireflyIII\Http\Controllers\System;
use Cache; use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Cache;
use Exception; use Exception;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Controllers\Controller;
@@ -142,14 +143,14 @@ class InstallController extends Controller
$this->keys(); $this->keys();
} }
if ('generate-keys' !== $command) { if ('generate-keys' !== $command) {
\Artisan::call($command, $args); Artisan::call($command, $args);
app('log')->debug(\Artisan::output()); app('log')->debug(Artisan::output());
} }
} catch (\Exception $e) { // intentional generic exception } catch (\Exception $e) { // intentional generic exception
throw new FireflyException($e->getMessage(), 0, $e); throw new FireflyException($e->getMessage(), 0, $e);
} }
// clear cache as well. // clear cache as well.
\Cache::clear(); Cache::clear();
app('preferences')->mark(); app('preferences')->mark();
return true; return true;

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Middleware; namespace FireflyIII\Http\Middleware;
use Illuminate\Support\Facades\App;
use Carbon\Carbon; use Carbon\Carbon;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Facades\Amount;
@@ -101,7 +102,7 @@ class Range
// get locale preference: // get locale preference:
$language = app('steam')->getLanguage(); $language = app('steam')->getLanguage();
$locale = app('steam')->getLocale(); $locale = app('steam')->getLocale();
\App::setLocale($language); App::setLocale($language);
Carbon::setLocale(substr((string) $locale, 0, 2)); Carbon::setLocale(substr((string) $locale, 0, 2));
$localeArray = app('steam')->getLocaleArray($locale); $localeArray = app('steam')->getLocaleArray($locale);

View File

@@ -28,6 +28,7 @@ use Illuminate\Mail\Message;
use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Symfony\Component\Mailer\Exception\TransportException; use Symfony\Component\Mailer\Exception\TransportException;
/** /**
@@ -70,7 +71,7 @@ class MailError extends Job implements ShouldQueue
if ($this->attempts() < 3 && '' !== $email) { if ($this->attempts() < 3 && '' !== $email) {
try { try {
\Mail::send( Mail::send(
['emails.error-html', 'emails.error-text'], ['emails.error-html', 'emails.error-text'],
$args, $args,
static function (Message $message) use ($email): void { static function (Message $message) use ($email): void {

View File

@@ -41,7 +41,7 @@ class AppServiceProvider extends ServiceProvider
public function boot(): void public function boot(): void
{ {
Schema::defaultStringLength(191); Schema::defaultStringLength(191);
Passport::$clientUuids = false; // Passport::$clientUuids = false;
Response::macro('api', function (array $value) { Response::macro('api', function (array $value) {
$headers = [ $headers = [
'Cache-Control' => 'no-store', 'Cache-Control' => 'no-store',
@@ -59,7 +59,7 @@ class AppServiceProvider extends ServiceProvider
// blade extension // blade extension
Blade::directive('activeXRoutePartial', function (string $route) { Blade::directive('activeXRoutePartial', function (string $route) {
$name = \Route::getCurrentRoute()->getName() ?? ''; $name = Route::getCurrentRoute()->getName() ?? '';
if (str_contains($name, $route)) { if (str_contains($name, $route)) {
return 'menu-open'; return 'menu-open';
} }

View File

@@ -39,6 +39,7 @@ use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Services\Internal\Destroy\TransactionGroupDestroyService; use FireflyIII\Services\Internal\Destroy\TransactionGroupDestroyService;
use Illuminate\Support\Facades\Validator;
/** /**
* Trait AccountServiceTrait * Trait AccountServiceTrait
@@ -54,7 +55,7 @@ trait AccountServiceTrait
} }
$data = ['iban' => $iban]; $data = ['iban' => $iban];
$rules = ['iban' => 'required|iban']; $rules = ['iban' => 'required|iban'];
$validator = \Validator::make($data, $rules); $validator = Validator::make($data, $rules);
if ($validator->fails()) { if ($validator->fails()) {
app('log')->info(sprintf('Detected invalid IBAN ("%s"). Return NULL instead.', $iban)); app('log')->info(sprintf('Detected invalid IBAN ("%s"). Return NULL instead.', $iban));

View File

@@ -23,7 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Support; namespace FireflyIII\Support;
use Eloquent; use Illuminate\Database\Eloquent\Model;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Support\Form\FormSupport; use FireflyIII\Support\Form\FormSupport;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
@@ -205,7 +205,7 @@ class ExpandedForm
$selectList[0] = '(none)'; $selectList[0] = '(none)';
$fields = ['title', 'name', 'description']; $fields = ['title', 'name', 'description'];
/** @var \Eloquent $entry */ /** @var Model $entry */
foreach ($set as $entry) { foreach ($set as $entry) {
// All Eloquent models have an ID // All Eloquent models have an ID
$entryId = $entry->id; $entryId = $entry->id;

View File

@@ -28,6 +28,7 @@ use FireflyIII\Models\Configuration;
use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Contracts\Encryption\EncryptException; use Illuminate\Contracts\Encryption\EncryptException;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
/** /**
@@ -38,8 +39,8 @@ class FireflyConfig
public function delete(string $name): void public function delete(string $name): void
{ {
$fullName = 'ff-config-'.$name; $fullName = 'ff-config-'.$name;
if (\Cache::has($fullName)) { if (Cache::has($fullName)) {
\Cache::forget($fullName); Cache::forget($fullName);
} }
Configuration::where('name', $name)->forceDelete(); Configuration::where('name', $name)->forceDelete();
} }
@@ -80,8 +81,8 @@ class FireflyConfig
public function get(string $name, mixed $default = null): ?Configuration public function get(string $name, mixed $default = null): ?Configuration
{ {
$fullName = 'ff-config-'.$name; $fullName = 'ff-config-'.$name;
if (\Cache::has($fullName)) { if (Cache::has($fullName)) {
return \Cache::get($fullName); return Cache::get($fullName);
} }
try { try {
@@ -92,7 +93,7 @@ class FireflyConfig
} }
if (null !== $config) { if (null !== $config) {
\Cache::forever($fullName, $config); Cache::forever($fullName, $config);
return $config; return $config;
} }
@@ -122,13 +123,13 @@ class FireflyConfig
$item->name = $name; $item->name = $name;
$item->data = $value; $item->data = $value;
$item->save(); $item->save();
\Cache::forget('ff-config-'.$name); Cache::forget('ff3-config-'.$name);
return $item; return $item;
} }
$config->data = $value; $config->data = $value;
$config->save(); $config->save();
\Cache::forget('ff-config-'.$name); Cache::forget('ff3-config-'.$name);
return $config; return $config;
} }

View File

@@ -33,7 +33,7 @@ use FireflyIII\User;
use Illuminate\Contracts\Validation\Validator as ValidatorContract; use Illuminate\Contracts\Validation\Validator as ValidatorContract;
use Illuminate\Routing\Route; use Illuminate\Routing\Route;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Route as RouteFacade; use Illuminate\Support\Facades\Route as RouteFacade;
/** /**
* Trait RequestInformation * Trait RequestInformation

View File

@@ -26,6 +26,7 @@ namespace FireflyIII\Support\System;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use Illuminate\Contracts\Encryption\DecryptException; use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Crypt;
use Laravel\Passport\Console\KeysCommand; use Laravel\Passport\Console\KeysCommand;
use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerExceptionInterface;
@@ -88,8 +89,8 @@ class OAuthKeys
public static function generateKeys(): void public static function generateKeys(): void
{ {
\Artisan::registerCommand(new KeysCommand()); Artisan::registerCommand(new KeysCommand());
\Artisan::call('firefly-iii:laravel-passport-keys'); Artisan::call('firefly-iii:laravel-passport-keys');
} }
public static function storeKeysInDB(): void public static function storeKeysInDB(): void

View File

@@ -33,7 +33,7 @@ use FireflyIII\Support\Facades\Steam;
use FireflyIII\Support\Search\OperatorQuerySearch; use FireflyIII\Support\Search\OperatorQuerySearch;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use League\CommonMark\GithubFlavoredMarkdownConverter; use League\CommonMark\GithubFlavoredMarkdownConverter;
use Route; use Illuminate\Support\Facades\Route;
use Twig\Extension\AbstractExtension; use Twig\Extension\AbstractExtension;
use Twig\TwigFilter; use Twig\TwigFilter;
use Twig\TwigFunction; use Twig\TwigFunction;
@@ -247,7 +247,7 @@ class General extends AbstractExtension
static function (): string { static function (): string {
$args = func_get_args(); $args = func_get_args();
$route = $args[0]; // name of the route. $route = $args[0]; // name of the route.
$name = \Route::getCurrentRoute()->getName() ?? ''; $name = Route::getCurrentRoute()->getName() ?? '';
if (str_contains($name, $route)) { if (str_contains($name, $route)) {
return 'active'; return 'active';
} }
@@ -271,7 +271,7 @@ class General extends AbstractExtension
if ($objectType === $activeObjectType if ($objectType === $activeObjectType
&& false !== stripos( && false !== stripos(
(string) \Route::getCurrentRoute()->getName(), (string) Route::getCurrentRoute()->getName(),
(string) $route (string) $route
)) { )) {
return 'active'; return 'active';
@@ -294,7 +294,7 @@ class General extends AbstractExtension
static function (): string { static function (): string {
$args = func_get_args(); $args = func_get_args();
$route = $args[0]; // name of the route. $route = $args[0]; // name of the route.
$name = \Route::getCurrentRoute()->getName() ?? ''; $name = Route::getCurrentRoute()->getName() ?? '';
if (str_contains($name, $route)) { if (str_contains($name, $route)) {
return 'menu-open'; return 'menu-open';
} }

View File

@@ -61,6 +61,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Laravel\Passport\HasApiTokens; use Laravel\Passport\HasApiTokens;
use NotificationChannels\Pushover\PushoverReceiver; use NotificationChannels\Pushover\PushoverReceiver;
@@ -464,7 +465,7 @@ class User extends Authenticatable
*/ */
public function sendPasswordResetNotification($token): void public function sendPasswordResetNotification($token): void
{ {
$ipAddress = \Request::ip(); $ipAddress = Request::ip();
event(new RequestedNewPassword($this, $token, $ipAddress)); event(new RequestedNewPassword($this, $token, $ipAddress));
} }

View File

@@ -44,6 +44,7 @@ use Illuminate\Validation\Validator;
use PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException; use PragmaRX\Google2FA\Exceptions\IncompatibleWithGoogleAuthenticatorException;
use PragmaRX\Google2FA\Exceptions\InvalidCharactersException; use PragmaRX\Google2FA\Exceptions\InvalidCharactersException;
use PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException; use PragmaRX\Google2FA\Exceptions\SecretKeyTooShortException;
use PragmaRX\Google2FALaravel\Facade;
/** /**
* Class FireflyValidator. * Class FireflyValidator.
@@ -79,7 +80,7 @@ class FireflyValidator extends Validator
} }
$secret = (string) $secret; $secret = (string) $secret;
return (bool) \Google2FA::verifyKey($secret, $value); return (bool) Facade::verifyKey($secret, $value);
} }
/** /**
@@ -131,7 +132,7 @@ class FireflyValidator extends Validator
} }
$secret = (string) $user->mfa_secret; $secret = (string) $user->mfa_secret;
return (bool) \Google2FA::verifyKey($secret, $value); return (bool) Facade::verifyKey($secret, $value);
} }
/** /**

View File

@@ -3,6 +3,13 @@
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.14 - 2025-05-26
### Fixed
- [Issue 10356](https://github.com/firefly-iii/firefly-iii/issues/10356) (Call to undefined method createPersonalAccessClient()) reported by @JC5
- [Issue 10357](https://github.com/firefly-iii/firefly-iii/issues/10357) (Target AuthorizationViewResponse is not instantiable) reported by @JC5
## 6.2.13 - 2025-05-25 ## 6.2.13 - 2025-05-25
### Fixed ### Fixed

View File

@@ -89,7 +89,7 @@
"jc5/recovery": "^2", "jc5/recovery": "^2",
"laravel-notification-channels/pushover": "^4.0", "laravel-notification-channels/pushover": "^4.0",
"laravel/framework": "^12", "laravel/framework": "^12",
"laravel/passport": "^13.0", "laravel/passport": "^12.0",
"laravel/sanctum": "^4.1", "laravel/sanctum": "^4.1",
"laravel/slack-notification-channel": "^3.3", "laravel/slack-notification-channel": "^3.3",
"laravel/ui": "^4.2", "laravel/ui": "^4.2",

235
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "6f1ffe4fde89e06daca72732fa904917", "content-hash": "b630645d62adf0b4c2a9a16ccfc7a3cc",
"packages": [ "packages": [
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@@ -2094,44 +2094,43 @@
}, },
{ {
"name": "laravel/passport", "name": "laravel/passport",
"version": "v13.0.1", "version": "v12.4.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/passport.git", "url": "https://github.com/laravel/passport.git",
"reference": "d96323a1c3699efe51ca477c3dd8fdd6500d7997" "reference": "65a885607b62d361aedaeb10a946bc6b5a954262"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/passport/zipball/d96323a1c3699efe51ca477c3dd8fdd6500d7997", "url": "https://api.github.com/repos/laravel/passport/zipball/65a885607b62d361aedaeb10a946bc6b5a954262",
"reference": "d96323a1c3699efe51ca477c3dd8fdd6500d7997", "reference": "65a885607b62d361aedaeb10a946bc6b5a954262",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"ext-openssl": "*",
"firebase/php-jwt": "^6.4", "firebase/php-jwt": "^6.4",
"illuminate/auth": "^11.35|^12.0", "illuminate/auth": "^9.21|^10.0|^11.0|^12.0",
"illuminate/console": "^11.35|^12.0", "illuminate/console": "^9.21|^10.0|^11.0|^12.0",
"illuminate/container": "^11.35|^12.0", "illuminate/container": "^9.21|^10.0|^11.0|^12.0",
"illuminate/contracts": "^11.35|^12.0", "illuminate/contracts": "^9.21|^10.0|^11.0|^12.0",
"illuminate/cookie": "^11.35|^12.0", "illuminate/cookie": "^9.21|^10.0|^11.0|^12.0",
"illuminate/database": "^11.35|^12.0", "illuminate/database": "^9.21|^10.0|^11.0|^12.0",
"illuminate/encryption": "^11.35|^12.0", "illuminate/encryption": "^9.21|^10.0|^11.0|^12.0",
"illuminate/http": "^11.35|^12.0", "illuminate/http": "^9.21|^10.0|^11.0|^12.0",
"illuminate/support": "^11.35|^12.0", "illuminate/support": "^9.21|^10.0|^11.0|^12.0",
"league/oauth2-server": "^9.2", "lcobucci/jwt": "^4.3|^5.0",
"php": "^8.2", "league/oauth2-server": "^8.5.3",
"php-http/discovery": "^1.20", "nyholm/psr7": "^1.5",
"phpseclib/phpseclib": "^3.0", "php": "^8.0",
"psr/http-factory-implementation": "*", "phpseclib/phpseclib": "^2.0|^3.0",
"symfony/console": "^7.1", "symfony/console": "^6.0|^7.0",
"symfony/psr-http-message-bridge": "^7.1" "symfony/psr-http-message-bridge": "^2.1|^6.0|^7.0"
}, },
"require-dev": { "require-dev": {
"mockery/mockery": "^1.6", "mockery/mockery": "^1.0",
"orchestra/testbench": "^9.9|^10.0", "orchestra/testbench": "^7.35|^8.14|^9.0|^10.0",
"phpstan/phpstan": "^2.0", "phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^11.5|^12.0" "phpunit/phpunit": "^9.3|^10.5|^11.5"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -2167,7 +2166,7 @@
"issues": "https://github.com/laravel/passport/issues", "issues": "https://github.com/laravel/passport/issues",
"source": "https://github.com/laravel/passport" "source": "https://github.com/laravel/passport"
}, },
"time": "2025-05-07T17:16:06+00:00" "time": "2025-02-12T16:11:33+00:00"
}, },
{ {
"name": "laravel/prompts", "name": "laravel/prompts",
@@ -2900,34 +2899,29 @@
}, },
{ {
"name": "league/event", "name": "league/event",
"version": "3.0.3", "version": "2.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/event.git", "url": "https://github.com/thephpleague/event.git",
"reference": "ec38ff7ea10cad7d99a79ac937fbcffb9334c210" "reference": "062ebb450efbe9a09bc2478e89b7c933875b0935"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/event/zipball/ec38ff7ea10cad7d99a79ac937fbcffb9334c210", "url": "https://api.github.com/repos/thephpleague/event/zipball/062ebb450efbe9a09bc2478e89b7c933875b0935",
"reference": "ec38ff7ea10cad7d99a79ac937fbcffb9334c210", "reference": "062ebb450efbe9a09bc2478e89b7c933875b0935",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2.0", "php": ">=7.1.0"
"psr/event-dispatcher": "^1.0"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0"
}, },
"require-dev": { "require-dev": {
"friendsofphp/php-cs-fixer": "^2.16", "henrikbjorn/phpspec-code-coverage": "~1.0.1",
"phpstan/phpstan": "^0.12.45", "phpspec/phpspec": "^2.2"
"phpunit/phpunit": "^8.5"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0-dev" "dev-master": "2.2-dev"
} }
}, },
"autoload": { "autoload": {
@@ -2953,9 +2947,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/event/issues", "issues": "https://github.com/thephpleague/event/issues",
"source": "https://github.com/thephpleague/event/tree/3.0.3" "source": "https://github.com/thephpleague/event/tree/2.3.0"
}, },
"time": "2024-09-04T16:06:53+00:00" "time": "2025-03-14T19:51:10+00:00"
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
@@ -3217,46 +3211,38 @@
}, },
{ {
"name": "league/oauth2-server", "name": "league/oauth2-server",
"version": "9.2.0", "version": "8.5.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/oauth2-server.git", "url": "https://github.com/thephpleague/oauth2-server.git",
"reference": "00323013403e1a1e0f424affafca56c28b60c22c" "reference": "cc8778350f905667e796b3c2364a9d3bd7a73518"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/00323013403e1a1e0f424affafca56c28b60c22c", "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/cc8778350f905667e796b3c2364a9d3bd7a73518",
"reference": "00323013403e1a1e0f424affafca56c28b60c22c", "reference": "cc8778350f905667e796b3c2364a9d3bd7a73518",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"defuse/php-encryption": "^2.4", "defuse/php-encryption": "^2.3",
"ext-json": "*",
"ext-openssl": "*", "ext-openssl": "*",
"lcobucci/clock": "^2.3 || ^3.0", "lcobucci/clock": "^2.2 || ^3.0",
"lcobucci/jwt": "^5.0", "lcobucci/jwt": "^4.3 || ^5.0",
"league/event": "^3.0", "league/event": "^2.2",
"league/uri": "^7.0", "league/uri": "^6.7 || ^7.0",
"php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", "php": "^8.0",
"psr/http-message": "^2.0", "psr/http-message": "^1.0.1 || ^2.0"
"psr/http-server-middleware": "^1.0"
}, },
"replace": { "replace": {
"league/oauth2server": "*", "league/oauth2server": "*",
"lncd/oauth2": "*" "lncd/oauth2": "*"
}, },
"require-dev": { "require-dev": {
"laminas/laminas-diactoros": "^3.5", "laminas/laminas-diactoros": "^3.0.0",
"php-parallel-lint/php-parallel-lint": "^1.3.2", "phpstan/phpstan": "^0.12.57",
"phpstan/extension-installer": "^1.3.1", "phpstan/phpstan-phpunit": "^0.12.16",
"phpstan/phpstan": "^1.12", "phpunit/phpunit": "^9.6.6",
"phpstan/phpstan-deprecation-rules": "^1.1.4", "roave/security-advisories": "dev-master"
"phpstan/phpstan-phpunit": "^1.3.15",
"phpstan/phpstan-strict-rules": "^1.5.2",
"phpunit/phpunit": "^9.6.21",
"roave/security-advisories": "dev-master",
"slevomat/coding-standard": "^8.14.1",
"squizlabs/php_codesniffer": "^3.8"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@@ -3301,7 +3287,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/oauth2-server/issues", "issues": "https://github.com/thephpleague/oauth2-server/issues",
"source": "https://github.com/thephpleague/oauth2-server/tree/9.2.0" "source": "https://github.com/thephpleague/oauth2-server/tree/8.5.5"
}, },
"funding": [ "funding": [
{ {
@@ -3309,7 +3295,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-02-15T00:49:10+00:00" "time": "2024-12-20T23:06:10+00:00"
}, },
{ {
"name": "league/uri", "name": "league/uri",
@@ -5538,119 +5524,6 @@
}, },
"time": "2023-04-04T09:54:51+00:00" "time": "2023-04-04T09:54:51+00:00"
}, },
{
"name": "psr/http-server-handler",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-server-handler.git",
"reference": "84c4fb66179be4caaf8e97bd239203245302e7d4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4",
"reference": "84c4fb66179be4caaf8e97bd239203245302e7d4",
"shasum": ""
},
"require": {
"php": ">=7.0",
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Server\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP server-side request handler",
"keywords": [
"handler",
"http",
"http-interop",
"psr",
"psr-15",
"psr-7",
"request",
"response",
"server"
],
"support": {
"source": "https://github.com/php-fig/http-server-handler/tree/1.0.2"
},
"time": "2023-04-10T20:06:20+00:00"
},
{
"name": "psr/http-server-middleware",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-server-middleware.git",
"reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
"reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
"shasum": ""
},
"require": {
"php": ">=7.0",
"psr/http-message": "^1.0 || ^2.0",
"psr/http-server-handler": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Http\\Server\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP server-side middleware",
"keywords": [
"http",
"http-interop",
"middleware",
"psr",
"psr-15",
"psr-7",
"request",
"response"
],
"support": {
"issues": "https://github.com/php-fig/http-server-middleware/issues",
"source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2"
},
"time": "2023-04-11T06:14:47+00:00"
},
{ {
"name": "psr/log", "name": "psr/log",
"version": "3.0.2", "version": "3.0.2",

View File

@@ -41,16 +41,6 @@ use FireflyIII\Providers\RuleServiceProvider;
use FireflyIII\Providers\SearchServiceProvider; use FireflyIII\Providers\SearchServiceProvider;
use FireflyIII\Providers\SessionServiceProvider; use FireflyIII\Providers\SessionServiceProvider;
use FireflyIII\Providers\TagServiceProvider; use FireflyIII\Providers\TagServiceProvider;
use FireflyIII\Support\Facades\AccountForm;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Facades\CurrencyForm;
use FireflyIII\Support\Facades\ExpandedForm;
use FireflyIII\Support\Facades\FireflyConfig;
use FireflyIII\Support\Facades\Navigation;
use FireflyIII\Support\Facades\PiggyBankForm;
use FireflyIII\Support\Facades\Preferences;
use FireflyIII\Support\Facades\RuleForm;
use FireflyIII\Support\Facades\Steam;
use Illuminate\Auth\AuthServiceProvider; use Illuminate\Auth\AuthServiceProvider;
use Illuminate\Auth\Passwords\PasswordResetServiceProvider; use Illuminate\Auth\Passwords\PasswordResetServiceProvider;
use Illuminate\Broadcasting\BroadcastServiceProvider; use Illuminate\Broadcasting\BroadcastServiceProvider;
@@ -58,7 +48,6 @@ use Illuminate\Bus\BusServiceProvider;
use Illuminate\Cache\CacheServiceProvider; use Illuminate\Cache\CacheServiceProvider;
use Illuminate\Cookie\CookieServiceProvider; use Illuminate\Cookie\CookieServiceProvider;
use Illuminate\Database\DatabaseServiceProvider; use Illuminate\Database\DatabaseServiceProvider;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Encryption\EncryptionServiceProvider; use Illuminate\Encryption\EncryptionServiceProvider;
use Illuminate\Filesystem\FilesystemServiceProvider; use Illuminate\Filesystem\FilesystemServiceProvider;
use Illuminate\Foundation\Providers\ConsoleSupportServiceProvider; use Illuminate\Foundation\Providers\ConsoleSupportServiceProvider;
@@ -70,48 +59,13 @@ use Illuminate\Pagination\PaginationServiceProvider;
use Illuminate\Pipeline\PipelineServiceProvider; use Illuminate\Pipeline\PipelineServiceProvider;
use Illuminate\Queue\QueueServiceProvider; use Illuminate\Queue\QueueServiceProvider;
use Illuminate\Redis\RedisServiceProvider; use Illuminate\Redis\RedisServiceProvider;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\Facades\Bus;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Notification;
use Illuminate\Support\Facades\Password;
use Illuminate\Support\Facades\Queue;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Redis;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\URL;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Str;
use Illuminate\Translation\TranslationServiceProvider; use Illuminate\Translation\TranslationServiceProvider;
use Illuminate\Validation\ValidationServiceProvider; use Illuminate\Validation\ValidationServiceProvider;
use Illuminate\View\ViewServiceProvider; use Illuminate\View\ViewServiceProvider;
use PragmaRX\Google2FALaravel\Facade;
use Spatie\Html\Facades\Html;
use TwigBridge\Facade\Twig;
use TwigBridge\ServiceProvider; use TwigBridge\ServiceProvider;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Route;
return [ return [
'name' => envNonEmpty('APP_NAME', 'Firefly III'), 'name' => envNonEmpty('APP_NAME', 'Firefly III'),
@@ -179,56 +133,9 @@ return [
RecurringServiceProvider::class, RecurringServiceProvider::class,
], ],
'aliases' => [ 'aliases' => [
'App' => App::class, 'Auth' => Auth::class,
'Artisan' => Artisan::class, 'Route' => Route::class,
'Auth' => Auth::class, 'Config' => Config::class,
'Blade' => Blade::class,
'Broadcast' => Broadcast::class,
'Bus' => Bus::class,
'Cache' => Cache::class,
'Config' => Config::class,
'Cookie' => Cookie::class,
'Crypt' => Crypt::class,
'DB' => DB::class,
'Eloquent' => Model::class,
'Event' => Event::class,
'File' => File::class,
'Gate' => Gate::class,
'Hash' => Hash::class,
'Lang' => Lang::class,
'Log' => Log::class,
'Mail' => Mail::class,
'Notification' => Notification::class,
'Password' => Password::class,
'Queue' => Queue::class,
'Redirect' => Redirect::class,
'Redis' => Redis::class,
'Request' => Request::class,
'Response' => Response::class,
'Route' => Route::class,
'Schema' => Schema::class,
'Session' => Session::class,
'Storage' => Storage::class,
'URL' => URL::class,
'Validator' => Validator::class,
'View' => View::class,
'Html' => Html::class,
'Preferences' => Preferences::class,
'FireflyConfig' => FireflyConfig::class,
'Navigation' => Navigation::class,
'Amount' => Amount::class,
'Steam' => Steam::class,
'ExpandedForm' => ExpandedForm::class,
'CurrencyForm' => CurrencyForm::class,
'AccountForm' => AccountForm::class,
'PiggyBankForm' => PiggyBankForm::class,
'RuleForm' => RuleForm::class,
'Google2FA' => Facade::class,
'Twig' => Twig::class,
'Arr' => Arr::class,
'Http' => Http::class,
'Str' => Str::class,
], ],
'asset_url' => env('ASSET_URL', null), 'asset_url' => env('ASSET_URL', null),

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.13', 'version' => '6.2.14',
'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,

View File

@@ -32,7 +32,7 @@ return [
'table' => 'sessions', 'table' => 'sessions',
'store' => null, 'store' => null,
'lottery' => [2, 100], 'lottery' => [2, 100],
'cookie' => 'firefly_session', 'cookie' => env('COOKIE_NAME', 'firefly_iii_session'),
'path' => env('COOKIE_PATH', '/'), 'path' => env('COOKIE_PATH', '/'),
'domain' => env('COOKIE_DOMAIN', null), 'domain' => env('COOKIE_DOMAIN', null),
'secure' => env('COOKIE_SECURE', null), 'secure' => env('COOKIE_SECURE', null),

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class CreateSupportTables. * Class CreateSupportTables.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class CreateUsersTable. * Class CreateUsersTable.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class CreateMainTables. * Class CreateMainTables.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class FixNullables. * Class FixNullables.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ExpandTransactionsTable. * Class ExpandTransactionsTable.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV410. * Class ChangesForV410.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV420. * Class ChangesForV420.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV430. * Class ChangesForV430.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV431. * Class ChangesForV431.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV440. * Class ChangesForV440.

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV450. * Class ChangesForV450.

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV472. * Class ChangesForV472.

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV475. * Class ChangesForV475.

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV477. * Class ChangesForV477.

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV479. * Class ChangesForV479.

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV480. * Class ChangesForV480.

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV520. * Class ChangesForV520.

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/** /**
* Class ChangesForV530 * Class ChangesForV530

View File

@@ -26,6 +26,7 @@ declare(strict_types=1);
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\QueryException; use Illuminate\Database\QueryException;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class () extends Migration { return new class () extends Migration {
private array $tables; private array $tables;

166
package-lock.json generated
View File

@@ -2552,9 +2552,9 @@
} }
}, },
"node_modules/@rollup/rollup-android-arm-eabi": { "node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz",
"integrity": "sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==", "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -2566,9 +2566,9 @@
] ]
}, },
"node_modules/@rollup/rollup-android-arm64": { "node_modules/@rollup/rollup-android-arm64": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz",
"integrity": "sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==", "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2580,9 +2580,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-arm64": { "node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz",
"integrity": "sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==", "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2594,9 +2594,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-x64": { "node_modules/@rollup/rollup-darwin-x64": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz",
"integrity": "sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==", "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -2608,9 +2608,9 @@
] ]
}, },
"node_modules/@rollup/rollup-freebsd-arm64": { "node_modules/@rollup/rollup-freebsd-arm64": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz",
"integrity": "sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==", "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2622,9 +2622,9 @@
] ]
}, },
"node_modules/@rollup/rollup-freebsd-x64": { "node_modules/@rollup/rollup-freebsd-x64": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz",
"integrity": "sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==", "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -2636,9 +2636,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-gnueabihf": { "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz",
"integrity": "sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==", "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -2650,9 +2650,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-musleabihf": { "node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz",
"integrity": "sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==", "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -2664,9 +2664,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-gnu": { "node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz",
"integrity": "sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==", "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2678,9 +2678,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-musl": { "node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz",
"integrity": "sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==", "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2692,9 +2692,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-loongarch64-gnu": { "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz",
"integrity": "sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==", "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==",
"cpu": [ "cpu": [
"loong64" "loong64"
], ],
@@ -2706,9 +2706,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": { "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz",
"integrity": "sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==", "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@@ -2720,9 +2720,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-riscv64-gnu": { "node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz",
"integrity": "sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==", "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@@ -2734,9 +2734,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-riscv64-musl": { "node_modules/@rollup/rollup-linux-riscv64-musl": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz",
"integrity": "sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==", "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@@ -2748,9 +2748,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-s390x-gnu": { "node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz",
"integrity": "sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==", "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@@ -2762,9 +2762,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-gnu": { "node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz",
"integrity": "sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==", "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -2776,9 +2776,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-musl": { "node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz",
"integrity": "sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==", "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -2790,9 +2790,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-arm64-msvc": { "node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz",
"integrity": "sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==", "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2804,9 +2804,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-ia32-msvc": { "node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz",
"integrity": "sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==", "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@@ -2818,9 +2818,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-x64-msvc": { "node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz",
"integrity": "sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==", "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -9973,9 +9973,9 @@
} }
}, },
"node_modules/rollup": { "node_modules/rollup": {
"version": "4.41.0", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.0.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz",
"integrity": "sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==", "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -9989,26 +9989,26 @@
"npm": ">=8.0.0" "npm": ">=8.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.41.0", "@rollup/rollup-android-arm-eabi": "4.41.1",
"@rollup/rollup-android-arm64": "4.41.0", "@rollup/rollup-android-arm64": "4.41.1",
"@rollup/rollup-darwin-arm64": "4.41.0", "@rollup/rollup-darwin-arm64": "4.41.1",
"@rollup/rollup-darwin-x64": "4.41.0", "@rollup/rollup-darwin-x64": "4.41.1",
"@rollup/rollup-freebsd-arm64": "4.41.0", "@rollup/rollup-freebsd-arm64": "4.41.1",
"@rollup/rollup-freebsd-x64": "4.41.0", "@rollup/rollup-freebsd-x64": "4.41.1",
"@rollup/rollup-linux-arm-gnueabihf": "4.41.0", "@rollup/rollup-linux-arm-gnueabihf": "4.41.1",
"@rollup/rollup-linux-arm-musleabihf": "4.41.0", "@rollup/rollup-linux-arm-musleabihf": "4.41.1",
"@rollup/rollup-linux-arm64-gnu": "4.41.0", "@rollup/rollup-linux-arm64-gnu": "4.41.1",
"@rollup/rollup-linux-arm64-musl": "4.41.0", "@rollup/rollup-linux-arm64-musl": "4.41.1",
"@rollup/rollup-linux-loongarch64-gnu": "4.41.0", "@rollup/rollup-linux-loongarch64-gnu": "4.41.1",
"@rollup/rollup-linux-powerpc64le-gnu": "4.41.0", "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1",
"@rollup/rollup-linux-riscv64-gnu": "4.41.0", "@rollup/rollup-linux-riscv64-gnu": "4.41.1",
"@rollup/rollup-linux-riscv64-musl": "4.41.0", "@rollup/rollup-linux-riscv64-musl": "4.41.1",
"@rollup/rollup-linux-s390x-gnu": "4.41.0", "@rollup/rollup-linux-s390x-gnu": "4.41.1",
"@rollup/rollup-linux-x64-gnu": "4.41.0", "@rollup/rollup-linux-x64-gnu": "4.41.1",
"@rollup/rollup-linux-x64-musl": "4.41.0", "@rollup/rollup-linux-x64-musl": "4.41.1",
"@rollup/rollup-win32-arm64-msvc": "4.41.0", "@rollup/rollup-win32-arm64-msvc": "4.41.1",
"@rollup/rollup-win32-ia32-msvc": "4.41.0", "@rollup/rollup-win32-ia32-msvc": "4.41.1",
"@rollup/rollup-win32-x64-msvc": "4.41.0", "@rollup/rollup-win32-x64-msvc": "4.41.1",
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },

View File

@@ -22,6 +22,7 @@
declare(strict_types=1); declare(strict_types=1);
use Illuminate\Support\Facades\Route;
// Cron job API routes: // Cron job API routes:
use FireflyIII\Http\Middleware\AcceptHeaders; use FireflyIII\Http\Middleware\AcceptHeaders;

View File

@@ -22,6 +22,8 @@
declare(strict_types=1); declare(strict_types=1);
use Illuminate\Support\Facades\Route;
/* /*
* *
* ____ ____ ___ .______ ______ __ __ .___________. _______ _______. * ____ ____ ___ .______ ______ __ __ .___________. _______ _______.

View File

@@ -22,6 +22,8 @@
declare(strict_types=1); declare(strict_types=1);
use Illuminate\Support\Facades\Broadcast;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Broadcast Channels | Broadcast Channels

View File

@@ -19,9 +19,10 @@
* You should have received a copy of the GNU Affero General Public License * You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
declare(strict_types=1); declare(strict_types=1);
use Illuminate\Support\Facades\Route;
if (!defined('DATEFORMAT')) { if (!defined('DATEFORMAT')) {
define('DATEFORMAT', '(19|20)[0-9]{2}-?[0-9]{2}-?[0-9]{2}'); define('DATEFORMAT', '(19|20)[0-9]{2}-?[0-9]{2}-?[0-9]{2}');
} }