diff --git a/README.md b/README.md index 52fda4ab..df75e68c 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Some helper libraries of note here: All changes must be done via a PR to the `main` branch. PR should be descriptive and provide reference to any issues as required. -For commits, messages, use [Coventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) +For commits, messages, use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) The commit message should be structured as follows: diff --git a/_ide_helper.php b/_ide_helper.php index 4c705f8f..b88dcec7 100644 --- a/_ide_helper.php +++ b/_ide_helper.php @@ -5,7 +5,7 @@ /** * A helper file for Laravel, to provide autocomplete information to your IDE - * Generated for Laravel 11.21.0. + * Generated for Laravel 11.22.0. * * This file should not be included in your code, only analyzed by your IDE! * @@ -6984,7 +6984,7 @@ * * @param string $path * @param string $algorithm - * @return string + * @return string|false * @static */ public static function hash($path, $algorithm = 'md5') { @@ -8040,7 +8040,7 @@ * @method static \Illuminate\Http\Client\PendingRequest beforeSending(callable $callback) * @method static \Illuminate\Http\Client\PendingRequest throw(callable|null $callback = null) * @method static \Illuminate\Http\Client\PendingRequest throwIf(callable|bool $condition) - * @method static \Illuminate\Http\Client\PendingRequest throwUnless(bool $condition) + * @method static \Illuminate\Http\Client\PendingRequest throwUnless(callable|bool $condition) * @method static \Illuminate\Http\Client\PendingRequest dump() * @method static \Illuminate\Http\Client\PendingRequest dd() * @method static \Illuminate\Http\Client\Response get(string $url, array|string|null $query = null) @@ -10840,7 +10840,7 @@ /** * Create a new redirect response to a named route. * - * @param string $route + * @param \BackedEnum|string $route * @param mixed $parameters * @param int $status * @param array $headers @@ -10854,7 +10854,7 @@ /** * Create a new redirect response to a signed named route. * - * @param string $route + * @param \BackedEnum|string $route * @param mixed $parameters * @param \DateTimeInterface|\DateInterval|int|null $expiration * @param int $status @@ -10869,7 +10869,7 @@ /** * Create a new redirect response to a signed named route. * - * @param string $route + * @param \BackedEnum|string $route * @param \DateTimeInterface|\DateInterval|int|null $expiration * @param mixed $parameters * @param int $status @@ -13314,10 +13314,10 @@ * @method static \Illuminate\Routing\RouteRegistrar whereIn(array|string $parameters, array $values) * @method static \Illuminate\Routing\RouteRegistrar as(string $value) * @method static \Illuminate\Routing\RouteRegistrar controller(string $controller) - * @method static \Illuminate\Routing\RouteRegistrar domain(string $value) + * @method static \Illuminate\Routing\RouteRegistrar domain(\BackedEnum|string $value) * @method static \Illuminate\Routing\RouteRegistrar middleware(array|string|null $middleware) * @method static \Illuminate\Routing\RouteRegistrar missing(\Closure $missing) - * @method static \Illuminate\Routing\RouteRegistrar name(string $value) + * @method static \Illuminate\Routing\RouteRegistrar name(\BackedEnum|string $value) * @method static \Illuminate\Routing\RouteRegistrar namespace(string|null $value) * @method static \Illuminate\Routing\RouteRegistrar prefix(string $prefix) * @method static \Illuminate\Routing\RouteRegistrar scopeBindings() @@ -16476,7 +16476,7 @@ /** * Create a signed route URL for a named route. * - * @param string $name + * @param \BackedEnum|string $name * @param mixed $parameters * @param \DateTimeInterface|\DateInterval|int|null $expiration * @param bool $absolute @@ -16491,7 +16491,7 @@ /** * Create a temporary signed route URL for a named route. * - * @param string $name + * @param \BackedEnum|string $name * @param \DateTimeInterface|\DateInterval|int $expiration * @param array $parameters * @param bool $absolute @@ -16554,11 +16554,11 @@ /** * Get the URL to a named route. * - * @param string $name + * @param \BackedEnum|string $name * @param mixed $parameters * @param bool $absolute * @return string - * @throws \Symfony\Component\Routing\Exception\RouteNotFoundException + * @throws \Symfony\Component\Routing\Exception\RouteNotFoundException|\InvalidArgumentException * @static */ public static function route($name, $parameters = [], $absolute = true) { @@ -18037,9 +18037,20 @@ return $instance->usePreloadTagAttributes($attributes); } /** - * Use the "waterfall" prefetching strategy. + * Eagerly prefetch assets. * * @param int|null $concurrency + * @param string $event + * @return \Illuminate\Foundation\Vite + * @static + */ public static function prefetch($concurrency = null, $event = 'load') + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->prefetch($concurrency, $event); + } + /** + * Use the "waterfall" prefetching strategy. + * * @return \Illuminate\Foundation\Vite * @static */ public static function useWaterfallPrefetching($concurrency = null) @@ -22592,7 +22603,7 @@ class Eloquent extends \Illuminate\Database\Eloquent\Model { /** * Add a "where" clause to the query for multiple columns with "and" conditions between them. * - * @param \Illuminate\Contracts\Database\Query\Expression[]|string[] $columns + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value * @param string $boolean @@ -22606,7 +22617,7 @@ class Eloquent extends \Illuminate\Database\Eloquent\Model { /** * Add an "or where" clause to the query for multiple columns with "and" conditions between them. * - * @param \Illuminate\Contracts\Database\Query\Expression[]|string[] $columns + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value * @return \Illuminate\Database\Query\Builder @@ -22619,7 +22630,7 @@ class Eloquent extends \Illuminate\Database\Eloquent\Model { /** * Add a "where" clause to the query for multiple columns with "or" conditions between them. * - * @param \Illuminate\Contracts\Database\Query\Expression[]|string[] $columns + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value * @param string $boolean @@ -22633,7 +22644,7 @@ class Eloquent extends \Illuminate\Database\Eloquent\Model { /** * Add an "or where" clause to the query for multiple columns with "or" conditions between them. * - * @param \Illuminate\Contracts\Database\Query\Expression[]|string[] $columns + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value * @return \Illuminate\Database\Query\Builder @@ -22646,7 +22657,7 @@ class Eloquent extends \Illuminate\Database\Eloquent\Model { /** * Add a "where not" clause to the query for multiple columns where none of the conditions should be true. * - * @param \Illuminate\Contracts\Database\Query\Expression[]|string[] $columns + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value * @param string $boolean @@ -22660,7 +22671,7 @@ class Eloquent extends \Illuminate\Database\Eloquent\Model { /** * Add an "or where not" clause to the query for multiple columns where none of the conditions should be true. * - * @param \Illuminate\Contracts\Database\Query\Expression[]|string[] $columns + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns * @param mixed $operator * @param mixed $value * @return \Illuminate\Database\Query\Builder diff --git a/app/Actions/CreatePublicationFromManuscript.php b/app/Actions/CreatePublicationFromManuscript.php index 070007f5..a0dede40 100644 --- a/app/Actions/CreatePublicationFromManuscript.php +++ b/app/Actions/CreatePublicationFromManuscript.php @@ -6,38 +6,42 @@ use App\Models\Journal; use App\Models\ManuscriptRecord; use App\Models\Publication; +use Illuminate\Support\Facades\DB; class CreatePublicationFromManuscript { public static function handle(ManuscriptRecord $manuscriptRecord, Journal $journal): Publication { + // create a new publication record - $publication = $manuscriptRecord->publication()->create([ + return DB::transaction(function () use ($manuscriptRecord, $journal) { + $publication = $manuscriptRecord->publication()->create([ 'title' => $manuscriptRecord->title, 'journal_id' => $journal->id, 'status' => PublicationStatus::ACCEPTED, 'accepted_on' => $manuscriptRecord->accepted_on, 'user_id' => $manuscriptRecord->user_id, - ]); + ]); - // attach the manuscript's authors to the publication - $manuscriptRecord->manuscriptAuthors()->each(function ($manuscriptAuthor) use ($publication) { + // attach the manuscript's authors to the publication + $manuscriptRecord->manuscriptAuthors()->each(function ($manuscriptAuthor) use ($publication) { $publication->publicationAuthors()->create([ 'author_id' => $manuscriptAuthor->author_id, 'organization_id' => $manuscriptAuthor->organization_id, 'is_corresponding_author' => $manuscriptAuthor->is_corresponding_author, ]); - }); + }); - // attach the manuscript's fundingSources to the publication - $manuscriptRecord->fundingSources()->each(function ($fundingSource) use ($publication) { + // attach the manuscript's fundingSources to the publication + $manuscriptRecord->fundingSources()->each(function ($fundingSource) use ($publication) { $publication->fundingSources()->create([ 'funder_id' => $fundingSource->funder_id, 'title' => $fundingSource->title, 'description' => $fundingSource->description, ]); - }); + }); - return $publication; + return $publication; + }); } } diff --git a/app/Actions/DeleteManuscriptRecord.php b/app/Actions/DeleteManuscriptRecord.php index e2aaebb4..0d553168 100644 --- a/app/Actions/DeleteManuscriptRecord.php +++ b/app/Actions/DeleteManuscriptRecord.php @@ -2,19 +2,23 @@ namespace App\Actions; +use Illuminate\Support\Facades\DB; + class DeleteManuscriptRecord { public static function handle($manuscriptRecord): bool { - // delete manuscript authors; - $manuscriptRecord->manuscriptAuthors()->delete(); + return DB::transaction(function () use ($manuscriptRecord) { + // delete manuscript authors; + $manuscriptRecord->manuscriptAuthors()->delete(); - // delete funding sources - $manuscriptRecord->fundingSources()->delete(); + // delete funding sources + $manuscriptRecord->fundingSources()->delete(); - // files/manuscript will be handled by media library + // files/manuscript will be handled by media library - // delete manuscript record - return $manuscriptRecord->delete(); + // delete manuscript record + return $manuscriptRecord->delete(); + }); } } diff --git a/app/Http/Resources/AuthenticatedUserResource.php b/app/Http/Resources/AuthenticatedUserResource.php index 0a246072..8668675c 100644 --- a/app/Http/Resources/AuthenticatedUserResource.php +++ b/app/Http/Resources/AuthenticatedUserResource.php @@ -28,6 +28,7 @@ public function toArray($request) 'new_password_required' => $this->new_password_required, 'author' => AuthorResource::make($this->author), 'roles' => $this->getRoleNames(), + 'last_login_at' => $this->previousSuccessfulLoginAt(), 'permissions' => $this->getAllPermissions()->pluck('name'), ]; } diff --git a/app/Models/User.php b/app/Models/User.php index bf32e325..79d7326b 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -209,4 +209,9 @@ public function sendPasswordResetNotification($token): void $this->notify(new PasswordResetNotification($this, $token)); } + + public function previousSuccessfulLoginAt() + { + return $this->authentications()->whereLoginSuccessful(true)->skip(1)->first()?->login_at; + } } diff --git a/composer.lock b/composer.lock index 38d30be8..8d57bfde 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.320.7", + "version": "3.321.4", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "702b9955160d2dacdf2cdf4d4476fcf95eae1aaf" + "reference": "986326efde1d0598ec9fc1b185716550be8ef522" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/702b9955160d2dacdf2cdf4d4476fcf95eae1aaf", - "reference": "702b9955160d2dacdf2cdf4d4476fcf95eae1aaf", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/986326efde1d0598ec9fc1b185716550be8ef522", + "reference": "986326efde1d0598ec9fc1b185716550be8ef522", "shasum": "" }, "require": { @@ -154,9 +154,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.320.7" + "source": "https://github.com/aws/aws-sdk-php/tree/3.321.4" }, - "time": "2024-08-23T18:13:50+00:00" + "time": "2024-09-04T18:09:31+00:00" }, { "name": "brick/math", @@ -1539,16 +1539,16 @@ }, { "name": "laravel/framework", - "version": "v11.21.0", + "version": "v11.22.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "9d9d36708d56665b12185493f684abce38ad2d30" + "reference": "868c75beacc47d0f361b919bbc155c0b619bf3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/9d9d36708d56665b12185493f684abce38ad2d30", - "reference": "9d9d36708d56665b12185493f684abce38ad2d30", + "url": "https://api.github.com/repos/laravel/framework/zipball/868c75beacc47d0f361b919bbc155c0b619bf3d5", + "reference": "868c75beacc47d0f361b919bbc155c0b619bf3d5", "shasum": "" }, "require": { @@ -1741,20 +1741,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-08-20T15:00:52+00:00" + "time": "2024-09-03T15:27:15+00:00" }, { "name": "laravel/horizon", - "version": "v5.27.1", + "version": "v5.28.1", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "184449be3eb296ab16c13a69ce22049f32d0fc2c" + "reference": "9d2c4eaeb11408384401f8a7d1b0ea4c76554f3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/184449be3eb296ab16c13a69ce22049f32d0fc2c", - "reference": "184449be3eb296ab16c13a69ce22049f32d0fc2c", + "url": "https://api.github.com/repos/laravel/horizon/zipball/9d2c4eaeb11408384401f8a7d1b0ea4c76554f3f", + "reference": "9d2c4eaeb11408384401f8a7d1b0ea4c76554f3f", "shasum": "" }, "require": { @@ -1818,9 +1818,9 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.27.1" + "source": "https://github.com/laravel/horizon/tree/v5.28.1" }, - "time": "2024-08-05T14:23:30+00:00" + "time": "2024-09-04T14:06:50+00:00" }, { "name": "laravel/pail", @@ -1960,20 +1960,20 @@ }, { "name": "laravel/pulse", - "version": "v1.2.4", + "version": "v1.2.5", "source": { "type": "git", "url": "https://github.com/laravel/pulse.git", - "reference": "2e7699a602e13bada4c64e3bc7c148ddcaec81bc" + "reference": "0c0c91fd05acc537f6324b271709670ffc201e59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pulse/zipball/2e7699a602e13bada4c64e3bc7c148ddcaec81bc", - "reference": "2e7699a602e13bada4c64e3bc7c148ddcaec81bc", + "url": "https://api.github.com/repos/laravel/pulse/zipball/0c0c91fd05acc537f6324b271709670ffc201e59", + "reference": "0c0c91fd05acc537f6324b271709670ffc201e59", "shasum": "" }, "require": { - "doctrine/sql-formatter": "^1.2", + "doctrine/sql-formatter": "^1.4.1", "guzzlehttp/promises": "^1.0|^2.0", "illuminate/auth": "^10.48.4|^11.0.8", "illuminate/cache": "^10.48.4|^11.0.8", @@ -2043,7 +2043,7 @@ "issues": "https://github.com/laravel/pulse/issues", "source": "https://github.com/laravel/pulse" }, - "time": "2024-07-08T15:09:50+00:00" + "time": "2024-09-03T09:21:52+00:00" }, { "name": "laravel/sanctum", @@ -2996,16 +2996,16 @@ }, { "name": "mtdowling/jmespath.php", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b" + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b", - "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc", "shasum": "" }, "require": { @@ -3022,7 +3022,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7-dev" + "dev-master": "2.8-dev" } }, "autoload": { @@ -3056,9 +3056,9 @@ ], "support": { "issues": "https://github.com/jmespath/jmespath.php/issues", - "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0" + "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0" }, - "time": "2023-08-25T10:54:48+00:00" + "time": "2024-09-04T18:46:31+00:00" }, { "name": "nesbot/carbon", @@ -3374,16 +3374,16 @@ }, { "name": "nunomaduro/termwind", - "version": "v2.0.1", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a" + "reference": "e5f21eade88689536c0cdad4c3cd75f3ed26e01a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/58c4c58cf23df7f498daeb97092e34f5259feb6a", - "reference": "58c4c58cf23df7f498daeb97092e34f5259feb6a", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/e5f21eade88689536c0cdad4c3cd75f3ed26e01a", + "reference": "e5f21eade88689536c0cdad4c3cd75f3ed26e01a", "shasum": "" }, "require": { @@ -3393,11 +3393,11 @@ }, "require-dev": { "ergebnis/phpstan-rules": "^2.2.0", - "illuminate/console": "^11.0.0", - "laravel/pint": "^1.14.0", - "mockery/mockery": "^1.6.7", - "pestphp/pest": "^2.34.1", - "phpstan/phpstan": "^1.10.59", + "illuminate/console": "^11.1.1", + "laravel/pint": "^1.15.0", + "mockery/mockery": "^1.6.11", + "pestphp/pest": "^2.34.6", + "phpstan/phpstan": "^1.10.66", "phpstan/phpstan-strict-rules": "^1.5.2", "symfony/var-dumper": "^7.0.4", "thecodingmachine/phpstan-strict-rules": "^1.0.0" @@ -3442,7 +3442,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.0.1" + "source": "https://github.com/nunomaduro/termwind/tree/v2.1.0" }, "funding": [ { @@ -3458,7 +3458,7 @@ "type": "github" } ], - "time": "2024-03-06T16:17:14+00:00" + "time": "2024-09-05T15:25:50+00:00" }, { "name": "openai-php/client", @@ -3943,16 +3943,16 @@ }, { "name": "php-http/multipart-stream-builder", - "version": "1.3.1", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/php-http/multipart-stream-builder.git", - "reference": "ed56da23b95949ae4747378bed8a5b61a2fdae24" + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/ed56da23b95949ae4747378bed8a5b61a2fdae24", - "reference": "ed56da23b95949ae4747378bed8a5b61a2fdae24", + "url": "https://api.github.com/repos/php-http/multipart-stream-builder/zipball/10086e6de6f53489cca5ecc45b6f468604d3460e", + "reference": "10086e6de6f53489cca5ecc45b6f468604d3460e", "shasum": "" }, "require": { @@ -3993,9 +3993,9 @@ ], "support": { "issues": "https://github.com/php-http/multipart-stream-builder/issues", - "source": "https://github.com/php-http/multipart-stream-builder/tree/1.3.1" + "source": "https://github.com/php-http/multipart-stream-builder/tree/1.4.2" }, - "time": "2024-06-10T14:51:55+00:00" + "time": "2024-09-04T13:22:54+00:00" }, { "name": "phpoption/phpoption", @@ -4074,16 +4074,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.11", + "version": "1.12.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3" + "reference": "0ca1c7bb55fca8fe6448f16fff0f311ccec960a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/707c2aed5d8d0075666e673a5e71440c1d01a5a3", - "reference": "707c2aed5d8d0075666e673a5e71440c1d01a5a3", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0ca1c7bb55fca8fe6448f16fff0f311ccec960a1", + "reference": "0ca1c7bb55fca8fe6448f16fff0f311ccec960a1", "shasum": "" }, "require": { @@ -4128,7 +4128,7 @@ "type": "github" } ], - "time": "2024-08-19T14:37:29+00:00" + "time": "2024-09-05T16:09:28+00:00" }, { "name": "predis/predis", @@ -5802,16 +5802,16 @@ }, { "name": "spatie/laravel-medialibrary", - "version": "11.9.0", + "version": "11.9.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-medialibrary.git", - "reference": "b103470caad6e7cd8013130e2651e637da94d4ef" + "reference": "ff589ea5532a33d84faeb64bfdfd59057b4148b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/b103470caad6e7cd8013130e2651e637da94d4ef", - "reference": "b103470caad6e7cd8013130e2651e637da94d4ef", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/ff589ea5532a33d84faeb64bfdfd59057b4148b8", + "reference": "ff589ea5532a33d84faeb64bfdfd59057b4148b8", "shasum": "" }, "require": { @@ -5895,7 +5895,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-medialibrary/issues", - "source": "https://github.com/spatie/laravel-medialibrary/tree/11.9.0" + "source": "https://github.com/spatie/laravel-medialibrary/tree/11.9.1" }, "funding": [ { @@ -5907,20 +5907,20 @@ "type": "github" } ], - "time": "2024-08-22T09:20:42+00:00" + "time": "2024-09-02T06:32:15+00:00" }, { "name": "spatie/laravel-package-tools", - "version": "1.16.4", + "version": "1.16.5", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53" + "reference": "c7413972cf22ffdff97b68499c22baa04eddb6a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", - "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/c7413972cf22ffdff97b68499c22baa04eddb6a2", + "reference": "c7413972cf22ffdff97b68499c22baa04eddb6a2", "shasum": "" }, "require": { @@ -5959,7 +5959,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.4" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.5" }, "funding": [ { @@ -5967,7 +5967,7 @@ "type": "github" } ], - "time": "2024-03-20T07:29:11+00:00" + "time": "2024-08-27T18:56:10+00:00" }, { "name": "spatie/laravel-permission", @@ -6650,16 +6650,16 @@ }, { "name": "staudenmeir/laravel-adjacency-list", - "version": "v1.22", + "version": "v1.22.2", "source": { "type": "git", "url": "https://github.com/staudenmeir/laravel-adjacency-list.git", - "reference": "0ec695e5d4094434f4a7adb956ebd23e228970ea" + "reference": "3bdb2b294f678d5f18b25c401b24bfd9b4a5fbab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/staudenmeir/laravel-adjacency-list/zipball/0ec695e5d4094434f4a7adb956ebd23e228970ea", - "reference": "0ec695e5d4094434f4a7adb956ebd23e228970ea", + "url": "https://api.github.com/repos/staudenmeir/laravel-adjacency-list/zipball/3bdb2b294f678d5f18b25c401b24bfd9b4a5fbab", + "reference": "3bdb2b294f678d5f18b25c401b24bfd9b4a5fbab", "shasum": "" }, "require": { @@ -6670,10 +6670,12 @@ }, "require-dev": { "barryvdh/laravel-ide-helper": "^3.0", + "harrygulliford/laravel-firebird": "dev-laravel-11.x", "larastan/larastan": "^2.0", "mockery/mockery": "^1.5.1", "orchestra/testbench": "^9.0", - "phpunit/phpunit": "^10.5", + "phpstan/phpstan-mockery": "^1.1", + "phpunit/phpunit": "^11.0", "singlestoredb/singlestoredb-laravel": "^1.5.4", "staudenmeir/eloquent-has-many-deep": "^1.20" }, @@ -6706,7 +6708,7 @@ "description": "Recursive Laravel Eloquent relationships with CTEs", "support": { "issues": "https://github.com/staudenmeir/laravel-adjacency-list/issues", - "source": "https://github.com/staudenmeir/laravel-adjacency-list/tree/v1.22" + "source": "https://github.com/staudenmeir/laravel-adjacency-list/tree/v1.22.2" }, "funding": [ { @@ -6714,7 +6716,7 @@ "type": "custom" } ], - "time": "2024-04-19T12:11:45+00:00" + "time": "2024-08-29T16:28:51+00:00" }, { "name": "staudenmeir/laravel-cte", @@ -6853,16 +6855,16 @@ }, { "name": "symfony/console", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9" + "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9", - "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9", + "url": "https://api.github.com/repos/symfony/console/zipball/1eed7af6961d763e7832e874d7f9b21c3ea9c111", + "reference": "1eed7af6961d763e7832e874d7f9b21c3ea9c111", "shasum": "" }, "require": { @@ -6926,7 +6928,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.3" + "source": "https://github.com/symfony/console/tree/v7.1.4" }, "funding": [ { @@ -6942,7 +6944,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:41:01+00:00" + "time": "2024-08-15T22:48:53+00:00" }, { "name": "symfony/css-selector", @@ -7309,16 +7311,16 @@ }, { "name": "symfony/finder", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "717c6329886f32dc65e27461f80f2a465412fdca" + "reference": "d95bbf319f7d052082fb7af147e0f835a695e823" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/717c6329886f32dc65e27461f80f2a465412fdca", - "reference": "717c6329886f32dc65e27461f80f2a465412fdca", + "url": "https://api.github.com/repos/symfony/finder/zipball/d95bbf319f7d052082fb7af147e0f835a695e823", + "reference": "d95bbf319f7d052082fb7af147e0f835a695e823", "shasum": "" }, "require": { @@ -7353,7 +7355,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.1.3" + "source": "https://github.com/symfony/finder/tree/v7.1.4" }, "funding": [ { @@ -7369,20 +7371,20 @@ "type": "tidelift" } ], - "time": "2024-07-24T07:08:44+00:00" + "time": "2024-08-13T14:28:19+00:00" }, { "name": "symfony/http-client", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "b79858aa7a051ea791b0d50269a234a0b50cb231" + "reference": "a8f8d60b30b331cf4b743b3632e5acdba3f8285c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/b79858aa7a051ea791b0d50269a234a0b50cb231", - "reference": "b79858aa7a051ea791b0d50269a234a0b50cb231", + "url": "https://api.github.com/repos/symfony/http-client/zipball/a8f8d60b30b331cf4b743b3632e5acdba3f8285c", + "reference": "a8f8d60b30b331cf4b743b3632e5acdba3f8285c", "shasum": "" }, "require": { @@ -7447,7 +7449,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.1.3" + "source": "https://github.com/symfony/http-client/tree/v7.1.4" }, "funding": [ { @@ -7463,7 +7465,7 @@ "type": "tidelift" } ], - "time": "2024-07-17T06:10:24+00:00" + "time": "2024-08-26T06:32:37+00:00" }, { "name": "symfony/http-client-contracts", @@ -7622,16 +7624,16 @@ }, { "name": "symfony/http-kernel", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "db9702f3a04cc471ec8c70e881825db26ac5f186" + "reference": "6efcbd1b3f444f631c386504fc83eeca25963747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/db9702f3a04cc471ec8c70e881825db26ac5f186", - "reference": "db9702f3a04cc471ec8c70e881825db26ac5f186", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6efcbd1b3f444f631c386504fc83eeca25963747", + "reference": "6efcbd1b3f444f631c386504fc83eeca25963747", "shasum": "" }, "require": { @@ -7716,7 +7718,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.1.3" + "source": "https://github.com/symfony/http-kernel/tree/v7.1.4" }, "funding": [ { @@ -7732,7 +7734,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T14:58:15+00:00" + "time": "2024-08-30T17:02:28+00:00" }, { "name": "symfony/mailer", @@ -7885,16 +7887,16 @@ }, { "name": "symfony/mime", - "version": "v7.1.2", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc" + "reference": "ccaa6c2503db867f472a587291e764d6a1e58758" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/26a00b85477e69a4bab63b66c5dce64f18b0cbfc", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc", + "url": "https://api.github.com/repos/symfony/mime/zipball/ccaa6c2503db867f472a587291e764d6a1e58758", + "reference": "ccaa6c2503db867f472a587291e764d6a1e58758", "shasum": "" }, "require": { @@ -7949,7 +7951,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.2" + "source": "https://github.com/symfony/mime/tree/v7.1.4" }, "funding": [ { @@ -7965,7 +7967,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-08-13T14:28:19+00:00" }, { "name": "symfony/polyfill-ctype", @@ -8820,16 +8822,16 @@ }, { "name": "symfony/routing", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8a908a3f22d5a1b5d297578c2ceb41b02fa916d0" + "reference": "1500aee0094a3ce1c92626ed8cf3c2037e86f5a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8a908a3f22d5a1b5d297578c2ceb41b02fa916d0", - "reference": "8a908a3f22d5a1b5d297578c2ceb41b02fa916d0", + "url": "https://api.github.com/repos/symfony/routing/zipball/1500aee0094a3ce1c92626ed8cf3c2037e86f5a7", + "reference": "1500aee0094a3ce1c92626ed8cf3c2037e86f5a7", "shasum": "" }, "require": { @@ -8881,7 +8883,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.1.3" + "source": "https://github.com/symfony/routing/tree/v7.1.4" }, "funding": [ { @@ -8897,7 +8899,7 @@ "type": "tidelift" } ], - "time": "2024-07-17T06:10:24+00:00" + "time": "2024-08-29T08:16:25+00:00" }, { "name": "symfony/service-contracts", @@ -9046,16 +9048,16 @@ }, { "name": "symfony/string", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ea272a882be7f20cad58d5d78c215001617b7f07" + "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ea272a882be7f20cad58d5d78c215001617b7f07", - "reference": "ea272a882be7f20cad58d5d78c215001617b7f07", + "url": "https://api.github.com/repos/symfony/string/zipball/6cd670a6d968eaeb1c77c2e76091c45c56bc367b", + "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b", "shasum": "" }, "require": { @@ -9113,7 +9115,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.3" + "source": "https://github.com/symfony/string/tree/v7.1.4" }, "funding": [ { @@ -9129,7 +9131,7 @@ "type": "tidelift" } ], - "time": "2024-07-22T10:25:37+00:00" + "time": "2024-08-12T09:59:40+00:00" }, { "name": "symfony/translation", @@ -9305,16 +9307,16 @@ }, { "name": "symfony/uid", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "bb59febeecc81528ff672fad5dab7f06db8c8277" + "reference": "82177535395109075cdb45a70533aa3d7a521cdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/bb59febeecc81528ff672fad5dab7f06db8c8277", - "reference": "bb59febeecc81528ff672fad5dab7f06db8c8277", + "url": "https://api.github.com/repos/symfony/uid/zipball/82177535395109075cdb45a70533aa3d7a521cdf", + "reference": "82177535395109075cdb45a70533aa3d7a521cdf", "shasum": "" }, "require": { @@ -9359,7 +9361,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.1.1" + "source": "https://github.com/symfony/uid/tree/v7.1.4" }, "funding": [ { @@ -9375,20 +9377,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-12T09:59:40+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.3", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "86af4617cca75a6e28598f49ae0690f3b9d4591f" + "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/86af4617cca75a6e28598f49ae0690f3b9d4591f", - "reference": "86af4617cca75a6e28598f49ae0690f3b9d4591f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a5fa7481b199090964d6fd5dab6294d5a870c7aa", + "reference": "a5fa7481b199090964d6fd5dab6294d5a870c7aa", "shasum": "" }, "require": { @@ -9442,7 +9444,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.3" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.4" }, "funding": [ { @@ -9458,7 +9460,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:41:01+00:00" + "time": "2024-08-30T16:12:47+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -10334,16 +10336,16 @@ }, { "name": "composer/pcre", - "version": "3.3.0", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "1637e067347a0c40bbb1e3cd786b20dcab556a81" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/1637e067347a0c40bbb1e3cd786b20dcab556a81", - "reference": "1637e067347a0c40bbb1e3cd786b20dcab556a81", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { @@ -10393,7 +10395,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.0" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -10409,7 +10411,7 @@ "type": "tidelift" } ], - "time": "2024-08-19T19:43:53+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "doctrine/deprecations", @@ -10676,16 +10678,16 @@ }, { "name": "fidry/cpu-core-counter", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" + "reference": "8520451a140d3f46ac33042715115e290cf5785f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", "shasum": "" }, "require": { @@ -10725,7 +10727,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" }, "funding": [ { @@ -10733,7 +10735,7 @@ "type": "github" } ], - "time": "2024-02-07T09:43:46+00:00" + "time": "2024-08-06T10:04:20+00:00" }, { "name": "filp/whoops", @@ -11080,16 +11082,16 @@ }, { "name": "laravel/pint", - "version": "v1.17.2", + "version": "v1.17.3", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "e8a88130a25e3f9d4d5785e6a1afca98268ab110" + "reference": "9d77be916e145864f10788bb94531d03e1f7b482" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/e8a88130a25e3f9d4d5785e6a1afca98268ab110", - "reference": "e8a88130a25e3f9d4d5785e6a1afca98268ab110", + "url": "https://api.github.com/repos/laravel/pint/zipball/9d77be916e145864f10788bb94531d03e1f7b482", + "reference": "9d77be916e145864f10788bb94531d03e1f7b482", "shasum": "" }, "require": { @@ -11100,13 +11102,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.61.1", - "illuminate/view": "^10.48.18", + "friendsofphp/php-cs-fixer": "^3.64.0", + "illuminate/view": "^10.48.20", "larastan/larastan": "^2.9.8", "laravel-zero/framework": "^10.4.0", "mockery/mockery": "^1.6.12", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.35.0" + "pestphp/pest": "^2.35.1" }, "bin": [ "builds/pint" @@ -11142,20 +11144,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2024-08-06T15:11:54+00:00" + "time": "2024-09-03T15:00:28+00:00" }, { "name": "laravel/sail", - "version": "v1.31.1", + "version": "v1.31.3", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "3d06dd18cee8059baa7b388af00ba47f6d96bd85" + "reference": "0a7e2891a85eba2d448a9ffc6fc5ce367e924bc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/3d06dd18cee8059baa7b388af00ba47f6d96bd85", - "reference": "3d06dd18cee8059baa7b388af00ba47f6d96bd85", + "url": "https://api.github.com/repos/laravel/sail/zipball/0a7e2891a85eba2d448a9ffc6fc5ce367e924bc1", + "reference": "0a7e2891a85eba2d448a9ffc6fc5ce367e924bc1", "shasum": "" }, "require": { @@ -11205,7 +11207,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-08-02T07:45:47+00:00" + "time": "2024-09-03T20:05:33+00:00" }, { "name": "mockery/mockery", @@ -12128,16 +12130,16 @@ }, { "name": "phpmyadmin/sql-parser", - "version": "5.9.1", + "version": "5.10.0", "source": { "type": "git", "url": "https://github.com/phpmyadmin/sql-parser.git", - "reference": "169a9f11f1957ea36607c9b29eac1b48679f1ecc" + "reference": "91d980ab76c3f152481e367f62b921adc38af451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/169a9f11f1957ea36607c9b29eac1b48679f1ecc", - "reference": "169a9f11f1957ea36607c9b29eac1b48679f1ecc", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/91d980ab76c3f152481e367f62b921adc38af451", + "reference": "91d980ab76c3f152481e367f62b921adc38af451", "shasum": "" }, "require": { @@ -12211,20 +12213,20 @@ "type": "other" } ], - "time": "2024-08-13T19:01:01+00:00" + "time": "2024-08-29T20:56:34+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "1.30.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", "shasum": "" }, "require": { @@ -12256,9 +12258,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2024-08-29T09:54:52+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -13964,16 +13966,16 @@ }, { "name": "symfony/yaml", - "version": "v7.1.1", + "version": "v7.1.4", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2" + "reference": "92e080b851c1c655c786a2da77f188f2dccd0f4b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/fa34c77015aa6720469db7003567b9f772492bf2", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2", + "url": "https://api.github.com/repos/symfony/yaml/zipball/92e080b851c1c655c786a2da77f188f2dccd0f4b", + "reference": "92e080b851c1c655c786a2da77f188f2dccd0f4b", "shasum": "" }, "require": { @@ -14015,7 +14017,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.1.1" + "source": "https://github.com/symfony/yaml/tree/v7.1.4" }, "funding": [ { @@ -14031,7 +14033,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-08-12T09:59:40+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", diff --git a/package.json b/package.json index a7d4f619..3dac136e 100644 --- a/package.json +++ b/package.json @@ -11,32 +11,32 @@ "dependencies": { "@intlify/unplugin-vue-i18n": "^4.0.0", "@quasar/extras": "^1.16.12", - "@vitejs/plugin-vue": "^5.1.2", + "@vitejs/plugin-vue": "^5.1.3", "@vueuse/core": "^11.0.3", "dompurify": "^3.1.6", "pinia": "^2.2.2", - "quasar": "^2.16.9", - "vue": "^3.4.38", + "quasar": "^2.16.10", + "vue": "^3.5.2", "vue-i18n": "^9.14.0", "vue-router": "^4.4.3" }, "devDependencies": { - "@antfu/eslint-config": "^2.27.1", + "@antfu/eslint-config": "^3.2.2", "@quasar/vite-plugin": "^1.7.0", "@types/dompurify": "^3.0.5", - "@types/node": "^22.5.0", - "axios": "^1.7.5", - "cypress": "^13.13.3", + "@types/node": "^22.5.4", + "axios": "^1.7.7", + "cypress": "^13.14.2", "eslint": "^9.9.1", "eslint-plugin-quasar": "^1.1.0", "globals": "^15.9.0", "laravel-vite-plugin": "^1.0.5", "lodash": "^4.17.21", "prettier": "^3.3.3", - "sass": "^1.77.8", + "sass": "^1.78.0", "typescript": "^5.5.4", "unplugin-auto-import": "^0.18.2", - "vite": "^5.4.2", - "vue-tsc": "^2.0.29" + "vite": "^5.4.3", + "vue-tsc": "^2.1.6" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d94685e..af48726a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,53 +10,53 @@ importers: dependencies: '@intlify/unplugin-vue-i18n': specifier: ^4.0.0 - version: 4.0.0(rollup@4.21.0)(vue-i18n@9.14.0(vue@3.4.38(typescript@5.5.4))) + version: 4.0.0(rollup@4.21.2)(vue-i18n@9.14.0(vue@3.5.2(typescript@5.5.4)))(webpack-sources@3.2.3) '@quasar/extras': specifier: ^1.16.12 version: 1.16.12 '@vitejs/plugin-vue': - specifier: ^5.1.2 - version: 5.1.2(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + specifier: ^5.1.3 + version: 5.1.3(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0))(vue@3.5.2(typescript@5.5.4)) '@vueuse/core': specifier: ^11.0.3 - version: 11.0.3(vue@3.4.38(typescript@5.5.4)) + version: 11.0.3(vue@3.5.2(typescript@5.5.4)) dompurify: specifier: ^3.1.6 version: 3.1.6 pinia: specifier: ^2.2.2 - version: 2.2.2(typescript@5.5.4)(vue@3.4.38(typescript@5.5.4)) + version: 2.2.2(typescript@5.5.4)(vue@3.5.2(typescript@5.5.4)) quasar: - specifier: ^2.16.9 - version: 2.16.9 + specifier: ^2.16.10 + version: 2.16.10 vue: - specifier: ^3.4.38 - version: 3.4.38(typescript@5.5.4) + specifier: ^3.5.2 + version: 3.5.2(typescript@5.5.4) vue-i18n: specifier: ^9.14.0 - version: 9.14.0(vue@3.4.38(typescript@5.5.4)) + version: 9.14.0(vue@3.5.2(typescript@5.5.4)) vue-router: specifier: ^4.4.3 - version: 4.4.3(vue@3.4.38(typescript@5.5.4)) + version: 4.4.3(vue@3.5.2(typescript@5.5.4)) devDependencies: '@antfu/eslint-config': - specifier: ^2.27.1 - version: 2.27.1(@typescript-eslint/utils@8.2.0(eslint@9.9.1)(typescript@5.5.4))(@vue/compiler-sfc@3.4.38)(eslint@9.9.1)(typescript@5.5.4) + specifier: ^3.2.2 + version: 3.2.2(@typescript-eslint/utils@8.4.0(eslint@9.9.1)(typescript@5.5.4))(@vue/compiler-sfc@3.5.2)(eslint@9.9.1)(typescript@5.5.4) '@quasar/vite-plugin': specifier: ^1.7.0 - version: 1.7.0(@vitejs/plugin-vue@5.1.2(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)))(quasar@2.16.9)(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) + version: 1.7.0(@vitejs/plugin-vue@5.1.3(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0))(vue@3.5.2(typescript@5.5.4)))(quasar@2.16.10)(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0))(vue@3.5.2(typescript@5.5.4)) '@types/dompurify': specifier: ^3.0.5 version: 3.0.5 '@types/node': - specifier: ^22.5.0 - version: 22.5.0 + specifier: ^22.5.4 + version: 22.5.4 axios: - specifier: ^1.7.5 - version: 1.7.5 + specifier: ^1.7.7 + version: 1.7.7 cypress: - specifier: ^13.13.3 - version: 13.13.3 + specifier: ^13.14.2 + version: 13.14.2 eslint: specifier: ^9.9.1 version: 9.9.1 @@ -68,7 +68,7 @@ importers: version: 15.9.0 laravel-vite-plugin: specifier: ^1.0.5 - version: 1.0.5(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8)) + version: 1.0.5(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -76,37 +76,37 @@ importers: specifier: ^3.3.3 version: 3.3.3 sass: - specifier: ^1.77.8 - version: 1.77.8 + specifier: ^1.78.0 + version: 1.78.0 typescript: specifier: ^5.5.4 version: 5.5.4 unplugin-auto-import: specifier: ^0.18.2 - version: 0.18.2(@vueuse/core@11.0.3(vue@3.4.38(typescript@5.5.4)))(rollup@4.21.0) + version: 0.18.2(@vueuse/core@11.0.3(vue@3.5.2(typescript@5.5.4)))(rollup@4.21.2)(webpack-sources@3.2.3) vite: - specifier: ^5.4.2 - version: 5.4.2(@types/node@22.5.0)(sass@1.77.8) + specifier: ^5.4.3 + version: 5.4.3(@types/node@22.5.4)(sass@1.78.0) vue-tsc: - specifier: ^2.0.29 - version: 2.0.29(typescript@5.5.4) + specifier: ^2.1.6 + version: 2.1.6(typescript@5.5.4) packages: - '@antfu/eslint-config@2.27.1': - resolution: {integrity: sha512-SFncnHKvzXEUemgRQpEYUA961C/rgXYr3CpDWr6dduO+4GXRHSbb0PRcNxIESp5vPsIodxh48noP20JzyCT/hg==} + '@antfu/eslint-config@3.2.2': + resolution: {integrity: sha512-GqRcfpBmuE2ATHEDwFJ36/H1IK4Zauwgdg4FjCakzdFV9AEAEBp+nVSDeJzeofIp9Zc/LI+fg+IGAITEXE0zpA==} hasBin: true peerDependencies: '@eslint-react/eslint-plugin': ^1.5.8 '@prettier/plugin-xml': ^3.4.1 '@unocss/eslint-plugin': '>=0.50.0' astro-eslint-parser: ^1.0.2 - eslint: '>=8.40.0' + eslint: ^9.5.0 eslint-plugin-astro: ^1.2.0 eslint-plugin-format: '>=0.1.0' eslint-plugin-react-hooks: ^4.6.0 eslint-plugin-react-refresh: ^0.4.4 - eslint-plugin-solid: ^0.13.2 + eslint-plugin-solid: ^0.14.3 eslint-plugin-svelte: '>=2.35.1' prettier-plugin-astro: ^0.13.0 prettier-plugin-slidev: ^1.0.5 @@ -139,8 +139,8 @@ packages: svelte-eslint-parser: optional: true - '@antfu/install-pkg@0.4.0': - resolution: {integrity: sha512-vI73C0pFA9L+5v+djh0WSLXb8qYQGH5fX8nczaFe1OTI/8Fh03JS1Mov1V7urb6P3A2cBlBqZNjJIKv54+zVRw==} + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} '@antfu/utils@0.7.10': resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} @@ -161,13 +161,13 @@ packages: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.4': - resolution: {integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==} + '@babel/parser@7.25.6': + resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/types@7.25.4': - resolution: {integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==} + '@babel/types@7.25.6': + resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} '@clack/core@0.3.4': @@ -351,6 +351,10 @@ packages: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/compat@1.1.1': + resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.18.0': resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -454,111 +458,88 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.21.0': - resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} + '@rollup/rollup-android-arm-eabi@4.21.2': + resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.21.0': - resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} + '@rollup/rollup-android-arm64@4.21.2': + resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.21.0': - resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} + '@rollup/rollup-darwin-arm64@4.21.2': + resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.21.0': - resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} + '@rollup/rollup-darwin-x64@4.21.2': + resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': - resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.21.0': - resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} + '@rollup/rollup-linux-arm-musleabihf@4.21.2': + resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.21.0': - resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} + '@rollup/rollup-linux-arm64-gnu@4.21.2': + resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.21.0': - resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} + '@rollup/rollup-linux-arm64-musl@4.21.2': + resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': - resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.21.0': - resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} + '@rollup/rollup-linux-riscv64-gnu@4.21.2': + resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.21.0': - resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} + '@rollup/rollup-linux-s390x-gnu@4.21.2': + resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.21.0': - resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} + '@rollup/rollup-linux-x64-gnu@4.21.2': + resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.21.0': - resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} + '@rollup/rollup-linux-x64-musl@4.21.2': + resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.21.0': - resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} + '@rollup/rollup-win32-arm64-msvc@4.21.2': + resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.21.0': - resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} + '@rollup/rollup-win32-ia32-msvc@4.21.2': + resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.21.0': - resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} + '@rollup/rollup-win32-x64-msvc@4.21.2': + resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} cpu: [x64] os: [win32] - '@stylistic/eslint-plugin-js@2.6.4': - resolution: {integrity: sha512-kx1hS3xTvzxZLdr/DCU/dLBE++vcP97sHeEFX2QXhk1Ipa4K1rzPOLw1HCbf4mU3s+7kHP5eYpDe+QteEOFLug==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin-jsx@2.6.4': - resolution: {integrity: sha512-bIvVhdtjmyu3S10V7QRIuawtCZSq9gRmzAX23ucjCOdSFzEwlq+di0IM0riBAvvQerrJL4SM6G3xgyPs8BSXIA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin-plus@2.6.4': - resolution: {integrity: sha512-EuRvtxhf7Hv8OoMIePulP/6rBJIgPTu1l5GAm1780WcF1Cl8bOZXIn84Pdac5pNv6lVlzCOFm8MD3VE+2YROuA==} - peerDependencies: - eslint: '*' - - '@stylistic/eslint-plugin-ts@2.6.4': - resolution: {integrity: sha512-yxL8Hj6WkObw1jfiLpBzKy5yfxY6vwlwO4miq34ySErUjUecPV5jxfVbOe4q1QDPKemQGPq93v7sAQS5PzM8lA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin@2.6.4': - resolution: {integrity: sha512-euUGnjzH8EOqEYTGk9dB2OBINp0FX1nuO7/k4fO82zNRBIKZgJoDwTLM4Ce+Om6W1Qmh1PrZjCr4jh4tMEXGPQ==} + '@stylistic/eslint-plugin@2.7.2': + resolution: {integrity: sha512-3DVLU5HEuk2pQoBmXJlzvrxbKNpu2mJ0SRqz5O/CJjyNCr12ZiPcYMEtuArTyPOk5i7bsAU44nywh1rGfe3gKQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -581,8 +562,8 @@ packages: '@types/mdast@3.0.15': resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - '@types/node@22.5.0': - resolution: {integrity: sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==} + '@types/node@22.5.4': + resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -605,8 +586,8 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.2.0': - resolution: {integrity: sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==} + '@typescript-eslint/eslint-plugin@8.4.0': + resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -616,8 +597,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.2.0': - resolution: {integrity: sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==} + '@typescript-eslint/parser@8.4.0': + resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -626,16 +607,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/scope-manager@8.2.0': - resolution: {integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==} + '@typescript-eslint/scope-manager@8.4.0': + resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.2.0': - resolution: {integrity: sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==} + '@typescript-eslint/type-utils@8.4.0': + resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -647,21 +624,12 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.2.0': - resolution: {integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==} + '@typescript-eslint/types@8.4.0': + resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@8.2.0': - resolution: {integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==} + '@typescript-eslint/typescript-estree@8.4.0': + resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -669,35 +637,25 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.18.0': - resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/utils@8.2.0': - resolution: {integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==} + '@typescript-eslint/utils@8.4.0': + resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/visitor-keys@8.2.0': - resolution: {integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==} + '@typescript-eslint/visitor-keys@8.4.0': + resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@vitejs/plugin-vue@5.1.2': - resolution: {integrity: sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==} + '@vitejs/plugin-vue@5.1.3': + resolution: {integrity: sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 - '@vitest/eslint-plugin@1.0.4': - resolution: {integrity: sha512-8w8ozemYJul5hQE0X6XJ5kFiOf9VrnJBVYIDa54uAcU4cr/X/iVAzvWNcggS+f8kB+NnaQQPsi5HjkfnF6wdEg==} + '@vitest/eslint-plugin@1.1.0': + resolution: {integrity: sha512-Ur80Y27Wbw8gFHJ3cv6vypcjXmrx6QHfw+q435h6Q2L+tf+h4Xf5pJTCL4YU/Jps9EVeggQxS85OcUZU7sdXRw==} peerDependencies: '@typescript-eslint/utils': '>= 8.0' eslint: '>= 8.57.0' @@ -711,26 +669,26 @@ packages: vitest: optional: true - '@volar/language-core@2.4.0': - resolution: {integrity: sha512-FTla+khE+sYK0qJP+6hwPAAUwiNHVMph4RUXpxf/FIPKUP61NFrVZorml4mjFShnueR2y9/j8/vnh09YwVdH7A==} + '@volar/language-core@2.4.2': + resolution: {integrity: sha512-sONt5RLvLL1SlBdhyUSthZzuKePbJ7DwFFB9zT0eyWpDl+v7GXGh/RkPxxWaR22bIhYtTzp4Ka1MWatl/53Riw==} - '@volar/source-map@2.4.0': - resolution: {integrity: sha512-2ceY8/NEZvN6F44TXw2qRP6AQsvCYhV2bxaBPWxV9HqIfkbRydSksTFObCF1DBDNBfKiZTS8G/4vqV6cvjdOIQ==} + '@volar/source-map@2.4.2': + resolution: {integrity: sha512-qiGfGgeZ5DEarPX3S+HcFktFCjfDrFPCXKeXNbrlB7v8cvtPRm8YVwoXOdGG1NhaL5rMlv5BZPVQyu4EdWWIvA==} - '@volar/typescript@2.4.0': - resolution: {integrity: sha512-9zx3lQWgHmVd+JRRAHUSRiEhe4TlzL7U7e6ulWXOxHH/WNYxzKwCvZD7WYWEZFdw4dHfTD9vUR0yPQO6GilCaQ==} + '@volar/typescript@2.4.2': + resolution: {integrity: sha512-m2uZduhaHO1SZuagi30OsjI/X1gwkaEAC+9wT/nCNAtJ5FqXEkKvUncHmffG7ESDZPlFFUBK4vJ0D9Hfr+f2EA==} - '@vue/compiler-core@3.4.38': - resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} + '@vue/compiler-core@3.5.2': + resolution: {integrity: sha512-1aP7FL2GkqfcskHWGg3lfWQpJnrmewKc+rNJ/hq9WNaAw4BEyJ5QbNChnqmbw+tJ409zdy1XWmUeXXMrCKJcQQ==} - '@vue/compiler-dom@3.4.38': - resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} + '@vue/compiler-dom@3.5.2': + resolution: {integrity: sha512-QY4DpT8ZIUyu/ZA5gErpSEDocGNEbHmpkZIC/d5jbp/rUF0iOJNigAy3HCCKc0PMMhDlrcysO3ufQ6Ab4MpEcQ==} - '@vue/compiler-sfc@3.4.38': - resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} + '@vue/compiler-sfc@3.5.2': + resolution: {integrity: sha512-vErEtybSU290LbMW+ChYllI9tNJEdTW1oU+8cZWINZyjlWeTSa9YqDl4/pZJSnozOI+HmcaC1Vz2eFKmXNSXZA==} - '@vue/compiler-ssr@3.4.38': - resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} + '@vue/compiler-ssr@3.5.2': + resolution: {integrity: sha512-vMtA4tQK/AM3UAYJsmouQzQpgG+h9TKiD5BV+Zt+ZyAMdicxzSEEFGWf/CykRnDpqj9fMfIHPhOezJVNxiXe2A==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -738,30 +696,30 @@ packages: '@vue/devtools-api@6.6.3': resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} - '@vue/language-core@2.0.29': - resolution: {integrity: sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==} + '@vue/language-core@2.1.6': + resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - '@vue/reactivity@3.4.38': - resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} + '@vue/reactivity@3.5.2': + resolution: {integrity: sha512-lJwWL5bNht+2vIwU/+lnGdH+FKFxzz6z8WkoIJityPLiasWU+HDUvEsC7gm3JFwbTf7Kk+Nr9kJMaPy0HXwwxQ==} - '@vue/runtime-core@3.4.38': - resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} + '@vue/runtime-core@3.5.2': + resolution: {integrity: sha512-oU+i9sJjGEMfEhlrJ7SZv7CdSIgUNyBHnWHa0SqU2RF48V3/ATajzpWq1/DkiVJ1mtx+cQFAMKs8s/3cB3YlLQ==} - '@vue/runtime-dom@3.4.38': - resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} + '@vue/runtime-dom@3.5.2': + resolution: {integrity: sha512-2qvysn+oR0QnFKaWZxQ90iVpWAK/WPpYmODHCv24IDXjsBrdHbjLBj9s6YBdPaMuQhs0LNsmhsgZYZBkszLg6g==} - '@vue/server-renderer@3.4.38': - resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} + '@vue/server-renderer@3.5.2': + resolution: {integrity: sha512-3POhYCA8KfbmuDuUiNbMXnpdh9pwE4SvAqo7VvACjklLkf3AaMkY3TvV7APeEa/WQezrnL+E4X2ASpJsKeS4cQ==} peerDependencies: - vue: 3.4.38 + vue: 3.5.2 - '@vue/shared@3.4.38': - resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} + '@vue/shared@3.5.2': + resolution: {integrity: sha512-Ce89WNFBzcDca/AgFTxgX4/K4iAyF7oFIp8Z5aBbFBNbtpwnQr+5pZOoHndxnjE2h+YFcipVMzs9UL11XB6dwA==} '@vueuse/core@11.0.3': resolution: {integrity: sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw==} @@ -823,10 +781,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} @@ -851,11 +805,11 @@ packages: aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} - aws4@1.13.1: - resolution: {integrity: sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==} + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} - axios@1.7.5: - resolution: {integrity: sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -916,8 +870,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001653: - resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==} + caniuse-lite@1.0.30001657: + resolution: {integrity: sha512-DPbJAlP8/BAXy3IgiWmZKItubb3TYGP0WscQQlVGIfT4s/YlFYVuJgyOsQNP7rJRChx/qdMeLJQJP0Sgg2yjNA==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -1038,8 +992,8 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - cypress@13.13.3: - resolution: {integrity: sha512-hUxPrdbJXhUOTzuML+y9Av7CKoYznbD83pt8g3klgpioEha0emfx4WNIuVRx0C76r0xV2MIwAW9WYiXfVJYFQw==} + cypress@13.14.2: + resolution: {integrity: sha512-lsiQrN17vHMB2fnvxIrKLAjOr9bPwsNbPZNrWf99s4u+DVmCY6U+w7O3GGG9FvP4EUVYaDu+guWeNLiUzBrqvA==} engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} hasBin: true @@ -1081,10 +1035,6 @@ packages: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -1095,8 +1045,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.13: - resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} + electron-to-chromium@1.5.14: + resolution: {integrity: sha512-bEfPECb3fJ15eaDnu9LEJ2vPGD6W1vt7vZleSVyFhYuMIKm3vz/g9lt7IvEzgdwj58RjbPKUF2rXTCN/UW47tQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1135,8 +1085,8 @@ packages: engines: {node: '>=12'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-string-regexp@1.0.5: @@ -1162,8 +1112,10 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-flat-gitignore@0.1.8: - resolution: {integrity: sha512-OEUbS2wzzYtUfshjOqzFo4Bl4lHykXUdM08TCnYNl7ki+niW4Q1R0j0FDFDr0vjVsI5ZFOz5LvluxOP+Ew+dYw==} + eslint-config-flat-gitignore@0.3.0: + resolution: {integrity: sha512-0Ndxo4qGhcewjTzw52TK06Mc00aDtHNTdeeW2JfONgDcLkRO/n/BteMRzNVpLQYxdCC/dFEilfM9fjjpGIJ9Og==} + peerDependencies: + eslint: ^9.5.0 eslint-flat-config-utils@0.3.1: resolution: {integrity: sha512-eFT3EaoJN1hlN97xw4FIEX//h0TiFUobgl2l5uLkIwhVN9ahGq95Pbs+i1/B5UACA78LO3rco3JzuvxLdTUOPA==} @@ -1176,8 +1128,8 @@ packages: peerDependencies: eslint: '*' - eslint-plugin-antfu@2.3.6: - resolution: {integrity: sha512-31VwbU1Yd4BFNUUPQEazKyP79f3c+ohJtq5iZIuw38JjkRQdQAcF/31Kjr0DOKZXVDkeeNPrttKidrr3xhnhOA==} + eslint-plugin-antfu@2.5.0: + resolution: {integrity: sha512-YLIWE22/ERe6Jpqt6bJdvALw8SWvf4x2DQjvVpRvAv8LrdHbwWckkoueAf8oQFgSOLsL1R/axa+exjpubPp0fw==} peerDependencies: eslint: '*' @@ -1192,11 +1144,11 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-x@3.1.0: - resolution: {integrity: sha512-/UbPA+bYY7nIxcjL3kpcDY3UNdoLHFhyBFzHox2M0ypcUoueTn6woZUUmzzi5et/dXChksasYYFeKE2wshOrhg==} - engines: {node: '>=16'} + eslint-plugin-import-x@4.2.1: + resolution: {integrity: sha512-WWi2GedccIJa0zXxx3WDnTgouGQTtdYK1nhXMwywbqqAgB0Ov+p1pYBsWh3VaB0bvBOwLse6OfVII7jZD9xo5Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 || ^9.0.0-0 + eslint: ^8.57.0 || ^9.0.0 eslint-plugin-jsdoc@50.2.2: resolution: {integrity: sha512-i0ZMWA199DG7sjxlzXn5AeYZxpRfMJjDPUl7lL9eJJX8TPRoIaxJU4ys/joP5faM5AXE1eqW/dslCj3uj4Nqpg==} @@ -1226,8 +1178,8 @@ packages: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@3.2.0: - resolution: {integrity: sha512-cX1aztMbSfRWPKJH8CD+gadrbkS+RNH1OGWuNGws8J6rHzYYhawxWTU/yzMYjq2IRJCpBCfhgfa7BHRXQYxLHA==} + eslint-plugin-perfectionist@3.4.0: + resolution: {integrity: sha512-vXyd1sFg3H/7aKgBUie62bA6E0EN3Dh0LCD5r4vR/IYtTljxOnyckI1AV0Arw4eYjC/W9T1X04Pl2mdLsdWtMA==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: astro-eslint-parser: ^1.0.2 @@ -1276,8 +1228,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true - eslint-plugin-vue@9.27.0: - resolution: {integrity: sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==} + eslint-plugin-vue@9.28.0: + resolution: {integrity: sha512-ShrihdjIhOTxs+MfWun6oJWuk+g/LAhN+CiuOl/jjkG3l0F2AuK5NMTaWqyvBgkFtpYmyks6P4603mLmhNJW8g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -1428,8 +1380,8 @@ packages: flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + follow-redirects@1.15.8: + resolution: {integrity: sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -1472,8 +1424,8 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} - get-tsconfig@4.7.6: - resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + get-tsconfig@4.8.0: + resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} getos@3.2.1: resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} @@ -1505,10 +1457,6 @@ packages: resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} engines: {node: '>=18'} - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -1816,10 +1764,6 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} - engines: {node: 20 || >=22} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -1912,8 +1856,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-manager-detector@0.1.2: - resolution: {integrity: sha512-iePyefLTOm2gEzbaZKSW+eBMjg+UYsQvUKxmvGXAQ987K16efBg10MxIjZs08iyX+DY2/owKY9DIdu193kX33w==} + package-manager-detector@0.2.0: + resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -1948,10 +1892,6 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -1961,8 +1901,8 @@ packages: performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -1999,8 +1939,8 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -2040,8 +1980,8 @@ packages: resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} engines: {node: '>=0.6'} - quasar@2.16.9: - resolution: {integrity: sha512-cAbt5l8hbxf7GQSwtYQ/3TlrbA8cOfjXXbFvikx4amMQEFKVB/vi/PfQMjbdRVcK/zEB6hu1y5OjS/9NlpJc/Q==} + quasar@2.16.10: + resolution: {integrity: sha512-n4fPFabxtgUO2gsYXpg6WYkx0eTDi+CGyTmbI+HqiYQlGqAIa8qjuOIuKzX/wrkg5vKx4PvnCthTImOYHGT8Hg==} engines: {node: '>= 10.18.1', npm: '>= 6.13.4', yarn: '>= 1.21.1'} querystringify@2.2.0: @@ -2114,8 +2054,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.21.0: - resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} + rollup@4.21.2: + resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2131,8 +2071,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.8: - resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} + sass@1.78.0: + resolution: {integrity: sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -2177,10 +2117,6 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - slashes@3.0.12: resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} @@ -2283,8 +2219,8 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - tinyexec@0.2.0: - resolution: {integrity: sha512-au8dwv4xKSDR+Fw52csDo3wcDztPdne2oM1o/7LFro4h6bdFmvyUAeAfX40pwDtzHgRFqz1XWaUqgKS2G83/ig==} + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} tmp@0.2.3: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} @@ -2378,9 +2314,14 @@ packages: '@vueuse/core': optional: true - unplugin@1.12.2: - resolution: {integrity: sha512-bEqQxeC7rxtxPZ3M5V4Djcc4lQqKPgGe3mAWZvxcSmX5jhGxll19NliaRzQSQPrk4xJZSGniK3puLWpRuZN7VQ==} + unplugin@1.13.1: + resolution: {integrity: sha512-6Kq1iSSwg7KyjcThRUks9LuqDAKvtnioxbL9iEtB9ctTyBA5OmrB8gZd/d225VJu1w3UpUsKV7eGrvf59J7+VA==} engines: {node: '>=14.0.0'} + peerDependencies: + webpack-sources: ^3 + peerDependenciesMeta: + webpack-sources: + optional: true untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} @@ -2415,8 +2356,8 @@ packages: vite-plugin-full-reload@1.2.0: resolution: {integrity: sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==} - vite@5.4.2: - resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} + vite@5.4.3: + resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -2477,14 +2418,14 @@ packages: peerDependencies: vue: ^3.2.0 - vue-tsc@2.0.29: - resolution: {integrity: sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==} + vue-tsc@2.1.6: + resolution: {integrity: sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==} hasBin: true peerDependencies: typescript: '>=5.0.0' - vue@3.4.38: - resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} + vue@3.5.2: + resolution: {integrity: sha512-w1YB4lAwC9ByH6AnFY0JvZF+y70Usul9jDfKIKtM5xA97q/JPS5R7mqq0fhA6D2PQxYPZdgb5jzFKLyOga5pnw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -2530,8 +2471,8 @@ packages: resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} engines: {node: ^14.17.0 || >=16.0.0} - yaml@2.5.0: - resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} hasBin: true @@ -2552,40 +2493,40 @@ packages: snapshots: - '@antfu/eslint-config@2.27.1(@typescript-eslint/utils@8.2.0(eslint@9.9.1)(typescript@5.5.4))(@vue/compiler-sfc@3.4.38)(eslint@9.9.1)(typescript@5.5.4)': + '@antfu/eslint-config@3.2.2(@typescript-eslint/utils@8.4.0(eslint@9.9.1)(typescript@5.5.4))(@vue/compiler-sfc@3.5.2)(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@antfu/install-pkg': 0.4.0 + '@antfu/install-pkg': 0.4.1 '@clack/prompts': 0.7.0 '@eslint-community/eslint-plugin-eslint-comments': 4.4.0(eslint@9.9.1) - '@stylistic/eslint-plugin': 2.6.4(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@vitest/eslint-plugin': 1.0.4(@typescript-eslint/utils@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + '@stylistic/eslint-plugin': 2.7.2(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/parser': 8.4.0(eslint@9.9.1)(typescript@5.5.4) + '@vitest/eslint-plugin': 1.1.0(@typescript-eslint/utils@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) eslint: 9.9.1 - eslint-config-flat-gitignore: 0.1.8 + eslint-config-flat-gitignore: 0.3.0(eslint@9.9.1) eslint-flat-config-utils: 0.3.1 eslint-merge-processors: 0.1.0(eslint@9.9.1) - eslint-plugin-antfu: 2.3.6(eslint@9.9.1) + eslint-plugin-antfu: 2.5.0(eslint@9.9.1) eslint-plugin-command: 0.2.3(eslint@9.9.1) - eslint-plugin-import-x: 3.1.0(eslint@9.9.1)(typescript@5.5.4) + eslint-plugin-import-x: 4.2.1(eslint@9.9.1)(typescript@5.5.4) eslint-plugin-jsdoc: 50.2.2(eslint@9.9.1) eslint-plugin-jsonc: 2.16.0(eslint@9.9.1) eslint-plugin-markdown: 5.1.0(eslint@9.9.1) eslint-plugin-n: 17.10.2(eslint@9.9.1) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 3.2.0(eslint@9.9.1)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.1)) + eslint-plugin-perfectionist: 3.4.0(eslint@9.9.1)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.1)) eslint-plugin-regexp: 2.6.0(eslint@9.9.1) eslint-plugin-toml: 0.11.1(eslint@9.9.1) eslint-plugin-unicorn: 55.0.0(eslint@9.9.1) - eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1) - eslint-plugin-vue: 9.27.0(eslint@9.9.1) + eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1) + eslint-plugin-vue: 9.28.0(eslint@9.9.1) eslint-plugin-yml: 1.14.0(eslint@9.9.1) - eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.38)(eslint@9.9.1) + eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.5.2)(eslint@9.9.1) globals: 15.9.0 jsonc-eslint-parser: 2.4.0 local-pkg: 0.5.0 parse-gitignore: 2.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 toml-eslint-parser: 0.10.0 vue-eslint-parser: 9.4.3(eslint@9.9.1) yaml-eslint-parser: 1.2.3 @@ -2598,17 +2539,17 @@ snapshots: - typescript - vitest - '@antfu/install-pkg@0.4.0': + '@antfu/install-pkg@0.4.1': dependencies: - package-manager-detector: 0.1.2 - tinyexec: 0.2.0 + package-manager-detector: 0.2.0 + tinyexec: 0.3.0 '@antfu/utils@0.7.10': {} '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.1.0 '@babel/helper-string-parser@7.24.8': {} @@ -2619,13 +2560,13 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 - '@babel/parser@7.25.4': + '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.25.4 + '@babel/types': 7.25.6 - '@babel/types@7.25.4': + '@babel/types@7.25.6': dependencies: '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 @@ -2633,13 +2574,13 @@ snapshots: '@clack/core@0.3.4': dependencies: - picocolors: 1.0.1 + picocolors: 1.1.0 sisteransi: 1.0.5 '@clack/prompts@0.7.0': dependencies: '@clack/core': 0.3.4 - picocolors: 1.0.1 + picocolors: 1.1.0 sisteransi: 1.0.5 '@colors/colors@1.5.0': @@ -2648,7 +2589,7 @@ snapshots: '@cypress/request@3.0.1': dependencies: aws-sign2: 0.7.0 - aws4: 1.13.1 + aws4: 1.13.2 caseless: 0.12.0 combined-stream: 1.0.8 extend: 3.0.2 @@ -2770,6 +2711,8 @@ snapshots: '@eslint-community/regexpp@4.11.0': {} + '@eslint/compat@1.1.1': {} + '@eslint/config-array@0.18.0': dependencies: '@eslint/object-schema': 2.1.4 @@ -2800,7 +2743,7 @@ snapshots: '@humanwhocodes/retry@0.3.0': {} - '@intlify/bundle-utils@8.0.0(vue-i18n@9.14.0(vue@3.4.38(typescript@5.5.4)))': + '@intlify/bundle-utils@8.0.0(vue-i18n@9.14.0(vue@3.5.2(typescript@5.5.4)))': dependencies: '@intlify/message-compiler': 9.14.0 '@intlify/shared': 9.14.0 @@ -2812,7 +2755,7 @@ snapshots: source-map-js: 1.2.0 yaml-eslint-parser: 1.2.3 optionalDependencies: - vue-i18n: 9.14.0(vue@3.4.38(typescript@5.5.4)) + vue-i18n: 9.14.0(vue@3.5.2(typescript@5.5.4)) '@intlify/core-base@9.14.0': dependencies: @@ -2826,25 +2769,26 @@ snapshots: '@intlify/shared@9.14.0': {} - '@intlify/unplugin-vue-i18n@4.0.0(rollup@4.21.0)(vue-i18n@9.14.0(vue@3.4.38(typescript@5.5.4)))': + '@intlify/unplugin-vue-i18n@4.0.0(rollup@4.21.2)(vue-i18n@9.14.0(vue@3.5.2(typescript@5.5.4)))(webpack-sources@3.2.3)': dependencies: - '@intlify/bundle-utils': 8.0.0(vue-i18n@9.14.0(vue@3.4.38(typescript@5.5.4))) + '@intlify/bundle-utils': 8.0.0(vue-i18n@9.14.0(vue@3.5.2(typescript@5.5.4))) '@intlify/shared': 9.14.0 - '@rollup/pluginutils': 5.1.0(rollup@4.21.0) - '@vue/compiler-sfc': 3.4.38 + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) + '@vue/compiler-sfc': 3.5.2 debug: 4.3.6(supports-color@8.1.1) fast-glob: 3.3.2 js-yaml: 4.1.0 json5: 2.2.3 pathe: 1.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 source-map-js: 1.2.0 - unplugin: 1.12.2 + unplugin: 1.13.1(webpack-sources@3.2.3) optionalDependencies: - vue-i18n: 9.14.0(vue@3.4.38(typescript@5.5.4)) + vue-i18n: 9.14.0(vue@3.5.2(typescript@5.5.4)) transitivePeerDependencies: - rollup - supports-color + - webpack-sources '@jridgewell/sourcemap-codec@1.5.0': {} @@ -2864,110 +2808,78 @@ snapshots: '@quasar/extras@1.16.12': {} - '@quasar/vite-plugin@1.7.0(@vitejs/plugin-vue@5.1.2(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)))(quasar@2.16.9)(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4))': + '@quasar/vite-plugin@1.7.0(@vitejs/plugin-vue@5.1.3(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0))(vue@3.5.2(typescript@5.5.4)))(quasar@2.16.10)(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0))(vue@3.5.2(typescript@5.5.4))': dependencies: - '@vitejs/plugin-vue': 5.1.2(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4)) - quasar: 2.16.9 - vite: 5.4.2(@types/node@22.5.0)(sass@1.77.8) - vue: 3.4.38(typescript@5.5.4) + '@vitejs/plugin-vue': 5.1.3(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0))(vue@3.5.2(typescript@5.5.4)) + quasar: 2.16.10 + vite: 5.4.3(@types/node@22.5.4)(sass@1.78.0) + vue: 3.5.2(typescript@5.5.4) - '@rollup/pluginutils@5.1.0(rollup@4.21.0)': + '@rollup/pluginutils@5.1.0(rollup@4.21.2)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.21.0 + rollup: 4.21.2 - '@rollup/rollup-android-arm-eabi@4.21.0': + '@rollup/rollup-android-arm-eabi@4.21.2': optional: true - '@rollup/rollup-android-arm64@4.21.0': + '@rollup/rollup-android-arm64@4.21.2': optional: true - '@rollup/rollup-darwin-arm64@4.21.0': + '@rollup/rollup-darwin-arm64@4.21.2': optional: true - '@rollup/rollup-darwin-x64@4.21.0': + '@rollup/rollup-darwin-x64@4.21.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.21.0': + '@rollup/rollup-linux-arm-musleabihf@4.21.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.21.0': + '@rollup/rollup-linux-arm64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.21.0': + '@rollup/rollup-linux-arm64-musl@4.21.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.21.0': + '@rollup/rollup-linux-riscv64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.21.0': + '@rollup/rollup-linux-s390x-gnu@4.21.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.21.0': + '@rollup/rollup-linux-x64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-x64-musl@4.21.0': + '@rollup/rollup-linux-x64-musl@4.21.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.21.0': + '@rollup/rollup-win32-arm64-msvc@4.21.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.21.0': + '@rollup/rollup-win32-ia32-msvc@4.21.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.21.0': + '@rollup/rollup-win32-x64-msvc@4.21.2': optional: true - '@stylistic/eslint-plugin-js@2.6.4(eslint@9.9.1)': + '@stylistic/eslint-plugin@2.7.2(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@types/eslint': 9.6.1 - acorn: 8.12.1 - eslint: 9.9.1 - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 - - '@stylistic/eslint-plugin-jsx@2.6.4(eslint@9.9.1)': - dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1) - '@types/eslint': 9.6.1 + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) eslint: 9.9.1 eslint-visitor-keys: 4.0.0 espree: 10.1.0 estraverse: 5.3.0 picomatch: 4.0.2 - - '@stylistic/eslint-plugin-plus@2.6.4(eslint@9.9.1)': - dependencies: - '@types/eslint': 9.6.1 - eslint: 9.9.1 - - '@stylistic/eslint-plugin-ts@2.6.4(eslint@9.9.1)(typescript@5.5.4)': - dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1) - '@types/eslint': 9.6.1 - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - eslint: 9.9.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@stylistic/eslint-plugin@2.6.4(eslint@9.9.1)(typescript@5.5.4)': - dependencies: - '@stylistic/eslint-plugin-js': 2.6.4(eslint@9.9.1) - '@stylistic/eslint-plugin-jsx': 2.6.4(eslint@9.9.1) - '@stylistic/eslint-plugin-plus': 2.6.4(eslint@9.9.1) - '@stylistic/eslint-plugin-ts': 2.6.4(eslint@9.9.1)(typescript@5.5.4) - '@types/eslint': 9.6.1 - eslint: 9.9.1 transitivePeerDependencies: - supports-color - typescript @@ -2994,7 +2906,7 @@ snapshots: dependencies: '@types/unist': 2.0.11 - '@types/node@22.5.0': + '@types/node@22.5.4': dependencies: undici-types: 6.19.8 @@ -3012,17 +2924,17 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.5.0 + '@types/node': 22.5.4 optional: true - '@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/type-utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/parser': 8.4.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 eslint: 9.9.1 graphemer: 1.4.0 ignore: 5.3.2 @@ -3033,12 +2945,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 debug: 4.3.6(supports-color@8.1.1) eslint: 9.9.1 optionalDependencies: @@ -3046,20 +2958,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - - '@typescript-eslint/scope-manager@8.2.0': + '@typescript-eslint/scope-manager@8.4.0': dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/visitor-keys': 8.4.0 - '@typescript-eslint/type-utils@8.2.0(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.4.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) debug: 4.3.6(supports-color@8.1.1) ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -3070,29 +2977,14 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.2.0': {} + '@typescript-eslint/types@8.4.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/visitor-keys': 8.4.0 debug: 4.3.6(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.2.0(typescript@5.5.4)': - dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/visitor-keys': 8.2.0 - debug: 4.3.6(supports-color@8.1.1) - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 @@ -3102,91 +2994,75 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.18.0(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/utils@8.4.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) eslint: 9.9.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.2.0(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/visitor-keys@8.4.0': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - eslint: 9.9.1 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@8.2.0': - dependencies: - '@typescript-eslint/types': 8.2.0 + '@typescript-eslint/types': 8.4.0 eslint-visitor-keys: 3.4.3 - '@vitejs/plugin-vue@5.1.2(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8))(vue@3.4.38(typescript@5.5.4))': + '@vitejs/plugin-vue@5.1.3(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0))(vue@3.5.2(typescript@5.5.4))': dependencies: - vite: 5.4.2(@types/node@22.5.0)(sass@1.77.8) - vue: 3.4.38(typescript@5.5.4) + vite: 5.4.3(@types/node@22.5.4)(sass@1.78.0) + vue: 3.5.2(typescript@5.5.4) - '@vitest/eslint-plugin@1.0.4(@typescript-eslint/utils@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': + '@vitest/eslint-plugin@1.1.0(@typescript-eslint/utils@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': dependencies: eslint: 9.9.1 optionalDependencies: - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) typescript: 5.5.4 - '@volar/language-core@2.4.0': + '@volar/language-core@2.4.2': dependencies: - '@volar/source-map': 2.4.0 + '@volar/source-map': 2.4.2 - '@volar/source-map@2.4.0': {} + '@volar/source-map@2.4.2': {} - '@volar/typescript@2.4.0': + '@volar/typescript@2.4.2': dependencies: - '@volar/language-core': 2.4.0 + '@volar/language-core': 2.4.2 path-browserify: 1.0.1 vscode-uri: 3.0.8 - '@vue/compiler-core@3.4.38': + '@vue/compiler-core@3.5.2': dependencies: - '@babel/parser': 7.25.4 - '@vue/shared': 3.4.38 + '@babel/parser': 7.25.6 + '@vue/shared': 3.5.2 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.38': + '@vue/compiler-dom@3.5.2': dependencies: - '@vue/compiler-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.2 + '@vue/shared': 3.5.2 - '@vue/compiler-sfc@3.4.38': + '@vue/compiler-sfc@3.5.2': dependencies: - '@babel/parser': 7.25.4 - '@vue/compiler-core': 3.4.38 - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 + '@babel/parser': 7.25.6 + '@vue/compiler-core': 3.5.2 + '@vue/compiler-dom': 3.5.2 + '@vue/compiler-ssr': 3.5.2 + '@vue/shared': 3.5.2 estree-walker: 2.0.2 magic-string: 0.30.11 - postcss: 8.4.41 + postcss: 8.4.45 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.38': + '@vue/compiler-ssr@3.5.2': dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.2 + '@vue/shared': 3.5.2 '@vue/compiler-vue2@2.7.16': dependencies: @@ -3195,12 +3071,12 @@ snapshots: '@vue/devtools-api@6.6.3': {} - '@vue/language-core@2.0.29(typescript@5.5.4)': + '@vue/language-core@2.1.6(typescript@5.5.4)': dependencies: - '@volar/language-core': 2.4.0 - '@vue/compiler-dom': 3.4.38 + '@volar/language-core': 2.4.2 + '@vue/compiler-dom': 3.5.2 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.2 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.4.1 @@ -3208,45 +3084,45 @@ snapshots: optionalDependencies: typescript: 5.5.4 - '@vue/reactivity@3.4.38': + '@vue/reactivity@3.5.2': dependencies: - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.2 - '@vue/runtime-core@3.4.38': + '@vue/runtime-core@3.5.2': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.2 + '@vue/shared': 3.5.2 - '@vue/runtime-dom@3.4.38': + '@vue/runtime-dom@3.5.2': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/runtime-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.2 + '@vue/runtime-core': 3.5.2 + '@vue/shared': 3.5.2 csstype: 3.1.3 - '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.4))': + '@vue/server-renderer@3.5.2(vue@3.5.2(typescript@5.5.4))': dependencies: - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 - vue: 3.4.38(typescript@5.5.4) + '@vue/compiler-ssr': 3.5.2 + '@vue/shared': 3.5.2 + vue: 3.5.2(typescript@5.5.4) - '@vue/shared@3.4.38': {} + '@vue/shared@3.5.2': {} - '@vueuse/core@11.0.3(vue@3.4.38(typescript@5.5.4))': + '@vueuse/core@11.0.3(vue@3.5.2(typescript@5.5.4))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 11.0.3 - '@vueuse/shared': 11.0.3(vue@3.4.38(typescript@5.5.4)) - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + '@vueuse/shared': 11.0.3(vue@3.5.2(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) transitivePeerDependencies: - '@vue/composition-api' - vue '@vueuse/metadata@11.0.3': {} - '@vueuse/shared@11.0.3(vue@3.4.38(typescript@5.5.4))': + '@vueuse/shared@11.0.3(vue@3.5.2(typescript@5.5.4))': dependencies: - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -3296,8 +3172,6 @@ snapshots: argparse@2.0.1: {} - array-union@2.1.0: {} - asn1@0.2.6: dependencies: safer-buffer: 2.1.2 @@ -3314,11 +3188,11 @@ snapshots: aws-sign2@0.7.0: {} - aws4@1.13.1: {} + aws4@1.13.2: {} - axios@1.7.5: + axios@1.7.7: dependencies: - follow-redirects: 1.15.6 + follow-redirects: 1.15.8 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -3355,8 +3229,8 @@ snapshots: browserslist@4.23.3: dependencies: - caniuse-lite: 1.0.30001653 - electron-to-chromium: 1.5.13 + caniuse-lite: 1.0.30001657 + electron-to-chromium: 1.5.14 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -3381,7 +3255,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001653: {} + caniuse-lite@1.0.30001657: {} caseless@0.12.0: {} @@ -3493,7 +3367,7 @@ snapshots: csstype@3.1.3: {} - cypress@13.13.3: + cypress@13.14.2: dependencies: '@cypress/request': 3.0.1 '@cypress/xvfb': 1.2.4(supports-color@8.1.1) @@ -3568,10 +3442,6 @@ snapshots: delayed-stream@1.0.0: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -3583,7 +3453,7 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.5.13: {} + electron-to-chromium@1.5.14: {} emoji-regex@8.0.0: {} @@ -3641,7 +3511,7 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - escalade@3.1.2: {} + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -3662,10 +3532,11 @@ snapshots: eslint: 9.9.1 semver: 7.6.3 - eslint-config-flat-gitignore@0.1.8: + eslint-config-flat-gitignore@0.3.0(eslint@9.9.1): dependencies: + '@eslint/compat': 1.1.1 + eslint: 9.9.1 find-up-simple: 1.0.0 - parse-gitignore: 2.0.0 eslint-flat-config-utils@0.3.1: dependencies: @@ -3684,7 +3555,7 @@ snapshots: dependencies: eslint: 9.9.1 - eslint-plugin-antfu@2.3.6(eslint@9.9.1): + eslint-plugin-antfu@2.5.0(eslint@9.9.1): dependencies: '@antfu/utils': 0.7.10 eslint: 9.9.1 @@ -3701,14 +3572,14 @@ snapshots: eslint: 9.9.1 eslint-compat-utils: 0.5.1(eslint@9.9.1) - eslint-plugin-import-x@3.1.0(eslint@9.9.1)(typescript@5.5.4): + eslint-plugin-import-x@4.2.1(eslint@9.9.1)(typescript@5.5.4): dependencies: - '@typescript-eslint/utils': 7.18.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) debug: 4.3.6(supports-color@8.1.1) doctrine: 3.0.0 eslint: 9.9.1 eslint-import-resolver-node: 0.3.9 - get-tsconfig: 4.7.6 + get-tsconfig: 4.8.0 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 @@ -3759,7 +3630,7 @@ snapshots: enhanced-resolve: 5.17.1 eslint: 9.9.1 eslint-plugin-es-x: 7.8.0(eslint@9.9.1) - get-tsconfig: 4.7.6 + get-tsconfig: 4.8.0 globals: 15.9.0 ignore: 5.3.2 minimatch: 9.0.5 @@ -3767,12 +3638,12 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@3.2.0(eslint@9.9.1)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.1)): + eslint-plugin-perfectionist@3.4.0(eslint@9.9.1)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.9.1)): dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) eslint: 9.9.1 - minimatch: 10.0.1 + minimatch: 9.0.5 natural-compare-lite: 1.4.0 optionalDependencies: vue-eslint-parser: 9.4.3(eslint@9.9.1) @@ -3826,13 +3697,13 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1): + eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1): dependencies: eslint: 9.9.1 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) - eslint-plugin-vue@9.27.0(eslint@9.9.1): + eslint-plugin-vue@9.28.0(eslint@9.9.1): dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) eslint: 9.9.1 @@ -3857,9 +3728,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.38)(eslint@9.9.1): + eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.5.2)(eslint@9.9.1): dependencies: - '@vue/compiler-sfc': 3.4.38 + '@vue/compiler-sfc': 3.5.2 eslint: 9.9.1 eslint-scope@7.2.2: @@ -4032,7 +3903,7 @@ snapshots: flatted@3.3.1: {} - follow-redirects@1.15.6: {} + follow-redirects@1.15.8: {} forever-agent@0.6.1: {} @@ -4074,7 +3945,7 @@ snapshots: dependencies: pump: 3.0.0 - get-tsconfig@4.7.6: + get-tsconfig@4.8.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -4106,15 +3977,6 @@ snapshots: globals@15.9.0: {} - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 @@ -4280,10 +4142,10 @@ snapshots: dependencies: json-buffer: 3.0.1 - laravel-vite-plugin@1.0.5(vite@5.4.2(@types/node@22.5.0)(sass@1.77.8)): + laravel-vite-plugin@1.0.5(vite@5.4.3(@types/node@22.5.4)(sass@1.78.0)): dependencies: - picocolors: 1.0.1 - vite: 5.4.2(@types/node@22.5.0)(sass@1.77.8) + picocolors: 1.1.0 + vite: 5.4.3(@types/node@22.5.4)(sass@1.78.0) vite-plugin-full-reload: 1.2.0 lazy-ass@1.6.0: {} @@ -4381,10 +4243,6 @@ snapshots: min-indent@1.0.1: {} - minimatch@10.0.1: - dependencies: - brace-expansion: 2.0.1 - minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -4476,7 +4334,7 @@ snapshots: p-try@2.2.0: {} - package-manager-detector@0.1.2: {} + package-manager-detector@0.2.0: {} parent-module@1.0.1: dependencies: @@ -4513,15 +4371,13 @@ snapshots: path-parse@1.0.7: {} - path-type@4.0.0: {} - pathe@1.1.2: {} pend@1.2.0: {} performance-now@2.1.0: {} - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -4529,11 +4385,11 @@ snapshots: pify@2.3.0: {} - pinia@2.2.2(typescript@5.5.4)(vue@3.4.38(typescript@5.5.4)): + pinia@2.2.2(typescript@5.5.4)(vue@3.5.2(typescript@5.5.4)): dependencies: '@vue/devtools-api': 6.6.3 - vue: 3.4.38(typescript@5.5.4) - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + vue: 3.5.2(typescript@5.5.4) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) optionalDependencies: typescript: 5.5.4 @@ -4550,10 +4406,10 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.4.41: + postcss@8.4.45: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 + picocolors: 1.1.0 source-map-js: 1.2.0 prelude-ls@1.2.1: {} @@ -4581,7 +4437,7 @@ snapshots: dependencies: side-channel: 1.0.6 - quasar@2.16.9: {} + quasar@2.16.10: {} querystringify@2.2.0: {} @@ -4648,26 +4504,26 @@ snapshots: rfdc@1.4.1: {} - rollup@4.21.0: + rollup@4.21.2: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.0 - '@rollup/rollup-android-arm64': 4.21.0 - '@rollup/rollup-darwin-arm64': 4.21.0 - '@rollup/rollup-darwin-x64': 4.21.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 - '@rollup/rollup-linux-arm-musleabihf': 4.21.0 - '@rollup/rollup-linux-arm64-gnu': 4.21.0 - '@rollup/rollup-linux-arm64-musl': 4.21.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 - '@rollup/rollup-linux-riscv64-gnu': 4.21.0 - '@rollup/rollup-linux-s390x-gnu': 4.21.0 - '@rollup/rollup-linux-x64-gnu': 4.21.0 - '@rollup/rollup-linux-x64-musl': 4.21.0 - '@rollup/rollup-win32-arm64-msvc': 4.21.0 - '@rollup/rollup-win32-ia32-msvc': 4.21.0 - '@rollup/rollup-win32-x64-msvc': 4.21.0 + '@rollup/rollup-android-arm-eabi': 4.21.2 + '@rollup/rollup-android-arm64': 4.21.2 + '@rollup/rollup-darwin-arm64': 4.21.2 + '@rollup/rollup-darwin-x64': 4.21.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 + '@rollup/rollup-linux-arm-musleabihf': 4.21.2 + '@rollup/rollup-linux-arm64-gnu': 4.21.2 + '@rollup/rollup-linux-arm64-musl': 4.21.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 + '@rollup/rollup-linux-riscv64-gnu': 4.21.2 + '@rollup/rollup-linux-s390x-gnu': 4.21.2 + '@rollup/rollup-linux-x64-gnu': 4.21.2 + '@rollup/rollup-linux-x64-musl': 4.21.2 + '@rollup/rollup-win32-arm64-msvc': 4.21.2 + '@rollup/rollup-win32-ia32-msvc': 4.21.2 + '@rollup/rollup-win32-x64-msvc': 4.21.2 fsevents: 2.3.3 run-parallel@1.2.0: @@ -4682,7 +4538,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.8: + sass@1.78.0: dependencies: chokidar: 3.6.0 immutable: 4.3.7 @@ -4728,8 +4584,6 @@ snapshots: sisteransi@1.0.5: {} - slash@3.0.0: {} - slashes@3.0.12: {} slice-ansi@3.0.0: @@ -4835,7 +4689,7 @@ snapshots: through@2.3.8: {} - tinyexec@0.2.0: {} + tinyexec@0.3.0: {} tmp@0.2.3: {} @@ -4886,9 +4740,9 @@ snapshots: undici-types@6.19.8: {} - unimport@3.11.1(rollup@4.21.0): + unimport@3.11.1(rollup@4.21.2)(webpack-sources@3.2.3): dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) acorn: 8.12.1 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 @@ -4900,9 +4754,10 @@ snapshots: pkg-types: 1.2.0 scule: 1.3.0 strip-literal: 2.1.0 - unplugin: 1.12.2 + unplugin: 1.13.1(webpack-sources@3.2.3) transitivePeerDependencies: - rollup + - webpack-sources unist-util-stringify-position@2.0.3: dependencies: @@ -4912,35 +4767,36 @@ snapshots: universalify@2.0.1: {} - unplugin-auto-import@0.18.2(@vueuse/core@11.0.3(vue@3.4.38(typescript@5.5.4)))(rollup@4.21.0): + unplugin-auto-import@0.18.2(@vueuse/core@11.0.3(vue@3.5.2(typescript@5.5.4)))(rollup@4.21.2)(webpack-sources@3.2.3): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.0(rollup@4.21.0) + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.11 minimatch: 9.0.5 - unimport: 3.11.1(rollup@4.21.0) - unplugin: 1.12.2 + unimport: 3.11.1(rollup@4.21.2)(webpack-sources@3.2.3) + unplugin: 1.13.1(webpack-sources@3.2.3) optionalDependencies: - '@vueuse/core': 11.0.3(vue@3.4.38(typescript@5.5.4)) + '@vueuse/core': 11.0.3(vue@3.5.2(typescript@5.5.4)) transitivePeerDependencies: - rollup + - webpack-sources - unplugin@1.12.2: + unplugin@1.13.1(webpack-sources@3.2.3): dependencies: acorn: 8.12.1 - chokidar: 3.6.0 - webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.2 + optionalDependencies: + webpack-sources: 3.2.3 untildify@4.0.0: {} update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.0.1 + escalade: 3.2.0 + picocolors: 1.1.0 uri-js@4.4.1: dependencies: @@ -4968,24 +4824,24 @@ snapshots: vite-plugin-full-reload@1.2.0: dependencies: - picocolors: 1.0.1 + picocolors: 1.1.0 picomatch: 2.3.1 - vite@5.4.2(@types/node@22.5.0)(sass@1.77.8): + vite@5.4.3(@types/node@22.5.4)(sass@1.78.0): dependencies: esbuild: 0.21.5 - postcss: 8.4.41 - rollup: 4.21.0 + postcss: 8.4.45 + rollup: 4.21.2 optionalDependencies: - '@types/node': 22.5.0 + '@types/node': 22.5.4 fsevents: 2.3.3 - sass: 1.77.8 + sass: 1.78.0 vscode-uri@3.0.8: {} - vue-demi@0.14.10(vue@3.4.38(typescript@5.5.4)): + vue-demi@0.14.10(vue@3.5.2(typescript@5.5.4)): dependencies: - vue: 3.4.38(typescript@5.5.4) + vue: 3.5.2(typescript@5.5.4) vue-eslint-parser@9.4.3(eslint@9.9.1): dependencies: @@ -5000,36 +4856,37 @@ snapshots: transitivePeerDependencies: - supports-color - vue-i18n@9.14.0(vue@3.4.38(typescript@5.5.4)): + vue-i18n@9.14.0(vue@3.5.2(typescript@5.5.4)): dependencies: '@intlify/core-base': 9.14.0 '@intlify/shared': 9.14.0 '@vue/devtools-api': 6.6.3 - vue: 3.4.38(typescript@5.5.4) + vue: 3.5.2(typescript@5.5.4) - vue-router@4.4.3(vue@3.4.38(typescript@5.5.4)): + vue-router@4.4.3(vue@3.5.2(typescript@5.5.4)): dependencies: '@vue/devtools-api': 6.6.3 - vue: 3.4.38(typescript@5.5.4) + vue: 3.5.2(typescript@5.5.4) - vue-tsc@2.0.29(typescript@5.5.4): + vue-tsc@2.1.6(typescript@5.5.4): dependencies: - '@volar/typescript': 2.4.0 - '@vue/language-core': 2.0.29(typescript@5.5.4) + '@volar/typescript': 2.4.2 + '@vue/language-core': 2.1.6(typescript@5.5.4) semver: 7.6.3 typescript: 5.5.4 - vue@3.4.38(typescript@5.5.4): + vue@3.5.2(typescript@5.5.4): dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-sfc': 3.4.38 - '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.4)) - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.2 + '@vue/compiler-sfc': 3.5.2 + '@vue/runtime-dom': 3.5.2 + '@vue/server-renderer': 3.5.2(vue@3.5.2(typescript@5.5.4)) + '@vue/shared': 3.5.2 optionalDependencies: typescript: 5.5.4 - webpack-sources@3.2.3: {} + webpack-sources@3.2.3: + optional: true webpack-virtual-modules@0.6.2: {} @@ -5061,16 +4918,16 @@ snapshots: dependencies: eslint-visitor-keys: 3.4.3 lodash: 4.17.21 - yaml: 2.5.0 + yaml: 2.5.1 - yaml@2.5.0: {} + yaml@2.5.1: {} yargs-parser@21.1.1: {} yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/resources/src/composables/useLocaleTimeAgo.ts b/resources/src/composables/useLocaleTimeAgo.ts index 83a72464..b45c7024 100644 --- a/resources/src/composables/useLocaleTimeAgo.ts +++ b/resources/src/composables/useLocaleTimeAgo.ts @@ -1,7 +1,8 @@ import type { UseTimeAgoMessages, UseTimeAgoUnitNamesDefault } from '@vueuse/core' +import { i18n } from '@/plugins/i18n' export function useLocaleTimeAgo(date: Date) { - const { t } = useI18n() + const t = i18n.global.t const I18N_MESSAGES: UseTimeAgoMessages = { justNow: t('common.timeAgo.just-now'), diff --git a/resources/src/locales/en.json b/resources/src/locales/en.json index 0ff894b8..5c9de880 100644 --- a/resources/src/locales/en.json +++ b/resources/src/locales/en.json @@ -24,7 +24,9 @@ }, "auth": { "logged-out-successfully": "Logged out successfully", - "redirected": "You've been automatically redirected." + "redirected": "You've been automatically redirected.", + "last-login-never": "This is your first login", + "last-login": "Your last successful login was at {date}" }, "authentication-history-card": { "browser": "Agent", @@ -260,7 +262,8 @@ "protected-a": "Protected A", "unclassified": "Unclassified", "unclassified-tooltip": "This information is unclassified", - "protected-a-tooltip": "This information is Protected A" + "protected-a-tooltip": "This information is Protected A", + "review": "Review" }, "create-author-dialog": { "title": "Create a new author" diff --git a/resources/src/locales/fr.json b/resources/src/locales/fr.json index 5ec1d080..43993a52 100644 --- a/resources/src/locales/fr.json +++ b/resources/src/locales/fr.json @@ -24,7 +24,9 @@ }, "auth": { "logged-out-successfully": "Déconnecté avec succès", - "redirected": "Vous avez été automatiquement redirigé." + "redirected": "Vous avez été automatiquement redirigé.", + "last-login-never": "Ceci est votre première connexion", + "last-login": "Votre dernière connexion réussie remonte au {date}" }, "authentication-history-card": { "browser": "Agent", @@ -260,7 +262,8 @@ "unclassified": "Non classé", "protected-a": "Protégé A", "unclassified-tooltip": "Cette information n'est pas classifiée", - "protected-a-tooltip": "Ces informations sont protégées A" + "protected-a-tooltip": "Ces informations sont protégées A", + "review": "Revoir" }, "create-author-dialog": { "title": "Créer un nouvel auteur" diff --git a/resources/src/models/User/AuthenticatedUser.ts b/resources/src/models/User/AuthenticatedUser.ts index 790b8534..770064b9 100644 --- a/resources/src/models/User/AuthenticatedUser.ts +++ b/resources/src/models/User/AuthenticatedUser.ts @@ -57,6 +57,7 @@ export interface IAuthenticatedUser { new_password_required: boolean author: AuthorResource roles: AuthenticatedUserRoles[] + last_login_at: null | string permissions: AuthenticatedUserPermissions[] } @@ -86,6 +87,8 @@ export class AuthenticatedUser implements IAuthenticatedUser { public author!: AuthorResource public roles!: AuthenticatedUserRoles[] public permissions!: AuthenticatedUserPermissions[] + public sensitivity_label!: SensitivityLabel + public last_login_at!: string | null constructor(user: IAuthenticatedUser) { Object.assign(this, user) @@ -112,6 +115,18 @@ export class AuthenticatedUser implements IAuthenticatedUser { return this.author.data.id } + /** + * Get the user's last login date + */ + get lastLoginAt(): Date | null { + if (this.last_login_at === null) { + return null + } + + const date = new Date(this.last_login_at) + return date + } + /** * Does this user have the given permission? * diff --git a/resources/src/models/User/components/AuthenticationHistoryCard.vue b/resources/src/models/User/components/AuthenticationHistoryCard.vue index a4ed2fa0..69099e86 100644 --- a/resources/src/models/User/components/AuthenticationHistoryCard.vue +++ b/resources/src/models/User/components/AuthenticationHistoryCard.vue @@ -65,12 +65,12 @@ const columns = computed(() => { +import { useLocaleTimeAgo } from '@/composables/useLocaleTimeAgo' + defineProps<{ props: { value: string | null diff --git a/resources/src/models/auth/components/LoginCard.vue b/resources/src/models/auth/components/LoginCard.vue index f3557fe4..e39ae82a 100644 --- a/resources/src/models/auth/components/LoginCard.vue +++ b/resources/src/models/auth/components/LoginCard.vue @@ -6,6 +6,7 @@ import { extractErrorMessages } from '@/api/errors' import PasswordWithToggleInput from '@/components/PasswordWithToggleInput.vue' const authStore = useAuthStore() +const localeStore = useLocaleStore() const router = useRouter() const { t } = useI18n() const $q = useQuasar() @@ -35,11 +36,13 @@ async function login() { }, 500) return } - router.currentRoute.value.query?.redirect - ? router.push( - router.currentRoute.value.query.redirect as string, - ) - : router.push({ name: 'dashboard' }) + if (router.currentRoute.value.query?.redirect) { + router.push(router.currentRoute.value.query.redirect as string) + } + else { + router.push({ name: 'dashboard' }) + } + notifyUserLastLogin() }) .catch((err) => { errorMessage.value = extractErrorMessages(err) @@ -50,6 +53,11 @@ async function login() { loading.value = false } +// verified email section +const verified = ref( + (router.currentRoute.value.query?.verified as string) || '', +) + onMounted(async () => { /** Redirect if user is authenticated, likely got here following an email link */ if (authStore.isAuthenticated) { @@ -76,11 +84,6 @@ onMounted(async () => { } }) -// verified email section -const verified = ref( - (router.currentRoute.value.query?.verified as string) || '', -) - const showVerified = computed(() => { return verified.value === '1' }) @@ -96,6 +99,45 @@ const emailRules = computed(() => [ const passwordRules = computed(() => [ (val: string) => !!val || t('common.validation.password-required'), ]) + +function notifyUserLastLogin() { + const lastLoginAt = authStore.user?.lastLoginAt + if (!lastLoginAt) { + setTimeout(() => { + $q.notify({ + message: t('auth.last-login-never'), + color: 'primary', + }) + }, 500) + return + } + + const date = new Date(lastLoginAt).toLocaleString(`${localeStore.locale}-CA`) + const timeAgo = useLocaleTimeAgo(lastLoginAt) + + const msg = t('auth.last-login', { + date, + }) + + setTimeout(() => { + $q.notify({ + message: msg, + caption: timeAgo.value, + timeout: 15000, + color: 'primary', + progress: true, + actions: [ + { + label: t('common.review'), + color: 'white', + handler: () => { + router.push({ name: 'settings.security' }) + }, + }, + ], + }) + }, 500) +}