From a71ca338106c2f913e233d142a9445a5ff7bd9a6 Mon Sep 17 00:00:00 2001 From: Vincent Auger Date: Fri, 27 Dec 2024 16:30:06 -0400 Subject: [PATCH] Pub workflow (#889) * feat(seeder): add editor and chief editor users to LocalTestDataSeeder * fix(locales): update 'ready-to-marked-published' text for clarity in English and French * refactor: remove duplicate import statement in ManuscriptRecordPage.vue * refactor: clean up imports in CreatePublicationDialog.vue * feat: secondary publishing workflow * chore: bump --- .env.ci | 1 + .env.example | 1 + app/Events/ManuscriptRecordAccepted.php | 33 - app/Events/ManuscriptRecordSubmitted.php | 33 - .../ManuscriptRecordController.php | 20 +- .../ManuscriptRecordMetadataResource.php | 1 + app/Mail/ManuscriptRecordSubmittedToDFO.php | 71 ++ app/Mail/ManuscriptRecordToReviewMail.php | 2 +- app/Mail/ManuscriptWithheldMail.php | 4 +- app/Models/Journal.php | 11 + app/Queries/JournalListQuery.php | 1 + composer.lock | 203 ++--- config/osp.php | 5 + database/factories/AuthorFactory.php | 11 +- database/factories/UserFactory.php | 9 +- database/seeders/LocalTestDataSeeder.php | 19 +- package.json | 10 +- pnpm-lock.yaml | 709 +++++++++--------- resources/src/auto-imports.d.ts | 4 + resources/src/locales/en.json | 23 +- resources/src/locales/fr.json | 20 +- .../Journal/components/JournalSelect.vue | 12 + .../ManuscriptRecord/ManuscriptRecord.ts | 1 + .../components/AcceptedByJournalDialog.vue | 14 +- .../components/SubmitToPubTeamDialog.vue | 81 ++ .../components/SubmittedToJournalDialog.vue | 6 +- .../views/ManuscriptRecordPage.vue | 9 +- .../views/ManuscriptRecordProgressView.vue | 281 ++++--- .../components/CreatePublicationDialog.vue | 2 +- .../Publication/views/PublicationPageView.vue | 35 +- .../views/components/email/regards.blade.php | 2 +- .../manuscript-submitted-to-dfo.blade.php | 37 + ...php => manuscriptRecordToReview.blade.php} | 0 .../ManuscriptRecordSubmittedToDFOTest.php | 28 + .../Mail/ManuscriptWithheldMailTest.php | 10 +- tests/Feature/Models/ManuscriptRecordTest.php | 3 - 36 files changed, 1005 insertions(+), 707 deletions(-) delete mode 100644 app/Events/ManuscriptRecordAccepted.php delete mode 100644 app/Events/ManuscriptRecordSubmitted.php create mode 100644 app/Mail/ManuscriptRecordSubmittedToDFO.php create mode 100644 resources/src/models/ManuscriptRecord/components/SubmitToPubTeamDialog.vue create mode 100644 resources/views/mail/manuscriptRecord/manuscript-submitted-to-dfo.blade.php rename resources/views/mail/manuscriptRecord/{manuscriptRecordSubmitted.blade.php => manuscriptRecordToReview.blade.php} (100%) create mode 100644 tests/Feature/Mail/ManuscriptRecordSubmittedToDFOTest.php diff --git a/.env.ci b/.env.ci index 4dac5143..ef549382 100644 --- a/.env.ci +++ b/.env.ci @@ -6,6 +6,7 @@ APP_URL=http://127.0.0.1:8000/ FRONTEND_URL=http://127.0.0.1:8000/ ALLOWED_REGISTRATION_EMAIL_DOMAINS="example.com" +MANUSCRIPT_SUBMISSION_EMAIL="submissions@example.com" LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null diff --git a/.env.example b/.env.example index 3529d206..8760b561 100644 --- a/.env.example +++ b/.env.example @@ -6,6 +6,7 @@ APP_URL=http://localhost FRONTEND_URL=http://localhost/ ALLOWED_REGISTRATION_EMAIL_DOMAINS=example.com +MANUSCRIPT_SUBMISSION_EMAIL="" LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null diff --git a/app/Events/ManuscriptRecordAccepted.php b/app/Events/ManuscriptRecordAccepted.php deleted file mode 100644 index eefd6113..00000000 --- a/app/Events/ManuscriptRecordAccepted.php +++ /dev/null @@ -1,33 +0,0 @@ -submitted_to_journal_on = $validated['submitted_to_journal_on']; $manuscriptRecord->save(); - ManuscriptRecordSubmitted::dispatch(); - return $this->defaultResource($manuscriptRecord); } @@ -177,6 +175,14 @@ public function accepted(Request $request, ManuscriptRecord $manuscriptRecord): 'journal_id' => 'required|exists:journals,id', ]); + // Ensure the journal selected matches the manuscript record type. + $journal = Journal::find($validated['journal_id']); + if ($manuscriptRecord->type === ManuscriptRecordType::SECONDARY && ! $journal->isDfoSeries()) { + abort(422, 'Secondary MRFs must be published in a DFO series journal.'); + } elseif ($manuscriptRecord->type === ManuscriptRecordType::PRIMARY && $journal->isDfoSeries()) { + abort(422, 'Primary MRFs cannot be published in a DFO series journal.'); + } + $manuscriptRecord->status = ManuscriptRecordStatus::ACCEPTED; // if the submitted to journal date is given, set it. if ($validated['submitted_to_journal_on']) { @@ -186,10 +192,12 @@ public function accepted(Request $request, ManuscriptRecord $manuscriptRecord): $manuscriptRecord->save(); // create the accepted publication - $journal = Journal::findOrFail($validated['journal_id']); CreatePublicationFromManuscript::handle($manuscriptRecord, $journal); - ManuscriptRecordAccepted::dispatch(); + // if the manuscript is a secondary, send an email to the submissions team + if ($manuscriptRecord->type === ManuscriptRecordType::SECONDARY) { + Mail::queue(new ManuscriptRecordSubmittedToDFO($manuscriptRecord)); + } return $this->defaultResource($manuscriptRecord); } diff --git a/app/Http/Resources/ManuscriptRecordMetadataResource.php b/app/Http/Resources/ManuscriptRecordMetadataResource.php index f10d5999..f335c74c 100644 --- a/app/Http/Resources/ManuscriptRecordMetadataResource.php +++ b/app/Http/Resources/ManuscriptRecordMetadataResource.php @@ -23,6 +23,7 @@ public function toArray(Request $request): array 'id' => $this->id, 'ulid' => $this->ulid, 'region_id' => $this->region_id, + 'type' => $this->type, 'reviewed_at' => $this->reviewed_at, ], 'can' => [ diff --git a/app/Mail/ManuscriptRecordSubmittedToDFO.php b/app/Mail/ManuscriptRecordSubmittedToDFO.php new file mode 100644 index 00000000..00ee342a --- /dev/null +++ b/app/Mail/ManuscriptRecordSubmittedToDFO.php @@ -0,0 +1,71 @@ +load('user', 'manuscriptAuthors.author', 'publication'); + $this->publication = $manuscriptRecord->publication; + + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + $to = config('osp.manuscript_submission_email'); + if (empty($to)) { + throw new \Exception('The manuscript submission email address is not set.'); + } + $cc = collect($this->manuscriptRecord->manuscriptAuthors) + ->pluck('author.email') + ->add($this->manuscriptRecord->user->email) + ->filter(fn ($email) => Str::of($email)->endsWith(config('osp.allowed_registration_email_domains'))) + ->unique()->toArray(); + + return new Envelope( + subject: 'Manuscript Submitted - Manuscrit soumis: '.$this->manuscriptRecord->title, + to: [$to], + cc: $cc, + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + markdown: 'mail.manuscriptRecord.manuscript-submitted-to-dfo', + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/app/Mail/ManuscriptRecordToReviewMail.php b/app/Mail/ManuscriptRecordToReviewMail.php index cdb06883..20096623 100644 --- a/app/Mail/ManuscriptRecordToReviewMail.php +++ b/app/Mail/ManuscriptRecordToReviewMail.php @@ -45,6 +45,6 @@ public function build() ->forget($this->user->email) // don't send to the user twice ->toArray()); - return $this->markdown('mail.manuscriptRecord.manuscriptRecordSubmitted'); + return $this->markdown('mail.manuscriptRecord.manuscriptRecordToReview'); } } diff --git a/app/Mail/ManuscriptWithheldMail.php b/app/Mail/ManuscriptWithheldMail.php index 7156f8f1..1c4afd06 100644 --- a/app/Mail/ManuscriptWithheldMail.php +++ b/app/Mail/ManuscriptWithheldMail.php @@ -6,7 +6,7 @@ use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; -use Str; +use Illuminate\Support\Str; class ManuscriptWithheldMail extends Mailable { @@ -44,7 +44,7 @@ public function build() merge($this->reviewUsers->pluck('email'))-> unique()-> filter(fn ($email) => $email !== $this->user->email)-> // don't send to the user twice - filter(fn ($email) => Str::of($email)->contains('@dfo-mpo.gc.ca'))-> // only send to DFO emails + filter(fn ($email) => Str::of($email)->contains(config('osp.allowed_registration_email_domains')))-> // only send to authorized email domains toArray()); return $this->markdown('mail.manuscriptRecord.manuscript-withheld-mail'); diff --git a/app/Models/Journal.php b/app/Models/Journal.php index e16e6c1f..960867fd 100644 --- a/app/Models/Journal.php +++ b/app/Models/Journal.php @@ -46,8 +46,19 @@ public function scopeDfoSeries($query) return $query->where('publisher', Journal::$dfoPublisher); } + /** Create a scope for DFO series */ + public function scopeNotDfoSeries($query) + { + return $query->where('publisher', '!=', Journal::$dfoPublisher); + } + public function publications(): HasMany { return $this->hasMany(Publication::class); } + + public function isDfoSeries(): bool + { + return $this->publisher === Journal::$dfoPublisher; + } } diff --git a/app/Queries/JournalListQuery.php b/app/Queries/JournalListQuery.php index 51a000d6..240f7782 100644 --- a/app/Queries/JournalListQuery.php +++ b/app/Queries/JournalListQuery.php @@ -26,6 +26,7 @@ public function __construct() AllowedFilter::partial('title'), AllowedFilter::custom('search', new MultiColumnFilter('title', 'issn')), AllowedFilter::scope('dfo_series'), + AllowedFilter::scope('not_dfo_series'), ]); } } diff --git a/composer.lock b/composer.lock index e37ccac2..f3e01856 100644 --- a/composer.lock +++ b/composer.lock @@ -229,16 +229,16 @@ }, { "name": "amphp/dns", - "version": "v2.2.0", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/amphp/dns.git", - "reference": "758266b0ea7470e2e42cd098493bc6d6c7100cf7" + "reference": "166c43737cef1b77782c648a9d9ed11ee0c9859f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/dns/zipball/758266b0ea7470e2e42cd098493bc6d6c7100cf7", - "reference": "758266b0ea7470e2e42cd098493bc6d6c7100cf7", + "url": "https://api.github.com/repos/amphp/dns/zipball/166c43737cef1b77782c648a9d9ed11ee0c9859f", + "reference": "166c43737cef1b77782c648a9d9ed11ee0c9859f", "shasum": "" }, "require": { @@ -246,9 +246,10 @@ "amphp/byte-stream": "^2", "amphp/cache": "^2", "amphp/parser": "^1", - "amphp/windows-registry": "^1.0.1", + "amphp/process": "^2", "daverandom/libdns": "^2.0.2", "ext-filter": "*", + "ext-json": "*", "php": ">=8.1", "revolt/event-loop": "^1 || ^0.2" }, @@ -305,7 +306,7 @@ ], "support": { "issues": "https://github.com/amphp/dns/issues", - "source": "https://github.com/amphp/dns/tree/v2.2.0" + "source": "https://github.com/amphp/dns/tree/v2.3.0" }, "funding": [ { @@ -313,20 +314,20 @@ "type": "github" } ], - "time": "2024-06-02T19:54:12+00:00" + "time": "2024-12-21T01:15:34+00:00" }, { "name": "amphp/parallel", - "version": "v2.3.0", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/amphp/parallel.git", - "reference": "9777db1460d1535bc2a843840684fb1205225b87" + "reference": "5113111de02796a782f5d90767455e7391cca190" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/parallel/zipball/9777db1460d1535bc2a843840684fb1205225b87", - "reference": "9777db1460d1535bc2a843840684fb1205225b87", + "url": "https://api.github.com/repos/amphp/parallel/zipball/5113111de02796a782f5d90767455e7391cca190", + "reference": "5113111de02796a782f5d90767455e7391cca190", "shasum": "" }, "require": { @@ -389,7 +390,7 @@ ], "support": { "issues": "https://github.com/amphp/parallel/issues", - "source": "https://github.com/amphp/parallel/tree/v2.3.0" + "source": "https://github.com/amphp/parallel/tree/v2.3.1" }, "funding": [ { @@ -397,7 +398,7 @@ "type": "github" } ], - "time": "2024-09-14T19:16:14+00:00" + "time": "2024-12-21T01:56:09+00:00" }, { "name": "amphp/parser", @@ -813,58 +814,6 @@ ], "time": "2024-08-03T19:31:26+00:00" }, - { - "name": "amphp/windows-registry", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/amphp/windows-registry.git", - "reference": "0d569e8f256cca974e3842b6e78b4e434bf98306" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/amphp/windows-registry/zipball/0d569e8f256cca974e3842b6e78b4e434bf98306", - "reference": "0d569e8f256cca974e3842b6e78b4e434bf98306", - "shasum": "" - }, - "require": { - "amphp/byte-stream": "^2", - "amphp/process": "^2", - "php": ">=8.1" - }, - "require-dev": { - "amphp/php-cs-fixer-config": "^2", - "psalm/phar": "^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Amp\\WindowsRegistry\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Niklas Keller", - "email": "me@kelunik.com" - } - ], - "description": "Windows Registry Reader.", - "support": { - "issues": "https://github.com/amphp/windows-registry/issues", - "source": "https://github.com/amphp/windows-registry/tree/v1.0.1" - }, - "funding": [ - { - "url": "https://github.com/amphp", - "type": "github" - } - ], - "time": "2024-01-30T23:01:51+00:00" - }, { "name": "anourvalar/eloquent-serialize", "version": "1.2.27", @@ -987,16 +936,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.336.2", + "version": "3.336.5", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "954bfdfc048840ca34afe2a2e1cbcff6681989c4" + "reference": "4ba9b84343bf9b6a4de892a9dd0350e2331845b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/954bfdfc048840ca34afe2a2e1cbcff6681989c4", - "reference": "954bfdfc048840ca34afe2a2e1cbcff6681989c4", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4ba9b84343bf9b6a4de892a9dd0350e2331845b1", + "reference": "4ba9b84343bf9b6a4de892a9dd0350e2331845b1", "shasum": "" }, "require": { @@ -1079,9 +1028,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.336.2" + "source": "https://github.com/aws/aws-sdk-php/tree/3.336.5" }, - "time": "2024-12-20T19:05:10+00:00" + "time": "2024-12-27T19:06:57+00:00" }, { "name": "blade-ui-kit/blade-heroicons", @@ -2251,16 +2200,16 @@ }, { "name": "egulias/email-validator", - "version": "4.0.2", + "version": "4.0.3", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + "reference": "b115554301161fa21467629f1e1391c1936de517" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", - "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517", + "reference": "b115554301161fa21467629f1e1391c1936de517", "shasum": "" }, "require": { @@ -2306,7 +2255,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.3" }, "funding": [ { @@ -2314,7 +2263,7 @@ "type": "github" } ], - "time": "2023-10-06T06:47:41+00:00" + "time": "2024-12-27T00:36:43+00:00" }, { "name": "filament/actions", @@ -5335,16 +5284,16 @@ }, { "name": "nesbot/carbon", - "version": "3.8.2", + "version": "3.8.4", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "e1268cdbc486d97ce23fef2c666dc3c6b6de9947" + "reference": "129700ed449b1f02d70272d2ac802357c8c30c58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e1268cdbc486d97ce23fef2c666dc3c6b6de9947", - "reference": "e1268cdbc486d97ce23fef2c666dc3c6b6de9947", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/129700ed449b1f02d70272d2ac802357c8c30c58", + "reference": "129700ed449b1f02d70272d2ac802357c8c30c58", "shasum": "" }, "require": { @@ -5437,7 +5386,7 @@ "type": "tidelift" } ], - "time": "2024-11-07T17:46:48+00:00" + "time": "2024-12-27T09:25:35+00:00" }, { "name": "nette/schema", @@ -7818,16 +7767,16 @@ }, { "name": "spatie/color", - "version": "1.6.2", + "version": "1.6.3", "source": { "type": "git", "url": "https://github.com/spatie/color.git", - "reference": "b4fac074a9e5999dcca12cbfab0f7c73e2684d6d" + "reference": "45c4354ffa7e65f05c502b009834ecac7928daa3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/color/zipball/b4fac074a9e5999dcca12cbfab0f7c73e2684d6d", - "reference": "b4fac074a9e5999dcca12cbfab0f7c73e2684d6d", + "url": "https://api.github.com/repos/spatie/color/zipball/45c4354ffa7e65f05c502b009834ecac7928daa3", + "reference": "45c4354ffa7e65f05c502b009834ecac7928daa3", "shasum": "" }, "require": { @@ -7865,7 +7814,7 @@ ], "support": { "issues": "https://github.com/spatie/color/issues", - "source": "https://github.com/spatie/color/tree/1.6.2" + "source": "https://github.com/spatie/color/tree/1.6.3" }, "funding": [ { @@ -7873,7 +7822,7 @@ "type": "github" } ], - "time": "2024-12-09T16:20:38+00:00" + "time": "2024-12-23T11:00:34+00:00" }, { "name": "spatie/db-dumper", @@ -8906,16 +8855,16 @@ }, { "name": "spatie/laravel-query-builder", - "version": "6.2.2", + "version": "6.3.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-query-builder.git", - "reference": "b25d0218c2cedad3a06f87b49dc5217ab0ba07ee" + "reference": "96746011866fc3c67953557c17b7d017bf5b3e07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/b25d0218c2cedad3a06f87b49dc5217ab0ba07ee", - "reference": "b25d0218c2cedad3a06f87b49dc5217ab0ba07ee", + "url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/96746011866fc3c67953557c17b7d017bf5b3e07", + "reference": "96746011866fc3c67953557c17b7d017bf5b3e07", "shasum": "" }, "require": { @@ -8976,7 +8925,7 @@ "type": "custom" } ], - "time": "2024-12-11T09:53:49+00:00" + "time": "2024-12-23T22:16:11+00:00" }, { "name": "spatie/laravel-ray", @@ -9965,12 +9914,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -10188,12 +10137,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -11857,12 +11806,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -12179,12 +12128,12 @@ }, "type": "library", "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, "branch-alias": { "dev-main": "3.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -12397,31 +12346,33 @@ }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "v2.2.7", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb" + "reference": "0d72ac1c00084279c1816675284073c5a337c20d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb", - "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", - "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" + "php": "^7.4 || ^8.0", + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -12444,9 +12395,9 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0" }, - "time": "2023-12-08T13:03:43+00:00" + "time": "2024-12-21T16:25:41+00:00" }, { "name": "torann/geoip", @@ -12482,16 +12433,16 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - }, "laravel": { - "providers": [ - "Torann\\GeoIP\\GeoIPServiceProvider" - ], "aliases": { "GeoIP": "Torann\\GeoIP\\Facades\\GeoIP" - } + }, + "providers": [ + "Torann\\GeoIP\\GeoIPServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "1.0-dev" } }, "autoload": { diff --git a/config/osp.php b/config/osp.php index 91d3a1ce..042132c2 100644 --- a/config/osp.php +++ b/config/osp.php @@ -7,6 +7,11 @@ */ 'allowed_registration_email_domains' => explode(',', strtolower(env('ALLOWED_REGISTRATION_EMAIL_DOMAINS', 'dfo-mpo.gc.ca'))), + /** + * The email address to send manuscript submissions + */ + 'manuscript_submission_email' => env('MANUSCRIPT_SUBMISSION_EMAIL', null), + /* The default pagination for API requests. This is used by the PaginationLimitTrait to set the default limit for API requests. diff --git a/database/factories/AuthorFactory.php b/database/factories/AuthorFactory.php index 6ecb3782..d142ec33 100644 --- a/database/factories/AuthorFactory.php +++ b/database/factories/AuthorFactory.php @@ -18,7 +18,7 @@ public function definition() { $fistName = $this->faker->firstName(); $lastName = $this->faker->lastName(); - $email = $fistName.'.'.$lastName.'@'.$this->faker->safeEmailDomain(); + $email = $fistName.'.'.$lastName.'@'.$this->faker->domainWord().'.dev'; $hasOrcid = $this->faker->boolean(70); $orcid = $hasOrcid ? 'https://sandbox.orcid.org/'.$this->faker->numerify('####-####-####-####') : null; @@ -34,11 +34,14 @@ public function definition() /** * A factory for an author with a user account */ - public function isFromDFO() + public function isFromAuthorizedDomain() { - return $this->state(function (array $attributes) { + $domains = config('osp.allowed_registration_email_domains'); + $domain = $domains[0]; + + return $this->state(function (array $attributes) use ($domain) { return [ - 'email' => $attributes['first_name'].'.'.$attributes['last_name'].'@dfo-mpo.gc.ca', + 'email' => $attributes['first_name'].'.'.$attributes['last_name'].'@'.$domain, 'organization_id' => 1, ]; }); diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index b7ab1194..bc48c804 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -40,11 +40,14 @@ public function definition() /** * A factory for a user with a DFO email address */ - public function isFromDFO() + public function isFromAuthorizedDomain() { - return $this->state(function (array $attributes) { + $domains = config('osp.allowed_registration_email_domains'); + $domain = $domains[0]; + + return $this->state(function (array $attributes) use ($domain) { return [ - 'email' => $attributes['first_name'].'.'.$attributes['last_name'].'@dfo-mpo.gc.ca', + 'email' => $attributes['first_name'].'.'.$attributes['last_name'].'@'.$domain, ]; }); } diff --git a/database/seeders/LocalTestDataSeeder.php b/database/seeders/LocalTestDataSeeder.php index c732c6ab..b0049929 100644 --- a/database/seeders/LocalTestDataSeeder.php +++ b/database/seeders/LocalTestDataSeeder.php @@ -21,6 +21,21 @@ public function run(): void $this->call([ ExpertisesTableSeeder::class, JournalsTableSeeder::class, + DfoSeriesJournalSeeder::class, + ]); + + // create an editor user + \App\Models\User::factory()->editor()->create([ + 'first_name' => 'Editor', + 'last_name' => 'User', + 'email' => 'editor@test.local', + ]); + + // create an chief editor user + \App\Models\User::factory()->chiefEditor()->create([ + 'first_name' => 'Chief Editor', + 'last_name' => 'User', + 'email' => 'chief.editor@test.local', ]); // create a blank slate user @@ -60,7 +75,7 @@ public function run(): void ]); // create 1 filled out secondary manuscript record for the test user - \App\Models\ManuscriptRecord::factory()->secondary()->filled()->create([ + \App\Models\ManuscriptRecord::factory()->secondary()->reviewed()->create([ 'user_id' => $user->id, ]); @@ -122,7 +137,7 @@ public function run(): void 'user_id' => $markUser->id, ]); - $marksManuscript->manuscriptAuthors()->save(\App\Models\ManuscriptAuthor::create([ + $marksManuscript->manuscriptAuthors()->save(\App\Models\ManuscriptAuthor::factory()->create([ 'author_id' => $markAuthor->id, 'is_corresponding_author' => true, 'manuscript_record_id' => $marksManuscript->id, diff --git a/package.json b/package.json index ea6a7ba0..e1a3d3be 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,10 @@ "cy:run": "cypress run" }, "dependencies": { - "@intlify/unplugin-vue-i18n": "^6.0.1", + "@intlify/unplugin-vue-i18n": "^6.0.2", "@quasar/extras": "^1.16.15", "@vitejs/plugin-vue": "^5.2.1", - "@vueuse/core": "^12.0.0", + "@vueuse/core": "^12.2.0", "dompurify": "^3.2.3", "pinia": "^2.3.0", "quasar": "^2.17.5", @@ -23,7 +23,7 @@ "vue-router": "^4.5.0" }, "devDependencies": { - "@antfu/eslint-config": "^3.12.0", + "@antfu/eslint-config": "^3.12.1", "@quasar/vite-plugin": "^1.8.1", "@types/node": "^22.10.2", "axios": "^1.7.9", @@ -36,7 +36,7 @@ "prettier": "^3.4.2", "typescript": "^5.7.2", "unplugin-auto-import": "^0.19.0", - "vite": "^6.0.5", - "vue-tsc": "^2.1.10" + "vite": "^6.0.6", + "vue-tsc": "^2.2.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 698637ff..ff0db299 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: dependencies: '@intlify/unplugin-vue-i18n': - specifier: ^6.0.1 - version: 6.0.1(@vue/compiler-dom@3.5.13)(eslint@9.17.0)(rollup@4.29.0)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + specifier: ^6.0.2 + version: 6.0.2(@vue/compiler-dom@3.5.13)(eslint@9.17.0)(rollup@4.29.1)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) '@quasar/extras': specifier: ^1.16.15 version: 1.16.15 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + version: 5.2.1(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) '@vueuse/core': - specifier: ^12.0.0 - version: 12.0.0(typescript@5.7.2) + specifier: ^12.2.0 + version: 12.2.0(typescript@5.7.2) dompurify: specifier: ^3.2.3 version: 3.2.3 @@ -46,11 +46,11 @@ importers: version: 4.5.0(vue@3.5.13(typescript@5.7.2)) devDependencies: '@antfu/eslint-config': - specifier: ^3.12.0 - version: 3.12.0(@typescript-eslint/utils@8.18.1(eslint@9.17.0)(typescript@5.7.2))(@vue/compiler-sfc@3.5.13)(eslint@9.17.0)(typescript@5.7.2) + specifier: ^3.12.1 + version: 3.12.1(@typescript-eslint/utils@8.18.2(eslint@9.17.0)(typescript@5.7.2))(@vue/compiler-sfc@3.5.13)(eslint@9.17.0)(typescript@5.7.2) '@quasar/vite-plugin': specifier: ^1.8.1 - version: 1.8.1(@vitejs/plugin-vue@5.2.1(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)))(quasar@2.17.5)(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + version: 1.8.1(@vitejs/plugin-vue@5.2.1(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)))(quasar@2.17.5)(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) '@types/node': specifier: ^22.10.2 version: 22.10.2 @@ -71,7 +71,7 @@ importers: version: 15.14.0 laravel-vite-plugin: specifier: ^1.1.1 - version: 1.1.1(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1)) + version: 1.1.1(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1)) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -83,18 +83,18 @@ importers: version: 5.7.2 unplugin-auto-import: specifier: ^0.19.0 - version: 0.19.0(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@4.29.0) + version: 0.19.0(@vueuse/core@12.2.0(typescript@5.7.2))(rollup@4.29.1) vite: - specifier: ^6.0.5 - version: 6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1) + specifier: ^6.0.6 + version: 6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1) vue-tsc: - specifier: ^2.1.10 - version: 2.1.10(typescript@5.7.2) + specifier: ^2.2.0 + version: 2.2.0(typescript@5.7.2) packages: - '@antfu/eslint-config@3.12.0': - resolution: {integrity: sha512-dMHomZZXufEpjKElh7dcfBKu+qFGz9NOACGaqNNAmr9XHe5JQe/6oNNdP3YGeyXSPR/V37IXFvxM0P76WHv1IA==} + '@antfu/eslint-config@3.12.1': + resolution: {integrity: sha512-6sRgO4u63GK75xeZ2MfCSRT9GcfLti4ZN3Xw+bIu39oo6HY50fBY+rXnWvgwNimzHBOh3yV5xUHfTqcHq1M5AA==} hasBin: true peerDependencies: '@eslint-react/eslint-plugin': ^1.19.0 @@ -169,11 +169,11 @@ packages: '@bufbuild/protobuf@2.2.3': resolution: {integrity: sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==} - '@clack/core@0.3.5': - resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} + '@clack/core@0.4.0': + resolution: {integrity: sha512-YJCYBsyJfNDaTbvDUVSJ3SgSuPrcujarRgkJ5NLjexDZKvaOiVVJvAQYx8lIgG0qRT8ff0fPgqyBCVivanIZ+A==} - '@clack/prompts@0.8.2': - resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} + '@clack/prompts@0.9.0': + resolution: {integrity: sha512-nGsytiExgUr4FL0pR/LeqxA28nz3E0cW7eLTSh3Iod9TGrbBt8Y7BHbV3mmkNC4G0evdYyQ3ZsbiBkk7ektArA==} '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} @@ -190,146 +190,152 @@ packages: resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==} engines: {node: '>=16'} - '@esbuild/aix-ppc64@0.24.0': - resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.24.0': - resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.24.0': - resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.24.0': - resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.24.0': - resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.24.0': - resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.24.0': - resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.0': - resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.24.0': - resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.24.0': - resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.24.0': - resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.24.0': - resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.24.0': - resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.24.0': - resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.24.0': - resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.24.0': - resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.24.0': - resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.24.0': - resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.0': - resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.0': - resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.24.0': - resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.24.0': - resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.24.0': - resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.24.0': - resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -439,8 +445,12 @@ packages: resolution: {integrity: sha512-8tR1xe7ZEbkabTuE/tNhzpolygUn9OaYp9yuYAF4MgDNZg06C3Qny80bes2/e9/Wm3aVkPUlCw6WgU7mQd0yEg==} engines: {node: '>= 16'} - '@intlify/unplugin-vue-i18n@6.0.1': - resolution: {integrity: sha512-zDcGLNoaIP15JM4TGwgTHF01Y1Drwcv7pm9C2mHrGAZ3CugqyP2QEG0Vf82QVSNqgEwgB6prcAyDmjIDK1HlRQ==} + '@intlify/shared@11.0.1': + resolution: {integrity: sha512-lH164+aDDptHZ3dBDbIhRa1dOPQUp+83iugpc+1upTOWCnwyC1PVis6rSWNMMJ8VQxvtHQB9JMib48K55y0PvQ==} + engines: {node: '>= 16'} + + '@intlify/unplugin-vue-i18n@6.0.2': + resolution: {integrity: sha512-5AuwBfdFtA4OSh31tfGpjhvmh7BVCzClHCgFlVdNM3ojyai3UZY4ViYh35TlE1xeWFyduOtUsG12r70xy24nzg==} engines: {node: '>= 18'} peerDependencies: petite-vue-i18n: '*' @@ -592,98 +602,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.29.0': - resolution: {integrity: sha512-TnF0md3qWSRDlU96y9+0dd5RNrlXiQUp1K2pK1UpNmjeND+o9ts9Jxv3G6ntagkt8jVh0KAT1VYgU0nCz5gt2w==} + '@rollup/rollup-android-arm-eabi@4.29.1': + resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.29.0': - resolution: {integrity: sha512-L/7oX07eY6ACt2NXDrku1JIPdf9VGV/DI92EjAd8FRDzMMub5hXFpT1OegBqimJh9xy9Vv+nToaVtZp4Ku9SEA==} + '@rollup/rollup-android-arm64@4.29.1': + resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.29.0': - resolution: {integrity: sha512-I1ZucWPVS96hjAsMSJiGosHTqMulMynrmTN+Xde5OsLcU5SjE0xylBmQ/DbB2psJ+HasINrJYz8HQpojtAw2eA==} + '@rollup/rollup-darwin-arm64@4.29.1': + resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.29.0': - resolution: {integrity: sha512-CTZ+lHMsTbH1q/XLKzmnJWxl2r/1xdv7cnjwbi5v+95nVA1syikxWLvqur4nDoGDHjC8oNMBGurnQptpuFJHXA==} + '@rollup/rollup-darwin-x64@4.29.1': + resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.29.0': - resolution: {integrity: sha512-BB8+4OMzk2JiKL5+aK8A0pi9DPB5pkIBZWXr19+grdez9b0VKihvV432uSwuZLO0sI6zCyxak8NO3mZ1yjM1jA==} + '@rollup/rollup-freebsd-arm64@4.29.1': + resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.29.0': - resolution: {integrity: sha512-Udz9Uh26uEE6phGMG2++TfpsLK/z4cYJqrIOyVhig/PMoWiZLghpjZUQvsAylsoztbpg0/QmplkDAyyVq0x6Jg==} + '@rollup/rollup-freebsd-x64@4.29.1': + resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.29.0': - resolution: {integrity: sha512-IPSCTzP8GRYzY+siSnggIKrckC2U+kVXoen6eSHRDgU9a4EZCHHWWOiKio1EkieOOk2j6EvZaaHfQUCmt8UJBg==} + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.29.0': - resolution: {integrity: sha512-GvHPu0UIDx+ohyS8vTYnwoSVMM5BH3NO+JwQs6GWNCuQVlC5rKxnH2WClTGu3NxiIfhKLai08IKUwn3QbzX1UQ==} + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.29.0': - resolution: {integrity: sha512-Pnnn/2CAZWcH9GQoj1nnr85Ejh7aNDe5MsEV0xhuFNUPF0SdnutJ7b2muOI5Kx12T0/i2ol5B/tlhMviZQDL3g==} + '@rollup/rollup-linux-arm64-gnu@4.29.1': + resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.29.0': - resolution: {integrity: sha512-AP+DLj4q9FT22ZL43ssA3gizEn7/MfJcZ1BOuyEPqoriuH3a8VRuDddN0MtpUwEtiZL6jc1GY5/eL99hkloQ1Q==} + '@rollup/rollup-linux-arm64-musl@4.29.1': + resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.29.0': - resolution: {integrity: sha512-1+jPFClHmDATqbk0Cwi74KEOymVcs09Vbqe/CTKqLwCP0TeP2CACfnMnjYBs5CJgO20e/4bxFtmbR/9fKE1gug==} + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.29.0': - resolution: {integrity: sha512-Nmt5Us5w2dL8eh7QVyAIDVVwBv4wk8ljrBQe7lWkLaOcwABDaFQ3K4sAAC6IsOdJwaXXW+d85zVaMN+Xl8Co2w==} + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.29.0': - resolution: {integrity: sha512-KGuQ8WGhnq09LR7eOru7P9jfBSYXTMhq6TyavWfmEo+TxvkvuRwOCee5lPIa6HYjblOuFr4GeOxSE0c8iyw2Fg==} + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.29.0': - resolution: {integrity: sha512-lSQtvrYIONme7a4gbf4O9d3zbZat3/5covIeoqk27ZIkTgBeL/67x+wq2bZfpLjkqQQp5SjBPQ/n0sg8iArzTg==} + '@rollup/rollup-linux-s390x-gnu@4.29.1': + resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.29.0': - resolution: {integrity: sha512-qh0ussrXBwnF4L07M9t1+jpHRhiGSae+wpNQDbmlXHXciT7pqpZ5zpk4dyGZPtDGB2l2clDiufE16BufXPGRWQ==} + '@rollup/rollup-linux-x64-gnu@4.29.1': + resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.29.0': - resolution: {integrity: sha512-YEABzSaRS7+v14yw6MVBZoMqLoUyTX1/sJoGeC0euvgMrzvw0i+jHo4keDZgYeOblfwdseVAf6ylxWSvcBAKTA==} + '@rollup/rollup-linux-x64-musl@4.29.1': + resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.29.0': - resolution: {integrity: sha512-jA4+oxG7QTTtSQxwSHzFVwShcppHO2DpkbAM59pfD5WMG/da79yQaeBtXAfGTI+ciUx8hqK3RF3H2KWByITXtQ==} + '@rollup/rollup-win32-arm64-msvc@4.29.1': + resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.29.0': - resolution: {integrity: sha512-4TQbLoAQVu9uE+cvh47JnjRZylXVdRCoOkRSVF2Rr2T0U1YwphGRjR0sHyRPEt95y3ETT4YFTTzQPq1O4bcjmw==} + '@rollup/rollup-win32-ia32-msvc@4.29.1': + resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.29.0': - resolution: {integrity: sha512-GsFvcTZ7Yj9k94Qm0qgav7pxmQ7lQDR9NjoelRaxeV1UF6JSDfanR/2tHZ8hS7Ps4KPIVf5AElYPRPmN/Q0ZkQ==} + '@rollup/rollup-win32-x64-msvc@4.29.1': + resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} cpu: [x64] os: [win32] @@ -735,51 +745,51 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.18.1': - resolution: {integrity: sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==} + '@typescript-eslint/eslint-plugin@8.18.2': + resolution: {integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.18.1': - resolution: {integrity: sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==} + '@typescript-eslint/parser@8.18.2': + resolution: {integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.18.1': - resolution: {integrity: sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==} + '@typescript-eslint/scope-manager@8.18.2': + resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.18.1': - resolution: {integrity: sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==} + '@typescript-eslint/type-utils@8.18.2': + resolution: {integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.18.1': - resolution: {integrity: sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==} + '@typescript-eslint/types@8.18.2': + resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.18.1': - resolution: {integrity: sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==} + '@typescript-eslint/typescript-estree@8.18.2': + resolution: {integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.18.1': - resolution: {integrity: sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==} + '@typescript-eslint/utils@8.18.2': + resolution: {integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.18.1': - resolution: {integrity: sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==} + '@typescript-eslint/visitor-keys@8.18.2': + resolution: {integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitejs/plugin-vue@5.2.1': @@ -829,8 +839,8 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - '@vue/language-core@2.1.10': - resolution: {integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==} + '@vue/language-core@2.2.0': + resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -854,14 +864,14 @@ packages: '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - '@vueuse/core@12.0.0': - resolution: {integrity: sha512-C12RukhXiJCbx4MGhjmd/gH52TjJsc3G0E0kQj/kb19H3Nt6n1CA4DRWuTdWWcaFRdlTe0npWDS942mvacvNBw==} + '@vueuse/core@12.2.0': + resolution: {integrity: sha512-jksyNu+5EGwggNkRWd6xX+8qBkYbmrwdFQMgCABsz+wq8bKF6w3soPFLB8vocFp3wFIzn0OYkSPM9JP+AFKwsg==} - '@vueuse/metadata@12.0.0': - resolution: {integrity: sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==} + '@vueuse/metadata@12.2.0': + resolution: {integrity: sha512-x6zynZtTh1l52m0y8d/EgzpshnMjg8cNZ2KWoncJ62Z5qPSGoc4FUunmMVrrRM/I/5542rTEY89CGftngZvrkQ==} - '@vueuse/shared@12.0.0': - resolution: {integrity: sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==} + '@vueuse/shared@12.2.0': + resolution: {integrity: sha512-SRr4AZwv/giS+EmyA1ZIzn3/iALjjnWAGaBNmoDTMEob9JwQaevAocuaMDnPAvU7Z35Y5g3CFRusCWgp1gVJ3Q==} acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -880,8 +890,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - alien-signals@0.2.2: - resolution: {integrity: sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A==} + alien-signals@0.4.11: + resolution: {integrity: sha512-79GUbcQM5K2zb+HyUMODTgJdVjZWwybDNQRduqP9ks7XZvJylm9uWesOjVcu6/veWsa+XNGVE4xVQ8+RGu8HaA==} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -1174,8 +1184,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.75: - resolution: {integrity: sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q==} + electron-to-chromium@1.5.76: + resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1206,15 +1216,15 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} - esbuild@0.24.0: - resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} engines: {node: '>=18'} hasBin: true @@ -1474,8 +1484,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -1657,8 +1667,8 @@ packages: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} - is-core-module@2.16.0: - resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -2067,8 +2077,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-manager-detector@0.2.7: - resolution: {integrity: sha512-g4+387DXDKlZzHkP+9FLt8yKj8+/3tOkPv7DVTJGGRm00RkEWgqbFstX1mXJ4M0VDYhUqsTOiISqNOJnhAu3PQ==} + package-manager-detector@0.2.8: + resolution: {integrity: sha512-ts9KSdroZisdvKMWVAVCXiKqnqNfXz4+IbrBG8/BWx/TR5le+jfenvoBuIZ6UWM9nz47W7AbD9qYfAwfWMIwzA==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -2133,8 +2143,8 @@ packages: typescript: optional: true - pkg-types@1.2.1: - resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + pkg-types@1.3.0: + resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==} pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} @@ -2251,8 +2261,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.29.0: - resolution: {integrity: sha512-pdftUn12oB9Qlka+Vpyc39R28D4NsP9Sz6neepSrekofJmWzPD1sxcSO9hEOxFF8+7Kz3sHvwSkkRREI28M1/w==} + rollup@4.29.1: + resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2553,11 +2563,11 @@ packages: tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} - tldts-core@6.1.69: - resolution: {integrity: sha512-nygxy9n2PBUFQUtAXAc122gGo+04/j5qr5TGQFZTHafTKYvmARVXt2cA5rgero2/dnXUfkdPtiJoKmrd3T+wdA==} + tldts-core@6.1.70: + resolution: {integrity: sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==} - tldts@6.1.69: - resolution: {integrity: sha512-Oh/CqRQ1NXNY7cy9NkTPUauOWiTro0jEYZTioGbOmcQh6EC45oribyIMJp0OJO3677r13tO6SKdWoGZUx2BDFw==} + tldts@6.1.70: + resolution: {integrity: sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==} hasBin: true tmp@0.2.3: @@ -2701,8 +2711,8 @@ packages: vite-plugin-manifest-sri@0.2.0: resolution: {integrity: sha512-Zt5jt19xTIJ91LOuQTCtNG7rTFc5OziAjBz2H5NdCGqaOD1nxrWExLhcKW+W4/q8/jOPCg/n5ncYEQmqCxiGQQ==} - vite@6.0.5: - resolution: {integrity: sha512-akD5IAH/ID5imgue2DYhzsEwCi0/4VKY31uhMLEYJwPP4TiUp8pL5PIK+Wo7H8qT8JY9i+pVfPydcFPYD1EL7g==} + vite@6.0.6: + resolution: {integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -2772,8 +2782,8 @@ packages: peerDependencies: vue: ^3.2.0 - vue-tsc@2.1.10: - resolution: {integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==} + vue-tsc@2.2.0: + resolution: {integrity: sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -2846,16 +2856,16 @@ packages: snapshots: - '@antfu/eslint-config@3.12.0(@typescript-eslint/utils@8.18.1(eslint@9.17.0)(typescript@5.7.2))(@vue/compiler-sfc@3.5.13)(eslint@9.17.0)(typescript@5.7.2)': + '@antfu/eslint-config@3.12.1(@typescript-eslint/utils@8.18.2(eslint@9.17.0)(typescript@5.7.2))(@vue/compiler-sfc@3.5.13)(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@antfu/install-pkg': 0.5.0 - '@clack/prompts': 0.8.2 + '@clack/prompts': 0.9.0 '@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.17.0) '@eslint/markdown': 6.2.1 '@stylistic/eslint-plugin': 2.12.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/eslint-plugin': 8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@vitest/eslint-plugin': 1.1.20(@typescript-eslint/utils@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@vitest/eslint-plugin': 1.1.20(@typescript-eslint/utils@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) eslint: 9.17.0 eslint-config-flat-gitignore: 0.3.0(eslint@9.17.0) eslint-flat-config-utils: 0.4.0 @@ -2871,7 +2881,7 @@ snapshots: eslint-plugin-regexp: 2.7.0(eslint@9.17.0) eslint-plugin-toml: 0.12.0(eslint@9.17.0) eslint-plugin-unicorn: 56.0.1(eslint@9.17.0) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0) eslint-plugin-vue: 9.32.0(eslint@9.17.0) eslint-plugin-yml: 1.16.0(eslint@9.17.0) eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.5.13)(eslint@9.17.0) @@ -2894,7 +2904,7 @@ snapshots: '@antfu/install-pkg@0.5.0': dependencies: - package-manager-detector: 0.2.7 + package-manager-detector: 0.2.8 tinyexec: 0.3.1 '@antfu/utils@0.7.10': {} @@ -2920,14 +2930,14 @@ snapshots: '@bufbuild/protobuf@2.2.3': {} - '@clack/core@0.3.5': + '@clack/core@0.4.0': dependencies: picocolors: 1.1.1 sisteransi: 1.0.5 - '@clack/prompts@0.8.2': + '@clack/prompts@0.9.0': dependencies: - '@clack/core': 0.3.5 + '@clack/core': 0.4.0 picocolors: 1.1.1 sisteransi: 1.0.5 @@ -2968,76 +2978,79 @@ snapshots: esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@esbuild/aix-ppc64@0.24.0': + '@esbuild/aix-ppc64@0.24.2': optional: true - '@esbuild/android-arm64@0.24.0': + '@esbuild/android-arm64@0.24.2': optional: true - '@esbuild/android-arm@0.24.0': + '@esbuild/android-arm@0.24.2': optional: true - '@esbuild/android-x64@0.24.0': + '@esbuild/android-x64@0.24.2': optional: true - '@esbuild/darwin-arm64@0.24.0': + '@esbuild/darwin-arm64@0.24.2': optional: true - '@esbuild/darwin-x64@0.24.0': + '@esbuild/darwin-x64@0.24.2': optional: true - '@esbuild/freebsd-arm64@0.24.0': + '@esbuild/freebsd-arm64@0.24.2': optional: true - '@esbuild/freebsd-x64@0.24.0': + '@esbuild/freebsd-x64@0.24.2': optional: true - '@esbuild/linux-arm64@0.24.0': + '@esbuild/linux-arm64@0.24.2': optional: true - '@esbuild/linux-arm@0.24.0': + '@esbuild/linux-arm@0.24.2': optional: true - '@esbuild/linux-ia32@0.24.0': + '@esbuild/linux-ia32@0.24.2': optional: true - '@esbuild/linux-loong64@0.24.0': + '@esbuild/linux-loong64@0.24.2': optional: true - '@esbuild/linux-mips64el@0.24.0': + '@esbuild/linux-mips64el@0.24.2': optional: true - '@esbuild/linux-ppc64@0.24.0': + '@esbuild/linux-ppc64@0.24.2': optional: true - '@esbuild/linux-riscv64@0.24.0': + '@esbuild/linux-riscv64@0.24.2': optional: true - '@esbuild/linux-s390x@0.24.0': + '@esbuild/linux-s390x@0.24.2': optional: true - '@esbuild/linux-x64@0.24.0': + '@esbuild/linux-x64@0.24.2': optional: true - '@esbuild/netbsd-x64@0.24.0': + '@esbuild/netbsd-arm64@0.24.2': optional: true - '@esbuild/openbsd-arm64@0.24.0': + '@esbuild/netbsd-x64@0.24.2': optional: true - '@esbuild/openbsd-x64@0.24.0': + '@esbuild/openbsd-arm64@0.24.2': optional: true - '@esbuild/sunos-x64@0.24.0': + '@esbuild/openbsd-x64@0.24.2': optional: true - '@esbuild/win32-arm64@0.24.0': + '@esbuild/sunos-x64@0.24.2': optional: true - '@esbuild/win32-ia32@0.24.0': + '@esbuild/win32-arm64@0.24.2': optional: true - '@esbuild/win32-x64@0.24.0': + '@esbuild/win32-ia32@0.24.2': + optional: true + + '@esbuild/win32-x64@0.24.2': optional: true '@eslint-community/eslint-plugin-eslint-comments@4.4.1(eslint@9.17.0)': @@ -3146,15 +3159,17 @@ snapshots: '@intlify/shared@11.0.0-rc.1': {} - '@intlify/unplugin-vue-i18n@6.0.1(@vue/compiler-dom@3.5.13)(eslint@9.17.0)(rollup@4.29.0)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))': + '@intlify/shared@11.0.1': {} + + '@intlify/unplugin-vue-i18n@6.0.2(@vue/compiler-dom@3.5.13)(eslint@9.17.0)(rollup@4.29.1)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) '@intlify/bundle-utils': 10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2))) - '@intlify/shared': 10.0.5 - '@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@10.0.5)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) - '@rollup/pluginutils': 5.1.4(rollup@4.29.0) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) + '@intlify/shared': 11.0.1 + '@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@11.0.1)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.2 js-yaml: 4.1.0 @@ -3173,11 +3188,11 @@ snapshots: - supports-color - typescript - '@intlify/vue-i18n-extensions@7.0.0(@intlify/shared@10.0.5)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))': + '@intlify/vue-i18n-extensions@7.0.0(@intlify/shared@11.0.1)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))': dependencies: '@babel/parser': 7.26.3 optionalDependencies: - '@intlify/shared': 10.0.5 + '@intlify/shared': 11.0.1 '@vue/compiler-dom': 3.5.13 vue: 3.5.13(typescript@5.7.2) vue-i18n: 10.0.5(vue@3.5.13(typescript@5.7.2)) @@ -3194,7 +3209,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.18.0 '@parcel/watcher-android-arm64@2.5.0': optional: true @@ -3261,81 +3276,81 @@ snapshots: '@quasar/extras@1.16.15': {} - '@quasar/vite-plugin@1.8.1(@vitejs/plugin-vue@5.2.1(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)))(quasar@2.17.5)(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + '@quasar/vite-plugin@1.8.1(@vitejs/plugin-vue@5.2.1(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)))(quasar@2.17.5)(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': dependencies: - '@vitejs/plugin-vue': 5.2.1(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + '@vitejs/plugin-vue': 5.2.1(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) quasar: 2.17.5 - vite: 6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1) vue: 3.5.13(typescript@5.7.2) - '@rollup/pluginutils@5.1.4(rollup@4.29.0)': + '@rollup/pluginutils@5.1.4(rollup@4.29.1)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.29.0 + rollup: 4.29.1 - '@rollup/rollup-android-arm-eabi@4.29.0': + '@rollup/rollup-android-arm-eabi@4.29.1': optional: true - '@rollup/rollup-android-arm64@4.29.0': + '@rollup/rollup-android-arm64@4.29.1': optional: true - '@rollup/rollup-darwin-arm64@4.29.0': + '@rollup/rollup-darwin-arm64@4.29.1': optional: true - '@rollup/rollup-darwin-x64@4.29.0': + '@rollup/rollup-darwin-x64@4.29.1': optional: true - '@rollup/rollup-freebsd-arm64@4.29.0': + '@rollup/rollup-freebsd-arm64@4.29.1': optional: true - '@rollup/rollup-freebsd-x64@4.29.0': + '@rollup/rollup-freebsd-x64@4.29.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.29.0': + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.29.0': + '@rollup/rollup-linux-arm-musleabihf@4.29.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.29.0': + '@rollup/rollup-linux-arm64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.29.0': + '@rollup/rollup-linux-arm64-musl@4.29.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.29.0': + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.29.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.29.0': + '@rollup/rollup-linux-riscv64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.29.0': + '@rollup/rollup-linux-s390x-gnu@4.29.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.29.0': + '@rollup/rollup-linux-x64-gnu@4.29.1': optional: true - '@rollup/rollup-linux-x64-musl@4.29.0': + '@rollup/rollup-linux-x64-musl@4.29.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.29.0': + '@rollup/rollup-win32-arm64-msvc@4.29.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.29.0': + '@rollup/rollup-win32-ia32-msvc@4.29.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.29.0': + '@rollup/rollup-win32-x64-msvc@4.29.1': optional: true '@stylistic/eslint-plugin@2.12.1(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) eslint: 9.17.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 @@ -3383,14 +3398,14 @@ snapshots: '@types/node': 22.10.2 optional: true - '@typescript-eslint/eslint-plugin@8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/type-utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/parser': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/type-utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.18.2 eslint: 9.17.0 graphemer: 1.4.0 ignore: 5.3.2 @@ -3400,27 +3415,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.18.2 debug: 4.4.0(supports-color@8.1.1) eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.18.1': + '@typescript-eslint/scope-manager@8.18.2': dependencies: - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/visitor-keys': 8.18.2 - '@typescript-eslint/type-utils@8.18.1(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) debug: 4.4.0(supports-color@8.1.1) eslint: 9.17.0 ts-api-utils: 1.4.3(typescript@5.7.2) @@ -3428,12 +3443,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.18.1': {} + '@typescript-eslint/types@8.18.2': {} - '@typescript-eslint/typescript-estree@8.18.1(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.18.2(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/visitor-keys': 8.18.1 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/visitor-keys': 8.18.2 debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 @@ -3444,30 +3459,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.18.1(eslint@9.17.0)(typescript@5.7.2)': + '@typescript-eslint/utils@8.18.2(eslint@9.17.0)(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/typescript-estree': 8.18.1(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) eslint: 9.17.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.18.1': + '@typescript-eslint/visitor-keys@8.18.2': dependencies: - '@typescript-eslint/types': 8.18.1 + '@typescript-eslint/types': 8.18.2 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-vue@5.2.1(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + '@vitejs/plugin-vue@5.2.1(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': dependencies: - vite: 6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1) vue: 3.5.13(typescript@5.7.2) - '@vitest/eslint-plugin@1.1.20(@typescript-eslint/utils@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': + '@vitest/eslint-plugin@1.1.20(@typescript-eslint/utils@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) eslint: 9.17.0 optionalDependencies: typescript: 5.7.2 @@ -3521,13 +3536,13 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/language-core@2.1.10(typescript@5.7.2)': + '@vue/language-core@2.2.0(typescript@5.7.2)': dependencies: '@volar/language-core': 2.4.11 '@vue/compiler-dom': 3.5.13 '@vue/compiler-vue2': 2.7.16 '@vue/shared': 3.5.13 - alien-signals: 0.2.2 + alien-signals: 0.4.11 minimatch: 9.0.5 muggle-string: 0.4.1 path-browserify: 1.0.1 @@ -3558,18 +3573,18 @@ snapshots: '@vue/shared@3.5.13': {} - '@vueuse/core@12.0.0(typescript@5.7.2)': + '@vueuse/core@12.2.0(typescript@5.7.2)': dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 12.0.0 - '@vueuse/shared': 12.0.0(typescript@5.7.2) + '@vueuse/metadata': 12.2.0 + '@vueuse/shared': 12.2.0(typescript@5.7.2) vue: 3.5.13(typescript@5.7.2) transitivePeerDependencies: - typescript - '@vueuse/metadata@12.0.0': {} + '@vueuse/metadata@12.2.0': {} - '@vueuse/shared@12.0.0(typescript@5.7.2)': + '@vueuse/shared@12.2.0(typescript@5.7.2)': dependencies: vue: 3.5.13(typescript@5.7.2) transitivePeerDependencies: @@ -3593,7 +3608,7 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - alien-signals@0.2.2: {} + alien-signals@0.4.11: {} ansi-colors@4.1.3: {} @@ -3669,7 +3684,7 @@ snapshots: browserslist@4.24.3: dependencies: caniuse-lite: 1.0.30001690 - electron-to-chromium: 1.5.75 + electron-to-chromium: 1.5.76 node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.3) @@ -3889,7 +3904,7 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.5.75: {} + electron-to-chromium@1.5.76: {} emoji-regex@8.0.0: {} @@ -3917,38 +3932,39 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.5.4: {} + es-module-lexer@1.6.0: {} es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 - esbuild@0.24.0: + esbuild@0.24.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.0 - '@esbuild/android-arm': 0.24.0 - '@esbuild/android-arm64': 0.24.0 - '@esbuild/android-x64': 0.24.0 - '@esbuild/darwin-arm64': 0.24.0 - '@esbuild/darwin-x64': 0.24.0 - '@esbuild/freebsd-arm64': 0.24.0 - '@esbuild/freebsd-x64': 0.24.0 - '@esbuild/linux-arm': 0.24.0 - '@esbuild/linux-arm64': 0.24.0 - '@esbuild/linux-ia32': 0.24.0 - '@esbuild/linux-loong64': 0.24.0 - '@esbuild/linux-mips64el': 0.24.0 - '@esbuild/linux-ppc64': 0.24.0 - '@esbuild/linux-riscv64': 0.24.0 - '@esbuild/linux-s390x': 0.24.0 - '@esbuild/linux-x64': 0.24.0 - '@esbuild/netbsd-x64': 0.24.0 - '@esbuild/openbsd-arm64': 0.24.0 - '@esbuild/openbsd-x64': 0.24.0 - '@esbuild/sunos-x64': 0.24.0 - '@esbuild/win32-arm64': 0.24.0 - '@esbuild/win32-ia32': 0.24.0 - '@esbuild/win32-x64': 0.24.0 + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 escalade@3.2.0: {} @@ -3989,7 +4005,7 @@ snapshots: eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7(supports-color@8.1.1) - is-core-module: 2.16.0 + is-core-module: 2.16.1 resolve: 1.22.10 transitivePeerDependencies: - supports-color @@ -4024,8 +4040,8 @@ snapshots: eslint-plugin-import-x@4.6.1(eslint@9.17.0)(typescript@5.7.2): dependencies: '@types/doctrine': 0.0.9 - '@typescript-eslint/scope-manager': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.2 + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) debug: 4.4.0(supports-color@8.1.1) doctrine: 3.0.0 enhanced-resolve: 5.18.0 @@ -4088,8 +4104,8 @@ snapshots: eslint-plugin-perfectionist@4.4.0(eslint@9.17.0)(typescript@5.7.2): dependencies: - '@typescript-eslint/types': 8.18.1 - '@typescript-eslint/utils': 8.18.1(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/utils': 8.18.2(eslint@9.17.0)(typescript@5.7.2) eslint: 9.17.0 natural-orderby: 5.0.0 transitivePeerDependencies: @@ -4142,11 +4158,11 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0): dependencies: eslint: 9.17.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.18.1(@typescript-eslint/parser@8.18.1(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0)(typescript@5.7.2))(eslint@9.17.0)(typescript@5.7.2) eslint-plugin-vue@9.32.0(eslint@9.17.0): dependencies: @@ -4309,7 +4325,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fastq@1.17.1: + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -4473,7 +4489,7 @@ snapshots: dependencies: builtin-modules: 3.3.0 - is-core-module@2.16.0: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -4558,10 +4574,10 @@ snapshots: dependencies: json-buffer: 3.0.1 - laravel-vite-plugin@1.1.1(vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1)): + laravel-vite-plugin@1.1.1(vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1)): dependencies: picocolors: 1.1.1 - vite: 6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1) vite-plugin-full-reload: 1.2.0 lazy-ass@1.6.0: {} @@ -4589,7 +4605,7 @@ snapshots: local-pkg@0.5.1: dependencies: mlly: 1.7.3 - pkg-types: 1.2.1 + pkg-types: 1.3.0 locate-path@5.0.0: dependencies: @@ -4953,7 +4969,7 @@ snapshots: dependencies: acorn: 8.14.0 pathe: 1.1.2 - pkg-types: 1.2.1 + pkg-types: 1.3.0 ufo: 1.5.4 ms@2.1.3: {} @@ -5029,7 +5045,7 @@ snapshots: p-try@2.2.0: {} - package-manager-detector@0.2.7: {} + package-manager-detector@0.2.8: {} parent-module@1.0.1: dependencies: @@ -5039,7 +5055,7 @@ snapshots: parse-imports@2.2.1: dependencies: - es-module-lexer: 1.5.4 + es-module-lexer: 1.6.0 slashes: 3.0.12 parse-json@5.2.0: @@ -5081,7 +5097,7 @@ snapshots: transitivePeerDependencies: - '@vue/composition-api' - pkg-types@1.2.1: + pkg-types@1.3.0: dependencies: confbox: 0.1.8 mlly: 1.7.3 @@ -5172,7 +5188,7 @@ snapshots: resolve@1.22.10: dependencies: - is-core-module: 2.16.0 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -5185,29 +5201,29 @@ snapshots: rfdc@1.4.1: {} - rollup@4.29.0: + rollup@4.29.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.29.0 - '@rollup/rollup-android-arm64': 4.29.0 - '@rollup/rollup-darwin-arm64': 4.29.0 - '@rollup/rollup-darwin-x64': 4.29.0 - '@rollup/rollup-freebsd-arm64': 4.29.0 - '@rollup/rollup-freebsd-x64': 4.29.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.29.0 - '@rollup/rollup-linux-arm-musleabihf': 4.29.0 - '@rollup/rollup-linux-arm64-gnu': 4.29.0 - '@rollup/rollup-linux-arm64-musl': 4.29.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.29.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.29.0 - '@rollup/rollup-linux-riscv64-gnu': 4.29.0 - '@rollup/rollup-linux-s390x-gnu': 4.29.0 - '@rollup/rollup-linux-x64-gnu': 4.29.0 - '@rollup/rollup-linux-x64-musl': 4.29.0 - '@rollup/rollup-win32-arm64-msvc': 4.29.0 - '@rollup/rollup-win32-ia32-msvc': 4.29.0 - '@rollup/rollup-win32-x64-msvc': 4.29.0 + '@rollup/rollup-android-arm-eabi': 4.29.1 + '@rollup/rollup-android-arm64': 4.29.1 + '@rollup/rollup-darwin-arm64': 4.29.1 + '@rollup/rollup-darwin-x64': 4.29.1 + '@rollup/rollup-freebsd-arm64': 4.29.1 + '@rollup/rollup-freebsd-x64': 4.29.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 + '@rollup/rollup-linux-arm-musleabihf': 4.29.1 + '@rollup/rollup-linux-arm64-gnu': 4.29.1 + '@rollup/rollup-linux-arm64-musl': 4.29.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 + '@rollup/rollup-linux-riscv64-gnu': 4.29.1 + '@rollup/rollup-linux-s390x-gnu': 4.29.1 + '@rollup/rollup-linux-x64-gnu': 4.29.1 + '@rollup/rollup-linux-x64-musl': 4.29.1 + '@rollup/rollup-win32-arm64-msvc': 4.29.1 + '@rollup/rollup-win32-ia32-msvc': 4.29.1 + '@rollup/rollup-win32-x64-msvc': 4.29.1 fsevents: 2.3.3 run-parallel@1.2.0: @@ -5481,11 +5497,11 @@ snapshots: tinyexec@0.3.1: {} - tldts-core@6.1.69: {} + tldts-core@6.1.70: {} - tldts@6.1.69: + tldts@6.1.70: dependencies: - tldts-core: 6.1.69 + tldts-core: 6.1.70 tmp@0.2.3: {} @@ -5499,7 +5515,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.69 + tldts: 6.1.70 tree-kill@1.2.2: {} @@ -5533,9 +5549,9 @@ snapshots: undici-types@6.20.0: {} - unimport@3.14.5(rollup@4.29.0): + unimport@3.14.5(rollup@4.29.1): dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.29.0) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) acorn: 8.14.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 @@ -5545,7 +5561,7 @@ snapshots: mlly: 1.7.3 pathe: 1.1.2 picomatch: 4.0.2 - pkg-types: 1.2.1 + pkg-types: 1.3.0 scule: 1.3.0 strip-literal: 2.1.1 unplugin: 1.16.0 @@ -5573,17 +5589,17 @@ snapshots: universalify@2.0.1: {} - unplugin-auto-import@0.19.0(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@4.29.0): + unplugin-auto-import@0.19.0(@vueuse/core@12.2.0(typescript@5.7.2))(rollup@4.29.1): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.4(rollup@4.29.0) + '@rollup/pluginutils': 5.1.4(rollup@4.29.1) local-pkg: 0.5.1 magic-string: 0.30.17 picomatch: 4.0.2 - unimport: 3.14.5(rollup@4.29.0) + unimport: 3.14.5(rollup@4.29.1) unplugin: 2.1.0 optionalDependencies: - '@vueuse/core': 12.0.0(typescript@5.7.2) + '@vueuse/core': 12.2.0(typescript@5.7.2) transitivePeerDependencies: - rollup @@ -5633,11 +5649,11 @@ snapshots: vite-plugin-manifest-sri@0.2.0: {} - vite@6.0.5(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1): + vite@6.0.6(@types/node@22.10.2)(sass-embedded@1.83.0)(sass@1.80.3)(yaml@2.6.1): dependencies: - esbuild: 0.24.0 + esbuild: 0.24.2 postcss: 8.4.49 - rollup: 4.29.0 + rollup: 4.29.1 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 @@ -5676,11 +5692,10 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.13(typescript@5.7.2) - vue-tsc@2.1.10(typescript@5.7.2): + vue-tsc@2.2.0(typescript@5.7.2): dependencies: '@volar/typescript': 2.4.11 - '@vue/language-core': 2.1.10(typescript@5.7.2) - semver: 7.6.3 + '@vue/language-core': 2.2.0(typescript@5.7.2) typescript: 5.7.2 vue@3.5.13(typescript@5.7.2): diff --git a/resources/src/auto-imports.d.ts b/resources/src/auto-imports.d.ts index 447fad7a..3cb857ef 100644 --- a/resources/src/auto-imports.d.ts +++ b/resources/src/auto-imports.d.ts @@ -251,6 +251,7 @@ declare global { const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark'] const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages'] const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion'] + const usePreferredReducedTransparency: typeof import('@vueuse/core')['usePreferredReducedTransparency'] const usePrevious: typeof import('@vueuse/core')['usePrevious'] const usePublicationStore: typeof import('./stores/PublicationStore')['usePublicationStore'] const useQuasar: typeof import('quasar')['useQuasar'] @@ -260,6 +261,7 @@ declare global { const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver'] const useRoute: typeof import('vue-router')['useRoute'] const useRouter: typeof import('vue-router')['useRouter'] + const useSSRWidth: typeof import('@vueuse/core')['useSSRWidth'] const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation'] const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea'] const useScriptTag: typeof import('@vueuse/core')['useScriptTag'] @@ -583,6 +585,7 @@ declare module 'vue' { readonly usePreferredDark: UnwrapRef readonly usePreferredLanguages: UnwrapRef readonly usePreferredReducedMotion: UnwrapRef + readonly usePreferredReducedTransparency: UnwrapRef readonly usePrevious: UnwrapRef readonly usePublicationStore: UnwrapRef readonly useRafFn: UnwrapRef @@ -591,6 +594,7 @@ declare module 'vue' { readonly useResizeObserver: UnwrapRef readonly useRoute: UnwrapRef readonly useRouter: UnwrapRef + readonly useSSRWidth: UnwrapRef readonly useScreenOrientation: UnwrapRef readonly useScreenSafeArea: UnwrapRef readonly useScriptTag: UnwrapRef diff --git a/resources/src/locales/en.json b/resources/src/locales/en.json index c9907222..f7736591 100644 --- a/resources/src/locales/en.json +++ b/resources/src/locales/en.json @@ -16,7 +16,8 @@ "user-roles-description": "Each user role gives different permissions within the portal. If you think you should have additional roles, please contact us." }, "accepted-by-journal-dialog": { - "text": "You can now mark this manuscript as having been accepted for publication by a journal. This step will create a new publication to your profile allowing you to update the publication details. Once you know the publication details, please remember to update publication record and mark it as published so that we can help share it within the DFO community." + "text": "You can now mark this manuscript as having been accepted for publication by a journal. This step will create a new publication to your profile allowing you to update the publication details. Once you know the publication details, please remember to update publication record and mark it as published so that we can help share it within the DFO community.", + "title": "Journal accepted for publication" }, "add-pub-author-dialog": { "dialog-help": "Search for the author you'd want to add using their name or professional email. If you cannot find the author you are looking for, or their affiliation or email has changed, you can create a new author record.", @@ -279,7 +280,8 @@ "authors": "Authors", "upload-a-new-version-of-the-publication": "Upload a new version of the publication", "upload-the-publication": "Upload the publication", - "from": "from" + "from": "from", + "form-invalid": "There are errors in the form, please fix them to be able to save this form." }, "create-author-dialog": { "title": "Create a new author" @@ -498,7 +500,10 @@ "title": "Manuscript Progress", "withdraw-manuscript": "Withdraw Manuscript", "withdrawn-by-applicant": "Withdrawn by Applicant", - "withdrawn-details": "The manuscript was withdrawn by the applicant. The manuscript record will be archived after 30 days." + "withdrawn-details": "The manuscript was withdrawn by the applicant. The manuscript record will be archived after 30 days.", + "submisison-to-dfo-title": "Submit to the EOS publication group", + "submit-title": "Submit manuscript", + "submission-to-dfo-details": "Following your submission to the EOS publication group, your manuscript will be marked as accepted in the portal. Your work will then undergo a technical edit before a final proof is sent to the corresponding author(s) for review. Once this is completed, the publication group will make arrangements to have the manuscript published in the appropriate series." }, "mrf": { "abstract-must-be-at-least-250-characters": "Abstract must be at least 250 characters", @@ -521,7 +526,7 @@ "pls-text": "Plain Language Summary (PLS) of the manuscript to explain the relevance of the science to the Department and to promote the value of science through outreach and communication. It is intended for internal use to identify linkages to programs, policies and stakeholders and for use in the plain language promotion of science.", "potential-media-interest-question": "Is this manuscript of potential public interest?", "potential-media-interest-text-field-text": "Optionally, please provide any pertinent information concerning the potential public interest.", - "ready-to-marked-published": "This manuscript has been reviewed but still needs to be marked as published by the applicant.", + "ready-to-marked-published": "This manuscript has completed its management review but still needs to be marked as submitted and accepted to a thrid-party Journal by the applicant.", "relevant-text": "Describe how this manuscript is relevant to the program that funded it, how it supports the department's mandate, strategic plan and or/regional priorities. ", "relevant-title": "Relevance to programs/initiatives/client sector", "replace-manuscript": "Upload a new version of the manuscript", @@ -543,7 +548,8 @@ "no-ogl-explanation-text-field-text": "DFO is committed to the \"Open by Design and by Default\" principle of Open Science, ensuring that all DFO publications are made available under the latest version of the \"{url}\" whenever possible. The Open Government Licence - Canada should not be applied if there are conflicting Licensing obligations.", "ogl-link": "Open Government Licence - Canada", "apply_ogl": "Should this report be licensed under the Open Government Licence - Canada?", - "ogl-provide-explanation": "Since you answered \"No,\" please provide an explanation of why an Open Government License cannot be applied to your report." + "ogl-provide-explanation": "Since you answered \"No,\" please provide an explanation of why an Open Government License cannot be applied to your report.", + "ready-to-submit": "This manuscript has completed its management review and is now ready for submission to the EOS publication team." }, "my-manuscript-records": { "actions-still-required": "Actions still required", @@ -654,7 +660,8 @@ "title": "Publication", "attach-supplementary-files": "Supplementary Files", "attach-supplementary-files-details": "Please upload all relevant supplementary files for your publications.", - "no-supplementary-files": "No supplementary files attached." + "no-supplementary-files": "No supplementary files attached.", + "mark-as-published-tooltip": "Only a DFO Chief Editor can mark a DFO publication as published." }, "publications-view": { "all-published-publications-details": "All published publications", @@ -822,5 +829,9 @@ }, "publication-supplementary": { "upload-hint": "Only PDF or Word files are accepted. Maximum file size is {max}MB." + }, + "submit-to-pub-team-dialog": { + "title": "Submit to the EOS Publication Team", + "text": "Congratulations! The EOS publication team will be in touch with you and/or the corresponding author(s) shortly after the submission." } } diff --git a/resources/src/locales/fr.json b/resources/src/locales/fr.json index 25de731e..ee274d23 100644 --- a/resources/src/locales/fr.json +++ b/resources/src/locales/fr.json @@ -279,7 +279,8 @@ "authors": "Auteurs", "upload-a-new-version-of-the-publication": "Télécharger une nouvelle version de la publication", "upload-the-publication": "Téléchargez la publication", - "from": "de" + "from": "de", + "form-invalid": "Il y a des erreurs dans le formulaire, merci de les corriger pour pouvoir sauvegarder ce formulaire." }, "create-author-dialog": { "title": "Créer un nouvel auteur" @@ -498,7 +499,10 @@ "title": "Progrès du manuscrit", "withdraw-manuscript": "Retirer le manuscrit", "withdrawn-by-applicant": "Retiré par le demandeur", - "withdrawn-details": "Le manuscrit a été retiré par le demandeur. \nLe régistre du manuscrit sera archivé après 30 jours." + "withdrawn-details": "Le manuscrit a été retiré par le demandeur. \nLe régistre du manuscrit sera archivé après 30 jours.", + "submisison-to-dfo-title": "Soumettre au groupe de publication du SEO", + "submit-title": "Soumettre le manuscrit", + "submission-to-dfo-details": "Suite à votre soumission au groupe de publication EOS, votre manuscrit sera marqué comme accepté dans le portail. Votre travail subira ensuite une révision technique avant qu'une épreuve finale ne soit envoyée à l'auteur(e) correspondant(e) pour révision. Une fois cette étape terminée, le groupe de publication prendra des dispositions pour publier le manuscrit dans la série appropriée." }, "mrf": { "abstract-must-be-at-least-250-characters": "Le résumé doit comporter au moins 250caractères", @@ -521,7 +525,7 @@ "pls-text": "Résumé en langage clair du manuscrit pour expliquer la pertinence de la science pour le Département et promouvoir la valeur de la science par la sensibilisation et la communication. \nIl est destiné à un usage interne pour identifier les liens avec les programmes, les politiques et les intervenants et à être utilisé dans la promotion de la science en langage clair.", "potential-media-interest-question": "Ce manuscrit présente-t-il un intérêt public potentiel?", "potential-media-interest-text-field-text": "Facultativement, veuillez fournir toute information pertinente concernant l'intérêt public potentiel.", - "ready-to-marked-published": "Ce manuscrit a été révisé mais doit encore être marqué comme publié par le candidat.", + "ready-to-marked-published": "Ce manuscrit a terminé sa revue par la gestion mais doit encore être marqué comme soumis et accepté dans une revue tierce par le demandeur.", "relevant-text": "Décrivez comment ce manuscrit est pertinent pour le programme qui l'a financé, comment il supporte le mandat du ministère, le plan stratégique du département et/ou les priorités régionales. ", "relevant-title": "Pertinence par rapport aux programmes/initiatives/clients ", "replace-manuscript": "Télécharger une nouvelle version du manuscrit", @@ -543,7 +547,8 @@ "ogl-link": "Licence du gouvernement ouvert – Canada", "apply_ogl": "Ce rapport devrait-il être licencié sous la Licence du gouvernement ouvert - Canada ?", "no-ogl-explanation": "Licence de rapport", - "ogl-provide-explanation": "Puisque vous avez répondu « Non », veuillez fournir une explication des raisons pour lesquelles une Licence du gouvernement ouvert ne peut pas être appliquée à votre rapport." + "ogl-provide-explanation": "Puisque vous avez répondu « Non », veuillez fournir une explication des raisons pour lesquelles une Licence du gouvernement ouvert ne peut pas être appliquée à votre rapport.", + "ready-to-submit": "Ce manuscrit a terminé sa révision par la gestion et est maintenant prêt à être soumis à l'équipe de publication du SEO." }, "my-manuscript-records": { "actions-still-required": "Actions encore nécessaires", @@ -654,7 +659,8 @@ "title": "Publication", "attach-supplementary-files": "Fichiers supplémentaires", "attach-supplementary-files-details": "Veuillez télécharger tous les fichiers supplémentaires pertinents pour vos publications.", - "no-supplementary-files": "Aucun fichier supplémentaire joint." + "no-supplementary-files": "Aucun fichier supplémentaire joint.", + "mark-as-published-tooltip": "Seul un rédacteur en chef du MPO peut marquer une publication du MPO comme publiée." }, "publications-view": { "all-published-publications-details": "Toutes les publications publiées", @@ -822,5 +828,9 @@ }, "publication-supplementary": { "upload-hint": "Seuls les fichiers PDF ou Word sont acceptés. \nLa taille maximale du fichier est de {max} Mo." + }, + "submit-to-pub-team-dialog": { + "text": "Félicitations! L'équipe de publication du SEO prendra contact avec vous et/ou les auteurs correspondants peu après la soumission.", + "title": "Soumettre à l'équipe de publication du SEO" } } diff --git a/resources/src/models/Journal/components/JournalSelect.vue b/resources/src/models/Journal/components/JournalSelect.vue index f7d172b7..c1be8404 100644 --- a/resources/src/models/Journal/components/JournalSelect.vue +++ b/resources/src/models/Journal/components/JournalSelect.vue @@ -12,6 +12,7 @@ import { const props = defineProps<{ modelValue: number | null dfoSeriesOnly?: boolean + hideDfoSeries?: boolean }>() const emit = defineEmits(['update:modelValue']) @@ -42,6 +43,13 @@ onMounted(async () => { const journal = await JournalService.get(props.modelValue) selectedJournal.value = journal } + + if (props.dfoSeriesOnly) { + const query = new SpatieQuery() + query.filter('dfo_series', 'true') + query.paginate(1, 30) + journals.value = await JournalService.list(query) + } }) async function filterJournals(val: string, update: (arg: () => Promise) => void) { @@ -62,6 +70,10 @@ async function filterJournals(val: string, update: (arg: () => Promise) => query.filter('dfo_series', 'true') } + if (props.hideDfoSeries) { + query.filter('not_dfo_series', 'true') + } + journals.value = await JournalService.list(query) journalsLoading.value = false } diff --git a/resources/src/models/ManuscriptRecord/ManuscriptRecord.ts b/resources/src/models/ManuscriptRecord/ManuscriptRecord.ts index a20fdf5c..09e70130 100644 --- a/resources/src/models/ManuscriptRecord/ManuscriptRecord.ts +++ b/resources/src/models/ManuscriptRecord/ManuscriptRecord.ts @@ -79,6 +79,7 @@ export interface ManuscriptRecordMetadata { id: number ulid: string region_id: number + type: ManuscriptRecordType reviewed_at: string | null } diff --git a/resources/src/models/ManuscriptRecord/components/AcceptedByJournalDialog.vue b/resources/src/models/ManuscriptRecord/components/AcceptedByJournalDialog.vue index fea4a922..bdbcaf28 100644 --- a/resources/src/models/ManuscriptRecord/components/AcceptedByJournalDialog.vue +++ b/resources/src/models/ManuscriptRecord/components/AcceptedByJournalDialog.vue @@ -1,15 +1,15 @@