From ea333faa24adca9d26c937d222b03cd2996de238 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sun, 16 Jun 2024 01:20:30 +0100 Subject: [PATCH 01/18] Create ReflectionService with unit tests --- app/Services/ReflectionService.php | 18 ++++++++++++++++++ .../App/Services/ReflectionServiceTest.php | 13 +++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 app/Services/ReflectionService.php create mode 100644 tests/Unit/App/Services/ReflectionServiceTest.php diff --git a/app/Services/ReflectionService.php b/app/Services/ReflectionService.php new file mode 100644 index 00000000..3584b35f --- /dev/null +++ b/app/Services/ReflectionService.php @@ -0,0 +1,18 @@ +getShortName(); + } +} diff --git a/tests/Unit/App/Services/ReflectionServiceTest.php b/tests/Unit/App/Services/ReflectionServiceTest.php new file mode 100644 index 00000000..d53e0db8 --- /dev/null +++ b/tests/Unit/App/Services/ReflectionServiceTest.php @@ -0,0 +1,13 @@ +toEqual($expected); +})->with([ + [User::class, 'User'], +]); From 7cc8ff92ca80882e614633a06f99fbc5b7cd1ff1 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sun, 16 Jun 2024 01:21:22 +0100 Subject: [PATCH 02/18] Create HasAdminEdit trait --- app/Traits/Admin/HasAdminEdit.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 app/Traits/Admin/HasAdminEdit.php diff --git a/app/Traits/Admin/HasAdminEdit.php b/app/Traits/Admin/HasAdminEdit.php new file mode 100644 index 00000000..b288a7e3 --- /dev/null +++ b/app/Traits/Admin/HasAdminEdit.php @@ -0,0 +1,18 @@ +id) + : false; + } +} From 95f15c08d5412983dfffa7d744a7fac001f28053 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sun, 16 Jun 2024 01:21:54 +0100 Subject: [PATCH 03/18] Create IsAdminResource trait --- app/Traits/Admin/IsAdminResource.php | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 app/Traits/Admin/IsAdminResource.php diff --git a/app/Traits/Admin/IsAdminResource.php b/app/Traits/Admin/IsAdminResource.php new file mode 100644 index 00000000..12351b1d --- /dev/null +++ b/app/Traits/Admin/IsAdminResource.php @@ -0,0 +1,8 @@ + Date: Sun, 16 Jun 2024 01:24:00 +0100 Subject: [PATCH 04/18] Update Page model to use IsAdminResource trait --- app/Models/Page.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/Models/Page.php b/app/Models/Page.php index 142de627..afe28095 100644 --- a/app/Models/Page.php +++ b/app/Models/Page.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Traits\Admin\IsAdminResource; use App\Traits\HasPageView; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -19,6 +20,7 @@ final class Page extends Model { use HasFactory, HasPageView, + IsAdminResource, SoftDeletes; /** @@ -68,12 +70,6 @@ public function getUrl(): string : route('page.show', $this->slug); } - /** Get the admin URL for the page edit view. */ - public function getUrlEdit(): string - { - return route('admin.page.edit', $this->slug); - } - /** Returns all Page models that should be in the sitemap (in_sitemap = 1). */ public function scopeInSitemap(Builder|QueryBuilder $query): Builder|QueryBuilder { From 25cc8b474fffaadacf8b45d17d341506981917b4 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 14:16:26 +0100 Subject: [PATCH 05/18] Update admin routes to use id instead of slug --- routes/web/admin.php | 4 ++-- tests/Feature/Http/Controllers/Admin/PageControllerTest.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/routes/web/admin.php b/routes/web/admin.php index 5510cd46..31e1ff5f 100644 --- a/routes/web/admin.php +++ b/routes/web/admin.php @@ -16,7 +16,7 @@ Route::prefix('admin')->middleware(['auth', 'verified', 'admin'])->name('admin.')->group(function () { /** PageController Routes */ Route::controller(PageController::class)->group(function () { - Route::get('pages/{page:slug}', 'edit')->name('page.edit'); - Route::patch('pages/{page:slug}', 'update')->name('page.update'); + Route::get('pages/{page}', 'edit')->name('page.edit'); + Route::patch('pages/{page}', 'update')->name('page.update'); }); }); diff --git a/tests/Feature/Http/Controllers/Admin/PageControllerTest.php b/tests/Feature/Http/Controllers/Admin/PageControllerTest.php index c597561e..4965f97c 100644 --- a/tests/Feature/Http/Controllers/Admin/PageControllerTest.php +++ b/tests/Feature/Http/Controllers/Admin/PageControllerTest.php @@ -46,7 +46,7 @@ })->with('pages'); test('edit renders the 404 view for unknown pages', function () { - $url = url('admin/pages/foo'); + $url = url('admin/pages/101'); $user = User::factory()->isAdmin()->create(); $actual = $this->actingAs($user)->get($url); $session = session()->all(); @@ -164,7 +164,7 @@ }); test('update returns a 404 status for unknown pages', function () { - $url = url('admin/pages/foo'); + $url = url('admin/pages/101'); $user = User::factory()->isAdmin()->create(); $actual = $this From 89a49a483f0eb775f11a23ecfc8bd69e9d51d20d Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 14:18:50 +0100 Subject: [PATCH 06/18] Rename getIrlEdit method calls to getUrlAdminEdit --- .../Views/Auth/Summaries/CreateEditSummaryResource.php | 4 ++-- tests/Browser/Pages/Admin/Page/AdminEditPage.php | 2 +- tests/Browser/TestAuth/WebMiddlewareTest.php | 2 +- .../Views/Auth/Summaries/CreateEditSummaryResourceTest.php | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Http/Resources/Views/Auth/Summaries/CreateEditSummaryResource.php b/app/Http/Resources/Views/Auth/Summaries/CreateEditSummaryResource.php index 4241b22d..1f2a340a 100644 --- a/app/Http/Resources/Views/Auth/Summaries/CreateEditSummaryResource.php +++ b/app/Http/Resources/Views/Auth/Summaries/CreateEditSummaryResource.php @@ -10,14 +10,14 @@ final class CreateEditSummaryResource implements PageItemInterface /** * Get the resource as an array. * - * @return array{content: string, title: string, url: string} + * @return array{content: string, title: string, url: string|false} */ public function getItem(Page $page): array { return [ 'content' => $page->getMetaDescription(), 'title' => $page->getTitle(), - 'url' => $page->getUrlEdit(), + 'url' => $page->getUrlAdminEdit(), ]; } } diff --git a/tests/Browser/Pages/Admin/Page/AdminEditPage.php b/tests/Browser/Pages/Admin/Page/AdminEditPage.php index 3d9ca685..adfb4602 100644 --- a/tests/Browser/Pages/Admin/Page/AdminEditPage.php +++ b/tests/Browser/Pages/Admin/Page/AdminEditPage.php @@ -16,7 +16,7 @@ public function __construct( /** Get the URL for the page. */ public function url(): string { - return $this->page->getUrlEdit(); + return $this->page->getUrlAdminEdit() ?: ''; } /** Assert that the browser is on the page. */ diff --git a/tests/Browser/TestAuth/WebMiddlewareTest.php b/tests/Browser/TestAuth/WebMiddlewareTest.php index 9c5395f2..aec9d862 100644 --- a/tests/Browser/TestAuth/WebMiddlewareTest.php +++ b/tests/Browser/TestAuth/WebMiddlewareTest.php @@ -57,7 +57,7 @@ public function testUserMiddleware(): void ->on(new Dashboard($user)) ->screenshotWholePage('dashboard-user-' . str_replace(['@', '.'], '_', $user->email)) - ->visit($page->getUrlEdit()) + ->visit($page->getUrlAdminEdit()) ->assertSee('404') ->assertSee('NOT FOUND') ->screenshotWholePage('cms-user-denied') diff --git a/tests/Unit/App/Http/Resources/Views/Auth/Summaries/CreateEditSummaryResourceTest.php b/tests/Unit/App/Http/Resources/Views/Auth/Summaries/CreateEditSummaryResourceTest.php index 5c568cd2..0e2affd6 100644 --- a/tests/Unit/App/Http/Resources/Views/Auth/Summaries/CreateEditSummaryResourceTest.php +++ b/tests/Unit/App/Http/Resources/Views/Auth/Summaries/CreateEditSummaryResourceTest.php @@ -20,6 +20,6 @@ ->toMatchArray([ 'content' => $page->getMetaDescription(), 'title' => $page->getTitle(), - 'url' => $page->getUrlEdit(), + 'url' => $page->getUrlAdminEdit(), ]); })->with('pages'); From d872349c452011b95e8c5b82db87938403cd660b Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 21:54:49 +0100 Subject: [PATCH 07/18] Refactor PageContentResource to implement a constructor --- .../Public/Content/PageContentResource.php | 21 ++++++++++++------- .../Content/PageContentResourceTest.php | 7 +++---- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/app/Http/Resources/Views/Public/Content/PageContentResource.php b/app/Http/Resources/Views/Public/Content/PageContentResource.php index d0162ca5..3c40f9b6 100644 --- a/app/Http/Resources/Views/Public/Content/PageContentResource.php +++ b/app/Http/Resources/Views/Public/Content/PageContentResource.php @@ -3,13 +3,18 @@ namespace App\Http\Resources\Views\Public\Content; use App\Http\Resources\Views\Public\Blocks\BlocksResource; -use App\Interfaces\Resources\Items\PageItemInterface; +use App\Interfaces\Resources\Items\ConstantItemInterface; use App\Models\Page; -final class PageContentResource implements PageItemInterface +final class PageContentResource implements ConstantItemInterface { + /** Instantiate the resource. */ + public function __construct( + protected Page $page = new Page + ) {} + /** - * Get the content array for the given page's full public resource. + * Get the full public item array for the resource's page. * * @return array{ * blocks: array (new BlocksResource)->getItems($page->blocks), - 'bodytext' => $page->getContent(), - 'heading' => $page->getTitle(), - 'subheading' => $page->getSubtitle(), + 'blocks' => (new BlocksResource)->getItems($this->page->blocks), + 'bodytext' => $this->page->getContent(), + 'heading' => $this->page->getTitle(), + 'subheading' => $this->page->getSubtitle(), ]; } } diff --git a/tests/Unit/App/Http/Resources/Views/Public/Content/PageContentResourceTest.php b/tests/Unit/App/Http/Resources/Views/Public/Content/PageContentResourceTest.php index 455e532b..33814a52 100644 --- a/tests/Unit/App/Http/Resources/Views/Public/Content/PageContentResourceTest.php +++ b/tests/Unit/App/Http/Resources/Views/Public/Content/PageContentResourceTest.php @@ -1,15 +1,14 @@ expect(PageContentResource::class) - ->toImplement(PageItemInterface::class); + ->toImplement(ConstantItemInterface::class); test('getItem returns ok', function () { - $actual = (new PageContentResource)->getItem(new Page); + $actual = (new PageContentResource)->getItem(); expect($actual) ->toHaveCamelCaseKeys() From 3d60073f5bcfe48b0a6ee78f193dc5029af29816 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 21:56:11 +0100 Subject: [PATCH 08/18] Update PageContentResource invokations to pass Page model --- app/Http/Controllers/Public/PageController.php | 2 +- app/Http/Controllers/Public/PrivacyPolicyController.php | 2 +- tests/Feature/Http/Controllers/Public/PageControllerTest.php | 2 +- .../Http/Controllers/Public/PrivacyPolicyControllerTest.php | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Public/PageController.php b/app/Http/Controllers/Public/PageController.php index 008a5c8d..bb6e0e39 100644 --- a/app/Http/Controllers/Public/PageController.php +++ b/app/Http/Controllers/Public/PageController.php @@ -36,7 +36,7 @@ public function show(Page $page): RedirectResponse|Response return (new PublicViewRepository) ->getViewDetails( $template->value, - (new PageContentResource)->getItem($page), + (new PageContentResource($page))->getItem(), (new PageMetadataResource)->getItem($page) ); } diff --git a/app/Http/Controllers/Public/PrivacyPolicyController.php b/app/Http/Controllers/Public/PrivacyPolicyController.php index eb9b5348..b2fab4e4 100644 --- a/app/Http/Controllers/Public/PrivacyPolicyController.php +++ b/app/Http/Controllers/Public/PrivacyPolicyController.php @@ -20,7 +20,7 @@ public function __invoke(): Response return (new PublicViewRepository)->getViewDetails( $template, - (new PageContentResource)->getItem($page), + (new PageContentResource($page))->getItem(), (new PageMetadataResource)->getItem($page) ); } diff --git a/tests/Feature/Http/Controllers/Public/PageControllerTest.php b/tests/Feature/Http/Controllers/Public/PageControllerTest.php index b54e3720..30e48e0c 100644 --- a/tests/Feature/Http/Controllers/Public/PageControllerTest.php +++ b/tests/Feature/Http/Controllers/Public/PageControllerTest.php @@ -30,7 +30,7 @@ expect($headers)->toHaveCorrectHeaderValues(); $data = (new DetailsViewResource)->getItem( - (new PageContentResource)->getItem($page), + (new PageContentResource($page))->getItem(), (new PageMetadataResource)->getItem($page) ); diff --git a/tests/Feature/Http/Controllers/Public/PrivacyPolicyControllerTest.php b/tests/Feature/Http/Controllers/Public/PrivacyPolicyControllerTest.php index 44713b60..5022e617 100644 --- a/tests/Feature/Http/Controllers/Public/PrivacyPolicyControllerTest.php +++ b/tests/Feature/Http/Controllers/Public/PrivacyPolicyControllerTest.php @@ -22,7 +22,7 @@ expect($headers)->toHaveCorrectHeaderValues(); $data = (new DetailsViewResource)->getItem( - (new PageContentResource)->getItem($page), + (new PageContentResource($page))->getItem(), (new PageMetadataResource)->getItem($page) ); @@ -53,7 +53,7 @@ expect($headers)->toHaveCorrectHeaderValues(); $data = (new DetailsViewResource)->getItem( - (new PageContentResource)->getItem($page), + (new PageContentResource($page))->getItem(), (new PageMetadataResource)->getItem($page) ); From 530bfc54fb9adb4413ebad8af4807cc142e1ae21 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 18:24:17 +0100 Subject: [PATCH 09/18] Move scopeInSitemap method to HasPageView trait --- app/Models/Page.php | 9 --------- app/Traits/HasPageView.php | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/Models/Page.php b/app/Models/Page.php index afe28095..08ac2e5d 100644 --- a/app/Models/Page.php +++ b/app/Models/Page.php @@ -11,7 +11,6 @@ use Illuminate\Database\Query\Builder as QueryBuilder; /** - * @method Builder|static inSitemap() * @method Builder|static isHomepage() * @method Builder|static isNotHomepage() * @method static Builder|static query() @@ -70,14 +69,6 @@ public function getUrl(): string : route('page.show', $this->slug); } - /** Returns all Page models that should be in the sitemap (in_sitemap = 1). */ - public function scopeInSitemap(Builder|QueryBuilder $query): Builder|QueryBuilder - { - return $query->where(function ($query) { - $query->where('in_sitemap', 1); - }); - } - /** Return all Page models flagged as the homepage (is_homepage = 1). */ public function scopeIsHomepage(Builder|QueryBuilder $query): Builder|QueryBuilder { diff --git a/app/Traits/HasPageView.php b/app/Traits/HasPageView.php index 06f21e4c..eaa706b1 100644 --- a/app/Traits/HasPageView.php +++ b/app/Traits/HasPageView.php @@ -2,6 +2,13 @@ namespace App\Traits; +use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Query\Builder as QueryBuilder; + +/** + * @method Builder|static inSitemap() + * @method static Builder|static query() + */ trait HasPageView { use HasContentBlocks; @@ -35,4 +42,12 @@ public function isInSitemap(): bool { return $this->in_sitemap ?? false; } + + /** Returns all models that should be in the sitemap (in_sitemap = 1). */ + public function scopeInSitemap(Builder|QueryBuilder $query): Builder|QueryBuilder + { + return $query->where(function ($query) { + $query->where('in_sitemap', 1); + }); + } } From ba53c5d0d3e435497264d43492f9412124757f84 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 18:34:57 +0100 Subject: [PATCH 10/18] Split sitemap items template urlset tag across lines for readability --- resources/views/sitemaps/items.blade.php | 7 ++++++- tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/resources/views/sitemaps/items.blade.php b/resources/views/sitemaps/items.blade.php index 209b8ee0..13422aa6 100644 --- a/resources/views/sitemaps/items.blade.php +++ b/resources/views/sitemaps/items.blade.php @@ -1,5 +1,10 @@ - + @foreach($items as $item) {{ $item['loc'] }} diff --git a/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php b/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php index 2b43bbbb..6a16285e 100644 --- a/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php +++ b/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php @@ -57,7 +57,12 @@ (new TestResponse($this->value)) ->assertSeeInOrder([ '', - '', + '', '', '' . url('/') . '', '' . now()->format('Y-m-d') . '', From 0ff481e157929f475b9afa111d90151b37db3864 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 18:45:57 +0100 Subject: [PATCH 11/18] Fix sitemap templates to work when PHP short tags are enabled --- resources/views/sitemaps/default.blade.php | 2 +- resources/views/sitemaps/items.blade.php | 2 +- tests/Pest/Expectations/ToHaveCorrectXmlSitemapIndex.php | 1 - tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/resources/views/sitemaps/default.blade.php b/resources/views/sitemaps/default.blade.php index 9fb36efb..b84ecaa6 100644 --- a/resources/views/sitemaps/default.blade.php +++ b/resources/views/sitemaps/default.blade.php @@ -1,4 +1,4 @@ - +'; ?> @foreach($items as $sitemap) diff --git a/resources/views/sitemaps/items.blade.php b/resources/views/sitemaps/items.blade.php index 13422aa6..44fefe59 100644 --- a/resources/views/sitemaps/items.blade.php +++ b/resources/views/sitemaps/items.blade.php @@ -1,4 +1,4 @@ - +'; ?> value)) ->assertSeeInOrder([ - '', '', '', '' . url('sitemaps/pages.xml') . '', diff --git a/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php b/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php index 6a16285e..d95e4862 100644 --- a/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php +++ b/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php @@ -56,7 +56,6 @@ (new TestResponse($this->value)) ->assertSeeInOrder([ - '', ' Date: Sat, 6 Jul 2024 18:51:27 +0100 Subject: [PATCH 12/18] Split conditional across lines for readability --- app/Http/Resources/Views/Sitemaps/PageSitemapResource.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php b/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php index 2905f81e..10192e25 100644 --- a/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php +++ b/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php @@ -20,7 +20,9 @@ final class PageSitemapResource implements PageItemInterface public function getItem(Page $page): array { $updated_at = strtotime(strval($page->updated_at)); - $lastmod = $updated_at ? date('Y-m-d', $updated_at) : strval(config('metadata.first_published_year')) . '-01-01'; + $lastmod = $updated_at + ? date('Y-m-d', $updated_at) + : strval(config('metadata.first_published_year')) . '-01-01'; return [ 'loc' => $page->getUrl(), From 1d707583d0c9d1b2e76e3967cc13b50f9ea7e073 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 18:58:07 +0100 Subject: [PATCH 13/18] Refactor PageSitemapResource to implement a constructor --- .../Views/Sitemaps/PageSitemapResource.php | 17 ++++++++++++----- .../Views/Sitemaps/PagesSitemapResource.php | 6 +++--- .../Views/Sitemaps/PageSitemapResourceTest.php | 6 +++--- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php b/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php index 10192e25..ed1302df 100644 --- a/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php +++ b/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php @@ -2,11 +2,18 @@ namespace App\Http\Resources\Views\Sitemaps; -use App\Interfaces\Resources\Items\PageItemInterface; +use App\Interfaces\Resources\Items\ConstantItemInterface; use App\Models\Page; -final class PageSitemapResource implements PageItemInterface +final class PageSitemapResource implements ConstantItemInterface { + /** Instantiate the resource. */ + public function __construct( + protected Page $page = new Page, + protected string $changefreq = 'monthly', + protected string $priority = '0.7' + ) {} + /** * Get the content array for the given page's sitemap item. * @@ -17,15 +24,15 @@ final class PageSitemapResource implements PageItemInterface * priority: float * } */ - public function getItem(Page $page): array + public function getItem(): array { - $updated_at = strtotime(strval($page->updated_at)); + $updated_at = strtotime(strval($this->page->updated_at)); $lastmod = $updated_at ? date('Y-m-d', $updated_at) : strval(config('metadata.first_published_year')) . '-01-01'; return [ - 'loc' => $page->getUrl(), + 'loc' => $this->page->getUrl(), 'lastmod' => $lastmod, 'changefreq' => 'weekly', 'priority' => 0.8, diff --git a/app/Http/Resources/Views/Sitemaps/PagesSitemapResource.php b/app/Http/Resources/Views/Sitemaps/PagesSitemapResource.php index 37a6ca81..4c7aadd9 100644 --- a/app/Http/Resources/Views/Sitemaps/PagesSitemapResource.php +++ b/app/Http/Resources/Views/Sitemaps/PagesSitemapResource.php @@ -23,12 +23,12 @@ public function getItems(): array if (!Page::where([['is_homepage', true], ['in_sitemap', true]])->exists()) { $page = Page::factory()->homePage()->make(['updated_at' => Page::min('updated_at')]); - $static_pages[] = (new PageSitemapResource)->getItem($page); + $static_pages[] = (new PageSitemapResource($page, 'weekly', '1.0'))->getItem(); } if (!Page::where([['slug', 'privacy'], ['in_sitemap', true]])->exists()) { $page = Page::factory()->privacyPage()->make(['updated_at' => Page::min('updated_at')]); - $static_pages[] = (new PageSitemapResource)->getItem($page); + $static_pages[] = (new PageSitemapResource($page, 'yearly', '0.1'))->getItem(); } return array_merge( @@ -36,7 +36,7 @@ public function getItems(): array Page::query() ->inSitemap() ->get() - ->map(fn ($page) => (new PageSitemapResource)->getItem($page)) + ->map(fn ($page) => (new PageSitemapResource($page))->getItem()) ->toArray(), ); } diff --git a/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php b/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php index 25979b3c..9f7618e3 100644 --- a/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php +++ b/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php @@ -1,7 +1,7 @@ expect(PageSitemapResource::class) - ->toImplement(PageItemInterface::class); + ->toImplement(ConstantItemInterface::class); arch('it has a getItem method') ->expect(PageSitemapResource::class) ->toHaveMethod('getItem'); test('getItem returns ok', function () { - $actual = (new PageSitemapResource)->getItem($this->page); + $actual = (new PageSitemapResource($this->page))->getItem(); expect($actual) ->toHaveCamelCaseKeys() From 3f69592cede86096b8a00da22e0776a87b633f48 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 19:03:57 +0100 Subject: [PATCH 14/18] Get values from class properties for PageSitemapResource getItem method --- app/Http/Resources/Views/Sitemaps/PageSitemapResource.php | 6 +++--- .../Resources/Views/Sitemaps/PagesSitemapResource.php | 2 +- app/Repositories/Views/SitemapViewRepository.php | 2 +- tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php | 8 ++++---- .../Resources/Views/Sitemaps/PageSitemapResourceTest.php | 4 ++-- .../Resources/Views/Sitemaps/PagesSitemapResourceTest.php | 6 +++--- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php b/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php index ed1302df..e51ef9db 100644 --- a/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php +++ b/app/Http/Resources/Views/Sitemaps/PageSitemapResource.php @@ -21,7 +21,7 @@ public function __construct( * loc: string, * lastmod: string, * changefreq: string, - * priority: float + * priority: string * } */ public function getItem(): array @@ -34,8 +34,8 @@ public function getItem(): array return [ 'loc' => $this->page->getUrl(), 'lastmod' => $lastmod, - 'changefreq' => 'weekly', - 'priority' => 0.8, + 'changefreq' => $this->changefreq, + 'priority' => $this->priority, ]; } } diff --git a/app/Http/Resources/Views/Sitemaps/PagesSitemapResource.php b/app/Http/Resources/Views/Sitemaps/PagesSitemapResource.php index 4c7aadd9..483e260f 100644 --- a/app/Http/Resources/Views/Sitemaps/PagesSitemapResource.php +++ b/app/Http/Resources/Views/Sitemaps/PagesSitemapResource.php @@ -14,7 +14,7 @@ final class PagesSitemapResource implements ConstantIndexInterface * loc: string, * lastmod: string, * changefreq: string, - * priority: float + * priority: string * }> */ public function getItems(): array diff --git a/app/Repositories/Views/SitemapViewRepository.php b/app/Repositories/Views/SitemapViewRepository.php index 521eb832..ba80fd7e 100644 --- a/app/Repositories/Views/SitemapViewRepository.php +++ b/app/Repositories/Views/SitemapViewRepository.php @@ -13,7 +13,7 @@ final class SitemapViewRepository * loc: string, * lastmod: string, * changefreq: string, - * priority: float + * priority: string * }|string> $items = [] */ public function getView(string $template, array $items = []): View diff --git a/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php b/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php index d95e4862..31d226c1 100644 --- a/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php +++ b/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php @@ -31,7 +31,7 @@ 'loc' => url('/'), 'lastmod' => now()->format('Y-m-d'), 'changefreq' => 'weekly', - 'priority' => 0.8, + 'priority' => '1.0', ]); expect($content[1]) @@ -40,8 +40,8 @@ ->toMatchArray([ 'loc' => url('privacy'), 'lastmod' => now()->format('Y-m-d'), - 'changefreq' => 'weekly', - 'priority' => 0.8, + 'changefreq' => 'yearly', + 'priority' => '0.1', ]); expect($content[2]) @@ -66,7 +66,7 @@ '' . url('/') . '', '' . now()->format('Y-m-d') . '', 'weekly', - '0.8', + '1.0', '', '', ], false); diff --git a/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php b/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php index 9f7618e3..836401d4 100644 --- a/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php +++ b/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php @@ -33,7 +33,7 @@ ->toMatchArray([ 'loc' => url('test-page'), 'lastmod' => now()->format('Y-m-d'), - 'changefreq' => 'weekly', - 'priority' => 0.8, + 'changefreq' => 'monthly', + 'priority' => '0.7', ]); }); diff --git a/tests/Unit/App/Http/Resources/Views/Sitemaps/PagesSitemapResourceTest.php b/tests/Unit/App/Http/Resources/Views/Sitemaps/PagesSitemapResourceTest.php index 554c4fc3..1a69a11f 100644 --- a/tests/Unit/App/Http/Resources/Views/Sitemaps/PagesSitemapResourceTest.php +++ b/tests/Unit/App/Http/Resources/Views/Sitemaps/PagesSitemapResourceTest.php @@ -28,7 +28,7 @@ 'loc' => url('/'), 'lastmod' => strval(config('metadata.first_published_year')) . '-01-01', 'changefreq' => 'weekly', - 'priority' => 0.8, + 'priority' => '1.0', ]); expect($actual[1]) @@ -37,7 +37,7 @@ ->toMatchArray([ 'loc' => url('privacy'), 'lastmod' => strval(config('metadata.first_published_year')) . '-01-01', - 'changefreq' => 'weekly', - 'priority' => 0.8, + 'changefreq' => 'yearly', + 'priority' => '0.1', ]); }); From 035829462acc9a11ee0716356c30aa9a16660721 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 19:05:09 +0100 Subject: [PATCH 15/18] Only check 3rd content array item if it exists --- .../ToHaveCorrectXmlSitemapPages.php | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php b/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php index 31d226c1..640b9db4 100644 --- a/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php +++ b/tests/Pest/Expectations/ToHaveCorrectXmlSitemapPages.php @@ -21,8 +21,7 @@ ->toBeString(); expect($content) - ->toBeArray() - ->toHaveCount(3); + ->toBeArray(); expect($content[0]) ->toHaveCamelCaseKeys() @@ -44,15 +43,13 @@ 'priority' => '0.1', ]); - expect($content[2]) - ->toHaveCamelCaseKeys() - ->toHaveCount(4) - ->toMatchArray([ - 'loc' => url('/test-page'), - 'lastmod' => now()->format('Y-m-d'), - 'changefreq' => 'weekly', - 'priority' => 0.8, - ]); + if ($content[2] ?? false) { + expect($content[2]) + ->toHaveCamelCaseKeys() + ->toHaveCount(4) + ->changefreq->toEqual('monthly') + ->priority->toEqual('0.7'); + } (new TestResponse($this->value)) ->assertSeeInOrder([ From 14800c089838e7624b5228376855f219b8a12e45 Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 19:05:55 +0100 Subject: [PATCH 16/18] Remove redundant arch tests --- .../Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php | 4 ---- .../Resources/Views/Sitemaps/PagesSitemapResourceTest.php | 4 ---- 2 files changed, 8 deletions(-) diff --git a/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php b/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php index 836401d4..21416a1c 100644 --- a/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php +++ b/tests/Unit/App/Http/Resources/Views/Sitemaps/PageSitemapResourceTest.php @@ -20,10 +20,6 @@ ->expect(PageSitemapResource::class) ->toImplement(ConstantItemInterface::class); -arch('it has a getItem method') - ->expect(PageSitemapResource::class) - ->toHaveMethod('getItem'); - test('getItem returns ok', function () { $actual = (new PageSitemapResource($this->page))->getItem(); diff --git a/tests/Unit/App/Http/Resources/Views/Sitemaps/PagesSitemapResourceTest.php b/tests/Unit/App/Http/Resources/Views/Sitemaps/PagesSitemapResourceTest.php index 1a69a11f..298f0083 100644 --- a/tests/Unit/App/Http/Resources/Views/Sitemaps/PagesSitemapResourceTest.php +++ b/tests/Unit/App/Http/Resources/Views/Sitemaps/PagesSitemapResourceTest.php @@ -10,10 +10,6 @@ ->expect(PagesSitemapResource::class) ->toImplement(ConstantIndexInterface::class); -arch('it has a getItems method') - ->expect(PagesSitemapResource::class) - ->toHaveMethod('getItems'); - test('getItems returns ok', function () { $actual = (new PagesSitemapResource)->getItems(); From 7406b4c92f73f220cf5345969b062622dfd07ecf Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 19:32:38 +0100 Subject: [PATCH 17/18] Bump Composer dependencies --- composer.json | 4 +- composer.lock | 191 +++++++++++++++++++++++++------------------------- 2 files changed, 98 insertions(+), 97 deletions(-) diff --git a/composer.json b/composer.json index 5a88553a..5792325c 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "php": "8.2.*||8.3.*", "guzzlehttp/guzzle": "^7.8.1", "inertiajs/inertia-laravel": "^1.3", - "laravel/framework": "^11.11", + "laravel/framework": "^11.14", "laravel/tinker": "^2.9.0", "tightenco/ziggy": "^1.8.2" }, @@ -25,7 +25,7 @@ "larastan/larastan": "^2.9", "laravel/dusk": "^8.2", "laravel/pint": "^1.16", - "laravel/sail": "^1.29", + "laravel/sail": "^1.30", "mockery/mockery": "^1.6", "nunomaduro/collision": "^8.1.1", "pestphp/pest": "^2.34", diff --git a/composer.lock b/composer.lock index f056bf51..ca4264f1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "98ac07ecdab4071cc5dada8d711749ae", + "content-hash": "f1b2e6eb4e313eb94cfcd926eda3fc60", "packages": [ { "name": "brick/math", @@ -1128,16 +1128,16 @@ }, { "name": "laravel/framework", - "version": "v11.11.1", + "version": "v11.14.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "c9b52e84bd18f155e5ba59b948c7da3e7f37e87f" + "reference": "657e8464e13147d56bc3a399115c8c26f38d4821" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/c9b52e84bd18f155e5ba59b948c7da3e7f37e87f", - "reference": "c9b52e84bd18f155e5ba59b948c7da3e7f37e87f", + "url": "https://api.github.com/repos/laravel/framework/zipball/657e8464e13147d56bc3a399115c8c26f38d4821", + "reference": "657e8464e13147d56bc3a399115c8c26f38d4821", "shasum": "" }, "require": { @@ -1190,6 +1190,7 @@ }, "provide": { "psr/container-implementation": "1.1|2.0", + "psr/log-implementation": "1.0|2.0|3.0", "psr/simple-cache-implementation": "1.0|2.0|3.0" }, "replace": { @@ -1329,7 +1330,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-06-20T10:54:53+00:00" + "time": "2024-07-02T17:23:58+00:00" }, { "name": "laravel/prompts", @@ -1893,16 +1894,16 @@ }, { "name": "monolog/monolog", - "version": "3.6.0", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654" + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", - "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8", + "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8", "shasum": "" }, "require": { @@ -1978,7 +1979,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.6.0" + "source": "https://github.com/Seldaek/monolog/tree/3.7.0" }, "funding": [ { @@ -1990,20 +1991,20 @@ "type": "tidelift" } ], - "time": "2024-04-12T21:02:21+00:00" + "time": "2024-06-28T09:40:51+00:00" }, { "name": "nesbot/carbon", - "version": "3.5.0", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "415782b7e48223342f1a616c16c45a95b15b2318" + "reference": "39c8ef752db6865717cc3fba63970c16f057982c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/415782b7e48223342f1a616c16c45a95b15b2318", - "reference": "415782b7e48223342f1a616c16c45a95b15b2318", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/39c8ef752db6865717cc3fba63970c16f057982c", + "reference": "39c8ef752db6865717cc3fba63970c16f057982c", "shasum": "" }, "require": { @@ -2096,7 +2097,7 @@ "type": "tidelift" } ], - "time": "2024-06-03T17:25:54+00:00" + "time": "2024-06-20T15:52:59+00:00" }, { "name": "nette/schema", @@ -2248,16 +2249,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.0.2", + "version": "v5.1.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13" + "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13", - "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/683130c2ff8c2739f4822ff7ac5c873ec529abd1", + "reference": "683130c2ff8c2739f4822ff7ac5c873ec529abd1", "shasum": "" }, "require": { @@ -2268,7 +2269,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -2300,9 +2301,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.1.0" }, - "time": "2024-03-05T20:51:40+00:00" + "time": "2024-07-01T20:03:41+00:00" }, { "name": "nunomaduro/termwind", @@ -3259,16 +3260,16 @@ }, { "name": "symfony/console", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3" + "reference": "0aa29ca177f432ab68533432db0de059f39c92ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9b008f2d7b21c74ef4d0c3de6077a642bc55ece3", - "reference": "9b008f2d7b21c74ef4d0c3de6077a642bc55ece3", + "url": "https://api.github.com/repos/symfony/console/zipball/0aa29ca177f432ab68533432db0de059f39c92ae", + "reference": "0aa29ca177f432ab68533432db0de059f39c92ae", "shasum": "" }, "require": { @@ -3332,7 +3333,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.1" + "source": "https://github.com/symfony/console/tree/v7.1.2" }, "funding": [ { @@ -3348,7 +3349,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T10:03:55+00:00" }, { "name": "symfony/css-selector", @@ -3484,16 +3485,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "e9b8bbce0b4f322939332ab7b6b81d8c11da27dd" + "reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/e9b8bbce0b4f322939332ab7b6b81d8c11da27dd", - "reference": "e9b8bbce0b4f322939332ab7b6b81d8c11da27dd", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/2412d3dddb5c9ea51a39cfbff1c565fc9844ca32", + "reference": "2412d3dddb5c9ea51a39cfbff1c565fc9844ca32", "shasum": "" }, "require": { @@ -3539,7 +3540,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.1.1" + "source": "https://github.com/symfony/error-handler/tree/v7.1.2" }, "funding": [ { @@ -3555,7 +3556,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-25T19:55:06+00:00" }, { "name": "symfony/event-dispatcher", @@ -3856,16 +3857,16 @@ }, { "name": "symfony/http-kernel", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "fa8d1c75b5f33b1302afccf81811f93976c6e26f" + "reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fa8d1c75b5f33b1302afccf81811f93976c6e26f", - "reference": "fa8d1c75b5f33b1302afccf81811f93976c6e26f", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6", + "reference": "ae3fa717db4d41a55d14c2bd92399e37cf5bc0f6", "shasum": "" }, "require": { @@ -3950,7 +3951,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.1.1" + "source": "https://github.com/symfony/http-kernel/tree/v7.1.2" }, "funding": [ { @@ -3966,20 +3967,20 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:52:15+00:00" + "time": "2024-06-28T13:13:31+00:00" }, { "name": "symfony/mailer", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "2eaad2e167cae930f25a3d731fec8b2ded5e751e" + "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/2eaad2e167cae930f25a3d731fec8b2ded5e751e", - "reference": "2eaad2e167cae930f25a3d731fec8b2ded5e751e", + "url": "https://api.github.com/repos/symfony/mailer/zipball/8fcff0af9043c8f8a8e229437cea363e282f9aee", + "reference": "8fcff0af9043c8f8a8e229437cea363e282f9aee", "shasum": "" }, "require": { @@ -4030,7 +4031,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.1.1" + "source": "https://github.com/symfony/mailer/tree/v7.1.2" }, "funding": [ { @@ -4046,20 +4047,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T08:00:31+00:00" }, { "name": "symfony/mime", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "21027eaacc1a8a20f5e616c25c3580f5dd3a15df" + "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/21027eaacc1a8a20f5e616c25c3580f5dd3a15df", - "reference": "21027eaacc1a8a20f5e616c25c3580f5dd3a15df", + "url": "https://api.github.com/repos/symfony/mime/zipball/26a00b85477e69a4bab63b66c5dce64f18b0cbfc", + "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc", "shasum": "" }, "require": { @@ -4114,7 +4115,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.1" + "source": "https://github.com/symfony/mime/tree/v7.1.2" }, "funding": [ { @@ -4130,7 +4131,7 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:40:14+00:00" + "time": "2024-06-28T10:03:55+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5069,16 +5070,16 @@ }, { "name": "symfony/string", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "60bc311c74e0af215101235aa6f471bcbc032df2" + "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/60bc311c74e0af215101235aa6f471bcbc032df2", - "reference": "60bc311c74e0af215101235aa6f471bcbc032df2", + "url": "https://api.github.com/repos/symfony/string/zipball/14221089ac66cf82e3cf3d1c1da65de305587ff8", + "reference": "14221089ac66cf82e3cf3d1c1da65de305587ff8", "shasum": "" }, "require": { @@ -5136,7 +5137,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.1" + "source": "https://github.com/symfony/string/tree/v7.1.2" }, "funding": [ { @@ -5152,7 +5153,7 @@ "type": "tidelift" } ], - "time": "2024-06-04T06:40:14+00:00" + "time": "2024-06-28T09:27:18+00:00" }, { "name": "symfony/translation", @@ -5402,16 +5403,16 @@ }, { "name": "symfony/var-dumper", - "version": "v7.1.1", + "version": "v7.1.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "deb2c2b506ff6fdbb340e00b34e9901e1605f293" + "reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/deb2c2b506ff6fdbb340e00b34e9901e1605f293", - "reference": "deb2c2b506ff6fdbb340e00b34e9901e1605f293", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5857c57c6b4b86524c08cf4f4bc95327270a816d", + "reference": "5857c57c6b4b86524c08cf4f4bc95327270a816d", "shasum": "" }, "require": { @@ -5465,7 +5466,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.1" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.2" }, "funding": [ { @@ -5481,7 +5482,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-06-28T08:00:31+00:00" }, { "name": "tightenco/ziggy", @@ -6319,16 +6320,16 @@ }, { "name": "larastan/larastan", - "version": "v2.9.7", + "version": "v2.9.8", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "5c805f636095cc2e0b659e3954775cf8f1dad1bb" + "reference": "340badd89b0eb5bddbc503a4829c08cf9a2819d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/5c805f636095cc2e0b659e3954775cf8f1dad1bb", - "reference": "5c805f636095cc2e0b659e3954775cf8f1dad1bb", + "url": "https://api.github.com/repos/larastan/larastan/zipball/340badd89b0eb5bddbc503a4829c08cf9a2819d7", + "reference": "340badd89b0eb5bddbc503a4829c08cf9a2819d7", "shasum": "" }, "require": { @@ -6342,7 +6343,7 @@ "illuminate/support": "^9.52.16 || ^10.28.0 || ^11.0", "php": "^8.0.2", "phpmyadmin/sql-parser": "^5.9.0", - "phpstan/phpstan": "^1.11.1" + "phpstan/phpstan": "^1.11.2" }, "require-dev": { "doctrine/coding-standard": "^12.0", @@ -6397,7 +6398,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v2.9.7" + "source": "https://github.com/larastan/larastan/tree/v2.9.8" }, "funding": [ { @@ -6417,7 +6418,7 @@ "type": "patreon" } ], - "time": "2024-05-27T18:33:26+00:00" + "time": "2024-07-06T17:46:02+00:00" }, { "name": "laravel/dusk", @@ -6559,16 +6560,16 @@ }, { "name": "laravel/sail", - "version": "v1.29.3", + "version": "v1.30.1", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "e35b3ffe1b9ea598246d7e99197ee8799f6dc2e5" + "reference": "8ba049b6c06e0330b6aa1fb7af2746fb4da445e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/e35b3ffe1b9ea598246d7e99197ee8799f6dc2e5", - "reference": "e35b3ffe1b9ea598246d7e99197ee8799f6dc2e5", + "url": "https://api.github.com/repos/laravel/sail/zipball/8ba049b6c06e0330b6aa1fb7af2746fb4da445e4", + "reference": "8ba049b6c06e0330b6aa1fb7af2746fb4da445e4", "shasum": "" }, "require": { @@ -6618,7 +6619,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-06-12T16:24:41+00:00" + "time": "2024-07-01T20:55:03+00:00" }, { "name": "mockery/mockery", @@ -7679,16 +7680,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.5", + "version": "1.11.7", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "490f0ae1c92b082f154681d7849aee776a7c1443" + "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/490f0ae1c92b082f154681d7849aee776a7c1443", - "reference": "490f0ae1c92b082f154681d7849aee776a7c1443", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/52d2bbfdcae7f895915629e4694e9497d0f8e28d", + "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d", "shasum": "" }, "require": { @@ -7733,20 +7734,20 @@ "type": "github" } ], - "time": "2024-06-17T15:10:54+00:00" + "time": "2024-07-06T11:17:41+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.14", + "version": "10.1.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" + "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", - "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", + "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", "shasum": "" }, "require": { @@ -7803,7 +7804,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" }, "funding": [ { @@ -7811,7 +7812,7 @@ "type": "github" } ], - "time": "2024-03-12T15:33:41+00:00" + "time": "2024-06-29T08:25:15+00:00" }, { "name": "phpunit/php-file-iterator", @@ -9138,16 +9139,16 @@ }, { "name": "spatie/error-solutions", - "version": "1.0.0", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/spatie/error-solutions.git", - "reference": "202108314a6988ede156fba1b3ea80a784c1734a" + "reference": "264a7eef892aceb2fd65e206127ad3af4f3a2d6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/error-solutions/zipball/202108314a6988ede156fba1b3ea80a784c1734a", - "reference": "202108314a6988ede156fba1b3ea80a784c1734a", + "url": "https://api.github.com/repos/spatie/error-solutions/zipball/264a7eef892aceb2fd65e206127ad3af4f3a2d6b", + "reference": "264a7eef892aceb2fd65e206127ad3af4f3a2d6b", "shasum": "" }, "require": { @@ -9200,7 +9201,7 @@ ], "support": { "issues": "https://github.com/spatie/error-solutions/issues", - "source": "https://github.com/spatie/error-solutions/tree/1.0.0" + "source": "https://github.com/spatie/error-solutions/tree/1.0.4" }, "funding": [ { @@ -9208,7 +9209,7 @@ "type": "github" } ], - "time": "2024-06-12T14:49:54+00:00" + "time": "2024-06-28T13:33:04+00:00" }, { "name": "spatie/flare-client-php", From 60a8160f1f4d432fd9bb617e33c4492593a572fc Mon Sep 17 00:00:00 2001 From: Graham Aitken Date: Sat, 6 Jul 2024 19:32:57 +0100 Subject: [PATCH 18/18] Bump Node dependencies --- package-lock.json | 169 +++++++++++++++++++++++----------------------- package.json | 12 ++-- 2 files changed, 89 insertions(+), 92 deletions(-) diff --git a/package-lock.json b/package-lock.json index f7e5820f..cea410cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,18 +14,18 @@ "@inertiajs/vue3": "^1.2.0", "@tailwindcss/forms": "^0.5.7", "@vitejs/plugin-vue": "5.0.5", - "@vue/server-renderer": "^3.4.29", + "@vue/server-renderer": "^3.4.31", "autoprefixer": "^10.4.19", "axios": "^1.7.2", "eslint": "^8.57.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-promise": "^6.2.0", - "eslint-plugin-vue": "^9.26.0", + "eslint-plugin-promise": "^6.4.0", + "eslint-plugin-vue": "^9.27.0", "laravel-vite-plugin": "^1.0.4", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "tailwindcss": "^3.4.4", - "vite": "^5.3.1", - "vue": "^3.4.29" + "vite": "^5.3.3", + "vue": "^3.4.31" }, "engines": { "node": ">=20.9.0", @@ -1625,36 +1625,36 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", - "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.29", + "@vue/shared": "3.4.31", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", - "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", "dependencies": { - "@vue/compiler-core": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", - "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.31.tgz", + "integrity": "sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==", "dependencies": { "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.29", - "@vue/compiler-dom": "3.4.29", - "@vue/compiler-ssr": "3.4.29", - "@vue/shared": "3.4.29", + "@vue/compiler-core": "3.4.31", + "@vue/compiler-dom": "3.4.31", + "@vue/compiler-ssr": "3.4.31", + "@vue/shared": "3.4.31", "estree-walker": "^2.0.2", "magic-string": "^0.30.10", "postcss": "^8.4.38", @@ -1662,58 +1662,58 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", - "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.31.tgz", + "integrity": "sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==", "dependencies": { - "@vue/compiler-dom": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/compiler-dom": "3.4.31", + "@vue/shared": "3.4.31" } }, "node_modules/@vue/reactivity": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", - "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.31.tgz", + "integrity": "sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==", "dependencies": { - "@vue/shared": "3.4.29" + "@vue/shared": "3.4.31" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", - "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.31.tgz", + "integrity": "sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==", "dependencies": { - "@vue/reactivity": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/reactivity": "3.4.31", + "@vue/shared": "3.4.31" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", - "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.31.tgz", + "integrity": "sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==", "dependencies": { - "@vue/reactivity": "3.4.29", - "@vue/runtime-core": "3.4.29", - "@vue/shared": "3.4.29", + "@vue/reactivity": "3.4.31", + "@vue/runtime-core": "3.4.31", + "@vue/shared": "3.4.31", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", - "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.31.tgz", + "integrity": "sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==", "dependencies": { - "@vue/compiler-ssr": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/compiler-ssr": "3.4.31", + "@vue/shared": "3.4.31" }, "peerDependencies": { - "vue": "3.4.29" + "vue": "3.4.31" } }, "node_modules/@vue/shared": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", - "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==" }, "node_modules/@vueuse/components": { "version": "10.11.0", @@ -3290,9 +3290,9 @@ } }, "node_modules/eslint-plugin-promise": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz", - "integrity": "sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.4.0.tgz", + "integrity": "sha512-/KWWRaD3fGkVCZsdR0RU53PSthFmoHVhZl+y9+6DqeDLSikLdlUVpVEAmI6iCRR5QyOjBYBqHZV/bdv4DJ4Gtw==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3305,9 +3305,9 @@ } }, "node_modules/eslint-plugin-vue": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz", - "integrity": "sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==", + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz", + "integrity": "sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", @@ -3316,7 +3316,7 @@ "nth-check": "^2.1.1", "postcss-selector-parser": "^6.0.15", "semver": "^7.6.0", - "vue-eslint-parser": "^9.4.2", + "vue-eslint-parser": "^9.4.3", "xml-name-validator": "^4.0.0" }, "engines": { @@ -5006,9 +5006,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -5051,9 +5051,9 @@ } }, "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "funding": [ { "type": "opencollective", @@ -5070,7 +5070,7 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -6172,13 +6172,13 @@ "integrity": "sha512-z2YZusTFC6KnLERx1cgoIRX2CjPRP0W75N+3CC6gbvdX5Ch47rZkEMGO2Xnf+IEmi3RiFLxS18gayMA27iU7Kg==" }, "node_modules/vite": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", - "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", "dev": true, "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "rollup": "^4.13.0" }, "bin": { @@ -6237,15 +6237,15 @@ } }, "node_modules/vue": { - "version": "3.4.29", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", - "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.31.tgz", + "integrity": "sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==", "dependencies": { - "@vue/compiler-dom": "3.4.29", - "@vue/compiler-sfc": "3.4.29", - "@vue/runtime-dom": "3.4.29", - "@vue/server-renderer": "3.4.29", - "@vue/shared": "3.4.29" + "@vue/compiler-dom": "3.4.31", + "@vue/compiler-sfc": "3.4.31", + "@vue/runtime-dom": "3.4.31", + "@vue/server-renderer": "3.4.31", + "@vue/shared": "3.4.31" }, "peerDependencies": { "typescript": "*" @@ -6257,9 +6257,9 @@ } }, "node_modules/vue-eslint-parser": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz", - "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -6281,13 +6281,10 @@ } }, "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, diff --git a/package.json b/package.json index 7369db2e..ac481c12 100644 --- a/package.json +++ b/package.json @@ -14,18 +14,18 @@ "@inertiajs/vue3": "^1.2.0", "@tailwindcss/forms": "^0.5.7", "@vitejs/plugin-vue": "5.0.5", - "@vue/server-renderer": "^3.4.29", + "@vue/server-renderer": "^3.4.31", "autoprefixer": "^10.4.19", "axios": "^1.7.2", "eslint": "^8.57.0", "eslint-config-standard": "^17.1.0", - "eslint-plugin-promise": "^6.2.0", - "eslint-plugin-vue": "^9.26.0", + "eslint-plugin-promise": "^6.4.0", + "eslint-plugin-vue": "^9.27.0", "laravel-vite-plugin": "^1.0.4", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "tailwindcss": "^3.4.4", - "vite": "^5.3.1", - "vue": "^3.4.29" + "vite": "^5.3.3", + "vue": "^3.4.31" }, "dependencies": { "@ckeditor/ckeditor5-build-classic": "^41.4.2",