From bc47f78c62a56d7422f1b9c6d15dc7d771eeb42b Mon Sep 17 00:00:00 2001 From: Sebastian Fix Date: Thu, 30 Oct 2025 01:41:42 +0100 Subject: [PATCH 1/3] WIP --- app/Actions/ViewDataAction.php | 4 +- app/Enums/ContactSectionEnum.php | 6 +- config/seeder.php | 8 - .../Codebar/ConfigurationsTableSeeder.php | 10 +- .../seeders/Codebar/ContactsTableSeeder.php | 128 ++++++++++-- database/seeders/Codebar/NewsTableSeeder.php | 63 +++++- .../seeders/Codebar/OpenSourceTableSeeder.php | 22 +- .../ProductsTableSeeder.php | 2 +- .../RolesAndPermissionsSeeder.php | 2 +- .../ServicesTableSeeder.php | 2 +- database/seeders/CodebarSeeder.php | 21 +- database/seeders/DatabaseSeeder.php | 31 ++- .../Paperflakes/ConfigurationsTableSeeder.php | 40 ---- .../Paperflakes/ContactsTableSeeder.php | 195 ------------------ .../seeders/Paperflakes/NewsTableSeeder.php | 75 ------- database/seeders/PaperflakesSeeder.php | 34 --- resources/views/app/about-us/index.blade.php | 46 ++++- .../app/contact/_partials/_codebar.blade.php | 52 ----- .../contact/_partials/_paperflakes.blade.php | 52 ----- resources/views/app/contact/index.blade.php | 55 ++++- resources/views/app/services/index.blade.php | 5 +- 21 files changed, 314 insertions(+), 539 deletions(-) delete mode 100644 config/seeder.php rename database/seeders/{Paperflakes => Codebar}/ProductsTableSeeder.php (98%) rename database/seeders/{Paperflakes => Codebar}/RolesAndPermissionsSeeder.php (94%) rename database/seeders/{Paperflakes => Codebar}/ServicesTableSeeder.php (98%) delete mode 100644 database/seeders/Paperflakes/ConfigurationsTableSeeder.php delete mode 100644 database/seeders/Paperflakes/ContactsTableSeeder.php delete mode 100644 database/seeders/Paperflakes/NewsTableSeeder.php delete mode 100644 database/seeders/PaperflakesSeeder.php delete mode 100644 resources/views/app/contact/_partials/_codebar.blade.php delete mode 100644 resources/views/app/contact/_partials/_paperflakes.blade.php diff --git a/app/Actions/ViewDataAction.php b/app/Actions/ViewDataAction.php index 403b1ad..e61e364 100644 --- a/app/Actions/ViewDataAction.php +++ b/app/Actions/ViewDataAction.php @@ -82,7 +82,9 @@ public function contacts(string $locale): object ->get(); return (object) collect([ - ContactSectionEnum::EMPLOYEES, + ContactSectionEnum::SOFTWARE_ENGINERING, + ContactSectionEnum::DIGITAL_TRANSFORMATION, + ContactSectionEnum::SCANNING, ContactSectionEnum::COLLABORATIONS, ContactSectionEnum::BOARD_MEMBERS, ])->mapWithKeys(function (string $section) use ($publishedContacts, $locale): array { diff --git a/app/Enums/ContactSectionEnum.php b/app/Enums/ContactSectionEnum.php index c3fdfc2..46eb2cd 100644 --- a/app/Enums/ContactSectionEnum.php +++ b/app/Enums/ContactSectionEnum.php @@ -4,7 +4,11 @@ enum ContactSectionEnum: string { - const string EMPLOYEES = 'employees'; + const string SOFTWARE_ENGINERING = 'software_engineering'; + + const string DIGITAL_TRANSFORMATION = 'digital_transformation'; + + const string SCANNING = 'scanning'; const string COLLABORATIONS = 'collaborations'; diff --git a/config/seeder.php b/config/seeder.php deleted file mode 100644 index 907587c..0000000 --- a/config/seeder.php +++ /dev/null @@ -1,8 +0,0 @@ - [ - 'paperflakes' => env('SEEDER_PAPERFLAKES', false), - 'codebar' => env('SEEDER_CODEBAR', false), - ], -]; diff --git a/database/seeders/Codebar/ConfigurationsTableSeeder.php b/database/seeders/Codebar/ConfigurationsTableSeeder.php index cf442f0..8b87b95 100644 --- a/database/seeders/Codebar/ConfigurationsTableSeeder.php +++ b/database/seeders/Codebar/ConfigurationsTableSeeder.php @@ -23,11 +23,11 @@ public function run(): void LocaleEnum::EN->value => file_get_contents(database_path('files/intro/codebar_intro_en.md')), ], - 'section_news' => false, - 'section_services' => false, - 'section_products' => false, - 'section_technologies' => false, - 'section_open_source' => false, + 'section_news' => true, + 'section_services' => true, + 'section_products' => true, + 'section_technologies' => true, + 'section_open_source' => true, 'key' => '_codebar', diff --git a/database/seeders/Codebar/ContactsTableSeeder.php b/database/seeders/Codebar/ContactsTableSeeder.php index 5199959..15f8cd7 100644 --- a/database/seeders/Codebar/ContactsTableSeeder.php +++ b/database/seeders/Codebar/ContactsTableSeeder.php @@ -16,13 +16,20 @@ public function run(): void 'name' => 'Sebastian Bürgin-Fix', 'published' => true, 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, + ContactSectionEnum::SOFTWARE_ENGINERING => [ + 'key' => ContactSectionEnum::SOFTWARE_ENGINERING, 'role' => [ 'de_CH' => 'Software-Architekt', 'en_CH' => 'Software-Engineer', ], ], + ContactSectionEnum::DIGITAL_TRANSFORMATION => [ + 'key' => ContactSectionEnum::DIGITAL_TRANSFORMATION, + 'role' => [ + 'de_CH' => 'DMS/ECM-Architekt', + 'en_CH' => 'DMS/ECM-Engineer', + ], + ], ContactSectionEnum::BOARD_MEMBERS => [ 'key' => ContactSectionEnum::BOARD_MEMBERS, ], @@ -41,8 +48,8 @@ public function run(): void 'name' => 'Melanie Bürgin-Fix', 'published' => true, 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, + ContactSectionEnum::DIGITAL_TRANSFORMATION => [ + 'key' => ContactSectionEnum::DIGITAL_TRANSFORMATION, 'role' => [ 'de_CH' => 'Projektleiterin', 'en_CH' => 'Project Manager', @@ -66,8 +73,8 @@ public function run(): void 'name' => 'Tobias Brogle', 'published' => true, 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, + ContactSectionEnum::SOFTWARE_ENGINERING => [ + 'key' => ContactSectionEnum::SOFTWARE_ENGINERING, 'role' => [ 'de_CH' => 'Applikationsentwickler', 'en_CH' => 'Application Developer', @@ -88,8 +95,8 @@ public function run(): void 'name' => 'Alexander Christoph Boll', 'published' => true, 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, + ContactSectionEnum::DIGITAL_TRANSFORMATION => [ + 'key' => ContactSectionEnum::DIGITAL_TRANSFORMATION, 'role' => [ 'de_CH' => 'Produkt- und Innovationsmanagement', 'en_CH' => 'Product and Innovation Management', @@ -110,8 +117,8 @@ public function run(): void 'name' => 'Faissal Wahabali', 'published' => true, 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, + ContactSectionEnum::SOFTWARE_ENGINERING => [ + 'key' => ContactSectionEnum::SOFTWARE_ENGINERING, 'role' => [ 'de_CH' => 'Applikationsentwickler', 'en_CH' => 'Application Developer', @@ -129,22 +136,22 @@ public function run(): void Contact::updateOrCreate( ['id' => 6], [ - 'name' => 'PST GmbH', - 'published' => false, + 'name' => 'Sarah Fässler', + 'published' => true, 'sections' => [ ContactSectionEnum::COLLABORATIONS => [ 'key' => ContactSectionEnum::COLLABORATIONS, 'role' => [ - 'de_CH' => 'Finanzen', - 'en_CH' => 'Finance', + 'de_CH' => 'PST GmbH', + 'en_CH' => 'PST GmbH', ], ], ], 'icons' => [ - 'email' => 'info@pstgmbh.ch', + 'email' => 'sarah.faessler@pstgmbh.ch', 'website' => 'https://www.pstgmbh.ch', ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/codebar.webp', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,f_auto,q_auto/www-codebar-ch/contacts/pst_gmbh.webp', ] ); @@ -154,8 +161,8 @@ public function run(): void 'name' => 'Julian Leipert', 'published' => true, 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, + ContactSectionEnum::SOFTWARE_ENGINERING => [ + 'key' => ContactSectionEnum::SOFTWARE_ENGINERING, 'role' => [ 'de_CH' => 'Applikationsentwickler', 'en_CH' => 'Application Developer', @@ -170,5 +177,90 @@ public function run(): void ] ); + Contact::updateOrCreate( + ['id' => 8], + [ + 'name' => 'Dario Wieland', + 'published' => true, + 'sections' => [ + ContactSectionEnum::COLLABORATIONS => [ + 'key' => ContactSectionEnum::COLLABORATIONS, + 'role' => [ + 'de_CH' => 'Wieland Business Solutions GmbH', + 'en_CH' => 'Wieland Business Solutions GmbH', + ], + ], + ], + 'icons' => [ + 'email' => 'wieland@business-solutions.gmbh', + 'website' => 'https://www.business-solutions.gmbh', + ], + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/wds.jpg', + ] + ); + + Contact::updateOrCreate( + ['id' => 9], + [ + 'name' => 'DR-G2110', + 'published' => true, + 'sections' => [ + ContactSectionEnum::SCANNING => [ + 'key' => ContactSectionEnum::SCANNING, + 'role' => [ + 'de_CH' => 'Digitalisierungs-Beauftragter', + 'en_CH' => 'Head of Digital Transformation', + ], + ], + ], + 'icons' => [], + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/drg_e_background_removal_f_png.webp', + ] + ); + + Contact::updateOrCreate( + ['id' => 10], + [ + 'name' => 'Mischa Lanz', + 'published' => true, + 'sections' => [ + ContactSectionEnum::SCANNING => [ + 'key' => ContactSectionEnum::SCANNING, + 'role' => [ + 'de_CH' => 'zunscan.ch', + 'en_CH' => 'zunscan.ch', + ], + ], + ], + 'icons' => [ + 'email' => 'mischa.lanz@codebar.ch', + 'linkedin' => 'https://www.linkedin.com/in/mischa-lanz-672a65112', + ], + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/6528f7c6bddf8430fb5d154c_Mischa_Hemd.webp', + ] + ); + + Contact::updateOrCreate( + ['id' => 11], + [ + 'name' => 'Dominique Ernst', + 'published' => true, + 'sections' => [ + ContactSectionEnum::DIGITAL_TRANSFORMATION => [ + 'key' => ContactSectionEnum::DIGITAL_TRANSFORMATION, + 'role' => [ + 'de_CH' => 'DMS/ECM Berater', + 'en_CH' => 'DMS/ECM Consultant', + ], + ], + ], + 'icons' => [ + 'email' => 'dominique.ernst@codebar.ch', + 'linkedin' => 'https://www.linkedin.com/in/dominique-ernst', + ], + 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/ujywqubl5rkkm5hjqjsa_e_background_removal_f_png.webp', + ] + ); + } } diff --git a/database/seeders/Codebar/NewsTableSeeder.php b/database/seeders/Codebar/NewsTableSeeder.php index 38ec9c2..a9bbcc2 100644 --- a/database/seeders/Codebar/NewsTableSeeder.php +++ b/database/seeders/Codebar/NewsTableSeeder.php @@ -17,7 +17,31 @@ public function run(): void { $this->seed( - publishedAt: Carbon::parse('2025-04-06'), + publishedAt: null, + author: 'Sebastian Bürgin-Fix', + localizedData: [ + 'de_CH' => [ + 'title' => 'DocuWare 7.13 ist da', + 'slug' => 'docuware-7-13-ist-da', + 'teaser' => 'Mehr Automatisierung, mehr Insights, mehr Effizienz', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => file_get_contents(database_path('files/news/de_CH/20250406_docuware_712.md')), + 'tags' => ['DMS/ECM', 'DocuWare'], + ], + 'en_CH' => [ + 'title' => 'DocuWare 7.13 is here', + 'slug' => 'docuware-7-13-is-here', + 'teaser' => 'More automation, more insights, more efficiency', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => file_get_contents(database_path('files/news/en_CH/20250406_docuware_712.md')), + 'tags' => ['DMS/ECM', 'DocuWare'], + + ], + ] + ); + + $this->seed( + publishedAt: Carbon::parse('2021-01-01'), author: 'Sebastian Bürgin-Fix', localizedData: [ 'de_CH' => [ @@ -26,6 +50,30 @@ public function run(): void 'teaser' => 'Computerprogramme werden vielfach in fernen Ländern entwickelt, nicht aber bei codebar. Hier gibt es «Software made in Basel». Wir haben Sebastian Fix, den Geschäftsführer dieses Start-ups, nach der Idee dahinter gefragt.', 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', 'content' => file_get_contents(database_path('files/news/de_CH/20250406_docuware_712.md')), + 'tags' => ['Regional', 'Software'], + ], + 'en_CH' => [ + 'title' => 'Hello World! Introducing codebar.', + 'slug' => 'hello-world-codebar-introduces-itself', + 'teaser' => 'Computer programs are often developed in distant countries, but not at codebar. Here you\'ll find "Software made in Basel". We asked Sebastian Fix, the managing director of this start-up, about the idea behind it.', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => file_get_contents(database_path('files/news/en_CH/20250406_docuware_712.md')), + 'tags' => ['Regional', 'Software'], + + ], + ] + ); + + $this->seed( + publishedAt: Carbon::parse('2025-04-06'), + author: 'Sebastian Bürgin-Fix', + localizedData: [ + 'de_CH' => [ + 'title' => 'DocuWare 7.12 ist da', + 'slug' => 'docuware-7-12-ist-da', + 'teaser' => 'Mehr Automatisierung, mehr Insights, mehr Effizienz', + 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', + 'content' => file_get_contents(database_path('files/news/de_CH/20250406_docuware_712.md')), 'tags' => ['DMS/ECM', 'DocuWare'], ], 'en_CH' => [ @@ -41,32 +89,31 @@ public function run(): void ); $this->seed( - publishedAt: Carbon::parse('2025-04-06'), + publishedAt: Carbon::parse('2021-01-01'), author: 'Sebastian Bürgin-Fix', localizedData: [ 'de_CH' => [ 'title' => 'DocuWare und codebar Solutions AG: Zwei Partner, eine Mission', 'slug' => 'docu-ware-cloud-partner', - 'teaser' => 'Die codebar Solutions AG ist seit Februar 2023 offizieller Partner der Dokumenten-Management-Lösung (DMS) DocuWare Cloud. Dadurch haben unsere Kund*innen ab sofort ein Tool an der Hand, welches ihnen helfen wird, die Digitalisierung im eigenen Unternehmen voranzutreiben.', + 'teaser' => 'Die codebar Solutions AG ist seit Februar 2023 offizieller Partner von DocuWare Cloud. Unsere Kund*innen erhalten damit ein Tool zur Digitalisierung ihres Unternehmens.', 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', 'content' => file_get_contents(database_path('files/news/de_CH/20250406_docuware_712.md')), 'tags' => ['DMS/ECM', 'DocuWare'], ], 'en_CH' => [ - 'title' => 'DocuWare 7.12 is here', - 'slug' => 'docuware-7-12-is-here', - 'teaser' => 'More automation, more insights, more efficiency', + 'title' => 'DocuWare and codebar Solutions AG: Two Partners, One Mission', + 'slug' => 'docuware-and-codebar-solutions-ag-two-partners-one-mission', + 'teaser' => 'codebar Solutions AG has been an official DocuWare Cloud partner since February 2023. Our customers now have a tool to advance digitalization in their companies.', 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', 'content' => file_get_contents(database_path('files/news/en_CH/20250406_docuware_712.md')), 'tags' => ['DMS/ECM', 'DocuWare'], - ], ] ); } - private function seed(Carbon $publishedAt, string $author, array $localizedData): void + private function seed(?Carbon $publishedAt, string $author, array $localizedData): void { $entries = collect($localizedData)->map(function ($data, $locale) use ($author, $publishedAt) { $slug = Str::slug(Arr::get($data, 'slug'), '-', $locale); diff --git a/database/seeders/Codebar/OpenSourceTableSeeder.php b/database/seeders/Codebar/OpenSourceTableSeeder.php index f97dacc..145f8e1 100644 --- a/database/seeders/Codebar/OpenSourceTableSeeder.php +++ b/database/seeders/Codebar/OpenSourceTableSeeder.php @@ -5,6 +5,7 @@ use App\Models\OpenSource; use Illuminate\Database\Seeder; use Illuminate\Support\Arr; +use Illuminate\Support\Str; class OpenSourceTableSeeder extends Seeder { @@ -366,24 +367,33 @@ public function run(): void ); } - private function seed(string $identifier, array $localizedData): void - { - $entries = collect($localizedData)->map(function ($data, $locale) use ($identifier) { + private function seed( + string $sharedSlug, + array $localizedData, + ?string $link = null, + ?int $downloads = null, + ?string $version = null, + ?string $identifier = null + ): void { + $slug = Str::slug($sharedSlug); + + $entries = collect($localizedData)->map(function ($data, $locale) use ($slug, $link, $downloads, $version) { return OpenSource::updateOrCreate( [ 'locale' => $locale, - 'identifier' => $identifier, - + 'slug' => $slug, ], [ - 'slug' => $slug, 'published' => true, 'title' => Arr::get($data, 'title'), 'teaser' => Arr::get($data, 'teaser'), 'image' => Arr::get($data, 'image'), 'tags' => Arr::get($data, 'tags', []), 'content' => Arr::get($data, 'content'), + 'link' => $link, + 'downloads' => $downloads, + 'version' => $version, ] ); }); diff --git a/database/seeders/Paperflakes/ProductsTableSeeder.php b/database/seeders/Codebar/ProductsTableSeeder.php similarity index 98% rename from database/seeders/Paperflakes/ProductsTableSeeder.php rename to database/seeders/Codebar/ProductsTableSeeder.php index ee990af..6ba0053 100644 --- a/database/seeders/Paperflakes/ProductsTableSeeder.php +++ b/database/seeders/Codebar/ProductsTableSeeder.php @@ -1,6 +1,6 @@ call(ConfigurationsTableSeeder::class); - $this->call(PagesTableSeeder::class); - $this->call(ContactsTableSeeder::class); - // $this->call(OpenSourceTableSeeder::class); - $this->call(TechnologiesTableSeeder::class); - - if (app()->isLocal()) { - Artisan::call(ClearCommand::class); - } - - } + public function run(): void {} } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 72a5680..0acb280 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -5,9 +5,18 @@ use App\Enums\LocaleEnum; use App\Enums\RoleEnum; use App\Models\User; -use Database\Seeders\Paperflakes\RolesAndPermissionsSeeder; +use Database\Seeders\Codebar\ConfigurationsTableSeeder; +use Database\Seeders\Codebar\ContactsTableSeeder; +use Database\Seeders\Codebar\NewsTableSeeder; +use Database\Seeders\Codebar\OpenSourceTableSeeder; +use Database\Seeders\Codebar\PagesTableSeeder; +use Database\Seeders\Codebar\ProductsTableSeeder; +use Database\Seeders\Codebar\RolesAndPermissionsSeeder; +use Database\Seeders\Codebar\ServicesTableSeeder; +use Database\Seeders\Codebar\TechnologiesTableSeeder; +use Illuminate\Cache\Console\ClearCommand; use Illuminate\Database\Seeder; -use Illuminate\Support\Facades\Config; +use Illuminate\Support\Facades\Artisan; // use Illuminate\Database\Console\Seeds\WithoutModelEvents; @@ -31,13 +40,17 @@ public function run(): void $user->assignRole(RoleEnum::ADMINISTRATOR, RoleEnum::USER); - if (Config::get('seeder.seeder.paperflakes')) { - // php artisan db:seed --class=Database\\Seeders\\PaperflakesSeeder --force - $this->call(PaperflakesSeeder::class); - } - if (Config::get('seeder.seeder.codebar')) { - // php artisan db:seed --class=Database\\Seeders\\CodebarSeeder --force - $this->call(CodebarSeeder::class); + $this->call(ConfigurationsTableSeeder::class); + $this->call(PagesTableSeeder::class); + $this->call(NewsTableSeeder::class); + $this->call(ProductsTableSeeder::class); + $this->call(ServicesTableSeeder::class); + $this->call(ContactsTableSeeder::class); + $this->call(OpenSourceTableSeeder::class); + $this->call(TechnologiesTableSeeder::class); + + if (app()->isLocal()) { + Artisan::call(ClearCommand::class); } } diff --git a/database/seeders/Paperflakes/ConfigurationsTableSeeder.php b/database/seeders/Paperflakes/ConfigurationsTableSeeder.php deleted file mode 100644 index 9d1af50..0000000 --- a/database/seeders/Paperflakes/ConfigurationsTableSeeder.php +++ /dev/null @@ -1,40 +0,0 @@ - 'paperflakes AG', - 'company_primary_color' => '#69b3a1', - - 'component_intro' => [ - LocaleEnum::DE->value => file_get_contents(database_path('files/intro/paperflakes_intro_de.md')), - LocaleEnum::EN->value => file_get_contents(database_path('files/intro/paperflakes_intro_en.md')), - ], - - 'section_news' => true, - 'section_services' => true, - 'section_products' => true, - 'section_technologies' => false, - 'section_open_source' => false, - - 'key' => '_paperflakes', - - 'links' => [ - 'linkedin' => 'https://www.linkedin.com/company/paperflakes', - 'github' => 'https://github.com/orgs/paperflakes-ag', - ], - - ]); - } -} diff --git a/database/seeders/Paperflakes/ContactsTableSeeder.php b/database/seeders/Paperflakes/ContactsTableSeeder.php deleted file mode 100644 index ae29ee5..0000000 --- a/database/seeders/Paperflakes/ContactsTableSeeder.php +++ /dev/null @@ -1,195 +0,0 @@ - 1], - [ - 'name' => 'Sebastian Bürgin-Fix', - 'published' => true, - 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, - 'role' => [ - 'de_CH' => 'Software-Architekt', - 'en_CH' => 'Software-Engineer', - ], - ], - ContactSectionEnum::BOARD_MEMBERS => [ - 'key' => ContactSectionEnum::BOARD_MEMBERS, - ], - ], - 'icons' => [ - 'email' => 'sebastian.buergin@paperflakes.ch', - 'linkedin' => 'https://www.linkedin.com/in/fix-sebastian/', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/s_fix_e_background_removal_f_png.webp', - ] - ); - - Contact::updateOrCreate( - ['id' => 2], - [ - 'name' => 'Mischa Lanz', - 'published' => true, - 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, - 'role' => [ - 'de_CH' => 'zunscan.ch', - 'en_CH' => 'zunscan.ch', - ], - ], - ContactSectionEnum::BOARD_MEMBERS => [ - 'key' => ContactSectionEnum::BOARD_MEMBERS, - ], - ], - 'icons' => [ - 'email' => 'mischa.lanz@paperflakes.ch', - 'linkedin' => 'https://www.linkedin.com/in/mischa-lanz-672a65112', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/6528f7c6bddf8430fb5d154c_Mischa_Hemd.webp', - ] - ); - - Contact::updateOrCreate( - ['id' => 3], - [ - 'name' => 'Dominique Ernst', - 'published' => true, - 'sections' => [ - /* ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, - 'role' => [ - 'de_CH' => 'DMS/ECM Berater', - 'en_CH' => 'DMS/ECM Consultant', - ], - ], */ - ContactSectionEnum::BOARD_MEMBERS => [ - 'key' => ContactSectionEnum::BOARD_MEMBERS, - ], - ], - 'icons' => [ - 'email' => 'dominique.ernst@paperflakes.ch', - 'linkedin' => 'https://www.linkedin.com/in/dominique-ernst', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/ujywqubl5rkkm5hjqjsa_e_background_removal_f_png.webp', - ] - ); - - Contact::updateOrCreate( - ['id' => 4], - [ - 'name' => 'Katja Lanz', - 'published' => true, - 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, - 'role' => [ - 'de_CH' => 'HR', - 'en_CH' => 'HR', - ], - ], - ], - 'icons' => [ - 'email' => 'katja.lanz@paperflakes.ch', - 'linkedin' => 'https://www.linkedin.com/in/katja-lanz-a92372149/', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/652d4179a3494dedacf6555a_Katja_Jacke.webp', - ] - ); - - Contact::updateOrCreate( - ['id' => 5], - [ - 'name' => 'Melanie Bürgin-Fix', - 'published' => true, - 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, - 'role' => [ - 'de_CH' => 'Administration', - 'en_CH' => 'Administration', - ], - ], - ], - 'icons' => [ - 'email' => 'melanie.buergin@paperflakes.ch', - 'linkedin' => 'https://www.linkedin.com/in/melanie-buergin', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/paperflakes.webp', - ] - ); - - Contact::updateOrCreate( - ['id' => 6], - [ - 'name' => 'DR-G2110', - 'published' => true, - 'sections' => [ - ContactSectionEnum::EMPLOYEES => [ - 'key' => ContactSectionEnum::EMPLOYEES, - 'role' => [ - 'de_CH' => 'Digitalisierungs-Beauftragter', - 'en_CH' => 'Head of Digital Transformation', - ], - ], - ], - 'icons' => [], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/drg_e_background_removal_f_png.webp', - ] - ); - - Contact::updateOrCreate( - ['id' => 6], - [ - 'name' => 'PST GmbH', - 'published' => false, - 'sections' => [ - ContactSectionEnum::COLLABORATIONS => [ - 'key' => ContactSectionEnum::COLLABORATIONS, - 'role' => [ - 'de_CH' => 'Finanzen', - 'en_CH' => 'Finance', - ], - ], - ], - 'icons' => [ - 'email' => 'info@pstgmbh.ch', - 'website' => 'https://www.pstgmbh.ch', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/paperflakes.webp', - ] - ); - - Contact::updateOrCreate( - ['id' => 7], - [ - 'name' => 'Dario Wieland', - 'published' => true, - 'sections' => [ - ContactSectionEnum::COLLABORATIONS => [ - 'key' => ContactSectionEnum::COLLABORATIONS, - 'role' => [ - 'de_CH' => 'Wieland Business Solutions GmbH', - 'en_CH' => 'Wieland Business Solutions GmbH', - ], - ], - ], - 'icons' => [ - 'email' => 'wieland@business-solutions.gmbh', - 'website' => 'https://www.business-solutions.gmbh', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/wds.jpg', - ] - ); - } -} diff --git a/database/seeders/Paperflakes/NewsTableSeeder.php b/database/seeders/Paperflakes/NewsTableSeeder.php deleted file mode 100644 index c73169b..0000000 --- a/database/seeders/Paperflakes/NewsTableSeeder.php +++ /dev/null @@ -1,75 +0,0 @@ -seed( - publishedAt: Carbon::parse('2025-04-06'), - author: 'Sebastian Bürgin-Fix', - localizedData: [ - 'de_CH' => [ - 'title' => 'DocuWare 7.12 ist da', - 'slug' => 'docuware-7-12-ist-da', - 'teaser' => 'Mehr Automatisierung, mehr Insights, mehr Effizienz', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - 'content' => file_get_contents(database_path('files/news/de_CH/20250406_docuware_712.md')), - 'tags' => ['DMS/ECM', 'DocuWare'], - ], - 'en_CH' => [ - 'title' => 'DocuWare 7.12 is here', - 'slug' => 'docuware-7-12-is-here', - 'teaser' => 'More automation, more insights, more efficiency', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - 'content' => file_get_contents(database_path('files/news/en_CH/20250406_docuware_712.md')), - 'tags' => ['DMS/ECM', 'DocuWare'], - - ], - ] - ); - } - - private function seed(Carbon $publishedAt, string $author, array $localizedData): void - { - $entries = collect($localizedData)->map(function ($data, $locale) use ($author, $publishedAt) { - $slug = Str::slug(Arr::get($data, 'slug'), '-', $locale); - - return News::updateOrCreate( - [ - 'locale' => $locale, - 'slug' => $slug, - ], - [ - 'author' => $author, - 'published_at' => $publishedAt, - 'title' => Arr::get($data, 'title'), - 'teaser' => Arr::get($data, 'teaser'), - 'image' => Arr::get($data, 'image'), - 'tags' => Arr::get($data, 'tags', []), - 'content' => Arr::get($data, 'content'), - ] - ); - }); - - $entries->each(function (News $entry) use ($entries) { - $entries->each(function (News $reference) use ($entry) { - $entry->references()->updateOrCreate([ - 'reference_type' => get_class($reference), - 'reference_id' => $reference->id, - 'reference_locale' => $reference->locale, - ]); - }); - }); - } -} diff --git a/database/seeders/PaperflakesSeeder.php b/database/seeders/PaperflakesSeeder.php deleted file mode 100644 index d4b66c9..0000000 --- a/database/seeders/PaperflakesSeeder.php +++ /dev/null @@ -1,34 +0,0 @@ -call(ConfigurationsTableSeeder::class); - $this->call(PagesTableSeeder::class); - $this->call(NewsTableSeeder::class); - $this->call(ProductsTableSeeder::class); - $this->call(ServicesTableSeeder::class); - $this->call(ContactsTableSeeder::class); - - if (app()->isLocal()) { - Artisan::call(ClearCommand::class); - } - - } -} diff --git a/resources/views/app/about-us/index.blade.php b/resources/views/app/about-us/index.blade.php index e19355d..21111a7 100644 --- a/resources/views/app/about-us/index.blade.php +++ b/resources/views/app/about-us/index.blade.php @@ -5,15 +5,33 @@
- + + +
+ @if(!empty($contacts->software_engineering) && $contacts->software_engineering->count()) + + + @foreach($contacts->software_engineering as $contact) + + @endforeach + + @endif -
- @if(!empty($contacts->employees) && $contacts->employees->count()) +
+ + + +
+ @if(!empty($contacts->digital_transformation) && $contacts->digital_transformation->count()) - @foreach($contacts->employees as $contact) + @foreach($contacts->digital_transformation as $contact) + + + +
+ @if(!empty($contacts->scanning) && $contacts->scanning->count()) + + + @foreach($contacts->scanning as $contact) + + @endforeach + + @endif + +
+ + @if(!empty($contacts->collaborations) && $contacts->collaborations->count()) diff --git a/resources/views/app/contact/_partials/_codebar.blade.php b/resources/views/app/contact/_partials/_codebar.blade.php deleted file mode 100644 index 702244c..0000000 --- a/resources/views/app/contact/_partials/_codebar.blade.php +++ /dev/null @@ -1,52 +0,0 @@ - - - -
- - -
-
- - -
-
- - - -
-
-
-

codebar Solutions AG

-

{{ __('Headquarter') }}

-

Haupstrasse 91

-

CH-4455 Zunzgen

-
- - - - - -
-
-
-

codebar Solutions AG

-

{{__('Branch office')}}

-

Langegasse 39

-

CH-4104 Oberwil

-
- - - - - - -
-
-
\ No newline at end of file diff --git a/resources/views/app/contact/_partials/_paperflakes.blade.php b/resources/views/app/contact/_partials/_paperflakes.blade.php deleted file mode 100644 index c881830..0000000 --- a/resources/views/app/contact/_partials/_paperflakes.blade.php +++ /dev/null @@ -1,52 +0,0 @@ - - - -
- - -
-
- - -
-
- - - -
-
-
-

paperflakes AG

-

{{ __('Headquarter') }}

-

Haupstrasse 91

-

CH-4455 Zunzgen

-
- - - - - -
-
-
-

paperflakes AG

-

{{__('Branch office')}}

-

Langegasse 39

-

CH-4104 Oberwil

-
- - - - - - -
-
-
\ No newline at end of file diff --git a/resources/views/app/contact/index.blade.php b/resources/views/app/contact/index.blade.php index c357578..44c7adc 100644 --- a/resources/views/app/contact/index.blade.php +++ b/resources/views/app/contact/index.blade.php @@ -1,5 +1,52 @@ - @if(filled($configuration?->key)) - @include("app.contact._partials.{$configuration->key}") - @endif - \ No newline at end of file + + +
+ + +
+
+ + +
+
+ + + +
+
+
+

codebar Solutions AG

+

{{ __('Headquarter') }}

+

Haupstrasse 91

+

CH-4455 Zunzgen

+
+ + + + + +
+
+
+

codebar Solutions AG

+

{{ __('Branch office') }}

+

Langegasse 39

+

CH-4104 Oberwil

+
+ + + + + +
+
+
+ diff --git a/resources/views/app/services/index.blade.php b/resources/views/app/services/index.blade.php index fd01635..84b4014 100644 --- a/resources/views/app/services/index.blade.php +++ b/resources/views/app/services/index.blade.php @@ -19,10 +19,7 @@ @endforeach - - - @include('app.services._parials.partnerships') - \ No newline at end of file + From 0ed7196a6654e1655d3d3a000ce839afe01291d6 Mon Sep 17 00:00:00 2001 From: Sebastian Fix Date: Mon, 1 Dec 2025 11:46:45 +0100 Subject: [PATCH 2/3] wip --- bootstrap/app.php | 1 - composer.lock | 1215 +++++++++--------- database/files/legal/de_CH/terms.md | 188 +++ database/files/legal/de_CH/terms_feedback.md | 6 + lang/de_CH.json | 12 +- lang/en_CH.json | 14 +- package-lock.json | 618 ++++----- resources/views/app/contact/index.blade.php | 40 +- routes/console.php | 1 - 9 files changed, 1156 insertions(+), 939 deletions(-) create mode 100644 database/files/legal/de_CH/terms_feedback.md delete mode 100644 routes/console.php diff --git a/bootstrap/app.php b/bootstrap/app.php index e25cb89..833b0f2 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -18,7 +18,6 @@ ]) ->withRouting( web: __DIR__.'/../routes/web.php', - commands: __DIR__.'/../routes/console.php', then: function () {} ) ->withMiddleware(function (Middleware $middleware) { diff --git a/composer.lock b/composer.lock index 16651e2..334e066 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.359.1", + "version": "3.364.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "40543e3993fc5094094ac9f9bdc4434bf81cca2d" + "reference": "768e0055da7e9e505aae8a87454d310a7c321ac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/40543e3993fc5094094ac9f9bdc4434bf81cca2d", - "reference": "40543e3993fc5094094ac9f9bdc4434bf81cca2d", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/768e0055da7e9e505aae8a87454d310a7c321ac1", + "reference": "768e0055da7e9e505aae8a87454d310a7c321ac1", "shasum": "" }, "require": { @@ -153,22 +153,22 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.359.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.364.0" }, - "time": "2025-10-29T20:13:06+00:00" + "time": "2025-12-01T01:08:11+00:00" }, { "name": "brick/math", - "version": "0.14.0", + "version": "0.14.1", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" + "reference": "f05858549e5f9d7bb45875a75583240a38a281d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", - "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "url": "https://api.github.com/repos/brick/math/zipball/f05858549e5f9d7bb45875a75583240a38a281d0", + "reference": "f05858549e5f9d7bb45875a75583240a38a281d0", "shasum": "" }, "require": { @@ -207,7 +207,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.14.0" + "source": "https://github.com/brick/math/tree/0.14.1" }, "funding": [ { @@ -215,7 +215,7 @@ "type": "github" } ], - "time": "2025-08-29T12:40:03+00:00" + "time": "2025-11-24T14:40:29+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -809,29 +809,28 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.4.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "8c784d071debd117328803d86b2097615b457500" + "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", - "reference": "8c784d071debd117328803d86b2097615b457500", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013", + "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013", "shasum": "" }, "require": { - "php": "^7.2|^8.0", - "webmozart/assert": "^1.0" + "php": "^8.2|^8.3|^8.4|^8.5" }, "replace": { "mtdowling/cron-expression": "^1.0" }, "require-dev": { - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.0", - "phpunit/phpunit": "^7.0|^8.0|^9.0" + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.32|^2.1.31", + "phpunit/phpunit": "^8.5.48|^9.0" }, "type": "library", "extra": { @@ -862,7 +861,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0" }, "funding": [ { @@ -870,7 +869,7 @@ "type": "github" } ], - "time": "2024-10-09T13:47:03+00:00" + "time": "2025-10-31T18:51:33+00:00" }, { "name": "egulias/email-validator", @@ -1485,16 +1484,16 @@ }, { "name": "laravel/framework", - "version": "v12.36.1", + "version": "v12.40.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "cad110d7685fbab990a6bb8184d0cfd847d7c4d8" + "reference": "1ccd99220b474500e672b373f32bd709ec38de50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/cad110d7685fbab990a6bb8184d0cfd847d7c4d8", - "reference": "cad110d7685fbab990a6bb8184d0cfd847d7c4d8", + "url": "https://api.github.com/repos/laravel/framework/zipball/1ccd99220b474500e672b373f32bd709ec38de50", + "reference": "1ccd99220b474500e672b373f32bd709ec38de50", "shasum": "" }, "require": { @@ -1606,13 +1605,13 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.7.0", + "orchestra/testbench-core": "^10.8.0", "pda/pheanstalk": "^5.0.6|^7.0.0", "php-http/discovery": "^1.15", "phpstan/phpstan": "^2.0", "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", "predis/predis": "^2.3|^3.0", - "resend/resend-php": "^0.10.0", + "resend/resend-php": "^0.10.0|^1.0", "symfony/cache": "^7.2.0", "symfony/http-client": "^7.2.0", "symfony/psr-http-message-bridge": "^7.2.0", @@ -1646,7 +1645,7 @@ "predis/predis": "Required to use the predis connector (^2.3|^3.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", - "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", @@ -1700,20 +1699,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-10-29T14:20:57+00:00" + "time": "2025-11-26T19:24:25+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.7", + "version": "v0.3.8", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc" + "reference": "096748cdfb81988f60090bbb839ce3205ace0d35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/a1891d362714bc40c8d23b0b1d7090f022ea27cc", - "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc", + "url": "https://api.github.com/repos/laravel/prompts/zipball/096748cdfb81988f60090bbb839ce3205ace0d35", + "reference": "096748cdfb81988f60090bbb839ce3205ace0d35", "shasum": "" }, "require": { @@ -1729,7 +1728,7 @@ "require-dev": { "illuminate/collections": "^10.0|^11.0|^12.0", "mockery/mockery": "^1.5", - "pestphp/pest": "^2.3|^3.4", + "pestphp/pest": "^2.3|^3.4|^4.0", "phpstan/phpstan": "^1.12.28", "phpstan/phpstan-mockery": "^1.1.3" }, @@ -1757,22 +1756,22 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.7" + "source": "https://github.com/laravel/prompts/tree/v0.3.8" }, - "time": "2025-09-19T13:47:56+00:00" + "time": "2025-11-21T20:52:52+00:00" }, { "name": "laravel/serializable-closure", - "version": "v2.0.6", + "version": "v2.0.7", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "038ce42edee619599a1debb7e81d7b3759492819" + "reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/038ce42edee619599a1debb7e81d7b3759492819", - "reference": "038ce42edee619599a1debb7e81d7b3759492819", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/cb291e4c998ac50637c7eeb58189c14f5de5b9dd", + "reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd", "shasum": "" }, "require": { @@ -1781,7 +1780,7 @@ "require-dev": { "illuminate/support": "^10.0|^11.0|^12.0", "nesbot/carbon": "^2.67|^3.0", - "pestphp/pest": "^2.36|^3.0", + "pestphp/pest": "^2.36|^3.0|^4.0", "phpstan/phpstan": "^2.0", "symfony/var-dumper": "^6.2.0|^7.0.0" }, @@ -1820,20 +1819,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2025-10-09T13:42:30+00:00" + "time": "2025-11-21T20:52:36+00:00" }, { "name": "laravel/tinker", - "version": "v2.10.1", + "version": "v2.10.2", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3" + "reference": "3bcb5f62d6f837e0f093a601e26badafb127bd4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3", - "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3", + "url": "https://api.github.com/repos/laravel/tinker/zipball/3bcb5f62d6f837e0f093a601e26badafb127bd4c", + "reference": "3bcb5f62d6f837e0f093a601e26badafb127bd4c", "shasum": "" }, "require": { @@ -1884,22 +1883,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.10.1" + "source": "https://github.com/laravel/tinker/tree/v2.10.2" }, - "time": "2025-01-27T14:24:01+00:00" + "time": "2025-11-20T16:29:12+00:00" }, { "name": "league/commonmark", - "version": "2.7.1", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "10732241927d3971d28e7ea7b5712721fa2296ca" + "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/10732241927d3971d28e7ea7b5712721fa2296ca", - "reference": "10732241927d3971d28e7ea7b5712721fa2296ca", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/4efa10c1e56488e658d10adf7b7b7dcd19940bfb", + "reference": "4efa10c1e56488e658d10adf7b7b7dcd19940bfb", "shasum": "" }, "require": { @@ -1936,7 +1935,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.8-dev" + "dev-main": "2.9-dev" } }, "autoload": { @@ -1993,7 +1992,7 @@ "type": "tidelift" } ], - "time": "2025-07-20T12:47:49+00:00" + "time": "2025-11-26T21:48:24+00:00" }, { "name": "league/config", @@ -2079,16 +2078,16 @@ }, { "name": "league/flysystem", - "version": "3.30.1", + "version": "3.30.2", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "c139fd65c1f796b926f4aec0df37f6caa959a8da" + "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/c139fd65c1f796b926f4aec0df37f6caa959a8da", - "reference": "c139fd65c1f796b926f4aec0df37f6caa959a8da", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277", + "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277", "shasum": "" }, "require": { @@ -2156,9 +2155,9 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.30.1" + "source": "https://github.com/thephpleague/flysystem/tree/3.30.2" }, - "time": "2025-10-20T15:35:26+00:00" + "time": "2025-11-10T17:13:11+00:00" }, { "name": "league/flysystem-aws-s3-v3", @@ -2217,16 +2216,16 @@ }, { "name": "league/flysystem-local", - "version": "3.30.0", + "version": "3.30.2", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10" + "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/6691915f77c7fb69adfb87dcd550052dc184ee10", - "reference": "6691915f77c7fb69adfb87dcd550052dc184ee10", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ab4f9d0d672f601b102936aa728801dd1a11968d", + "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d", "shasum": "" }, "require": { @@ -2260,9 +2259,9 @@ "local" ], "support": { - "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.2" }, - "time": "2025-05-21T10:34:19+00:00" + "time": "2025-11-10T11:23:37+00:00" }, { "name": "league/mime-type-detection", @@ -2322,33 +2321,38 @@ }, { "name": "league/uri", - "version": "7.5.1", + "version": "7.6.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "81fb5145d2644324614cc532b28efd0215bda430" + "reference": "f625804987a0a9112d954f9209d91fec52182344" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", - "reference": "81fb5145d2644324614cc532b28efd0215bda430", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/f625804987a0a9112d954f9209d91fec52182344", + "reference": "f625804987a0a9112d954f9209d91fec52182344", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.5", - "php": "^8.1" + "league/uri-interfaces": "^7.6", + "php": "^8.1", + "psr/http-factory": "^1" }, "conflict": { "league/uri-schemes": "^1.0" }, "suggest": { "ext-bcmath": "to improve IPV4 host parsing", + "ext-dom": "to convert the URI into an HTML anchor tag", "ext-fileinfo": "to create Data URI from file contennts", "ext-gmp": "to improve IPV4 host parsing", "ext-intl": "to handle IDN host with the best performance", + "ext-uri": "to use the PHP native URI class", "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", "league/uri-components": "Needed to easily manipulate URI objects components", + "league/uri-polyfill": "Needed to backport the PHP URI extension for older versions of PHP", "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle WHATWG URL", "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", @@ -2376,6 +2380,7 @@ "description": "URI manipulation library", "homepage": "https://uri.thephpleague.com", "keywords": [ + "URN", "data-uri", "file-uri", "ftp", @@ -2388,9 +2393,11 @@ "psr-7", "query-string", "querystring", + "rfc2141", "rfc3986", "rfc3987", "rfc6570", + "rfc8141", "uri", "uri-template", "url", @@ -2400,7 +2407,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.5.1" + "source": "https://github.com/thephpleague/uri/tree/7.6.0" }, "funding": [ { @@ -2408,26 +2415,25 @@ "type": "github" } ], - "time": "2024-12-08T08:40:02+00:00" + "time": "2025-11-18T12:17:23+00:00" }, { "name": "league/uri-interfaces", - "version": "7.5.0", + "version": "7.6.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" + "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", - "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/ccbfb51c0445298e7e0b7f4481b942f589665368", + "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368", "shasum": "" }, "require": { "ext-filter": "*", "php": "^8.1", - "psr/http-factory": "^1", "psr/http-message": "^1.1 || ^2.0" }, "suggest": { @@ -2435,6 +2441,7 @@ "ext-gmp": "to improve IPV4 host parsing", "ext-intl": "to handle IDN host with the best performance", "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle WHATWG URL", "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", @@ -2459,7 +2466,7 @@ "homepage": "https://nyamsprod.com" } ], - "description": "Common interfaces and classes for URI representation and interaction", + "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI", "homepage": "https://uri.thephpleague.com", "keywords": [ "data-uri", @@ -2484,7 +2491,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.6.0" }, "funding": [ { @@ -2492,74 +2499,7 @@ "type": "github" } ], - "time": "2024-12-08T08:18:47+00:00" - }, - { - "name": "masterminds/html5", - "version": "2.10.0", - "source": { - "type": "git", - "url": "https://github.com/Masterminds/html5-php.git", - "reference": "fcf91eb64359852f00d921887b219479b4f21251" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251", - "reference": "fcf91eb64359852f00d921887b219479b4f21251", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Masterminds\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Matt Butcher", - "email": "technosophos@gmail.com" - }, - { - "name": "Matt Farina", - "email": "matt@mattfarina.com" - }, - { - "name": "Asmir Mustafic", - "email": "goetas@gmail.com" - } - ], - "description": "An HTML5 parser and serializer.", - "homepage": "http://masterminds.github.io/html5-php", - "keywords": [ - "HTML5", - "dom", - "html", - "parser", - "querypath", - "serializer", - "xml" - ], - "support": { - "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" - }, - "time": "2025-07-25T09:04:22+00:00" + "time": "2025-11-18T12:17:23+00:00" }, { "name": "mazedlx/laravel-feature-policy", @@ -2899,25 +2839,25 @@ }, { "name": "nette/schema", - "version": "v1.3.2", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "da801d52f0354f70a638673c4a0f04e16529431d" + "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", - "reference": "da801d52f0354f70a638673c4a0f04e16529431d", + "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004", + "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.4" + "php": "8.1 - 8.5" }, "require-dev": { "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^1.0", + "phpstan/phpstan-nette": "^2.0@stable", "tracy/tracy": "^2.8" }, "type": "library", @@ -2927,6 +2867,9 @@ } }, "autoload": { + "psr-4": { + "Nette\\": "src" + }, "classmap": [ "src/" ] @@ -2955,22 +2898,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.2" + "source": "https://github.com/nette/schema/tree/v1.3.3" }, - "time": "2024-10-06T23:10:23+00:00" + "time": "2025-10-30T22:57:59+00:00" }, { "name": "nette/utils", - "version": "v4.0.8", + "version": "v4.0.9", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede" + "reference": "505a30ad386daa5211f08a318e47015b501cad30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/c930ca4e3cf4f17dcfb03037703679d2396d2ede", - "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede", + "url": "https://api.github.com/repos/nette/utils/zipball/505a30ad386daa5211f08a318e47015b501cad30", + "reference": "505a30ad386daa5211f08a318e47015b501cad30", "shasum": "" }, "require": { @@ -3044,30 +2987,30 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.8" + "source": "https://github.com/nette/utils/tree/v4.0.9" }, - "time": "2025-08-06T21:43:34+00:00" + "time": "2025-10-31T00:45:47+00:00" }, { "name": "nicmart/tree", - "version": "0.9.0", + "version": "0.10.1", "source": { "type": "git", "url": "https://github.com/nicmart/Tree.git", - "reference": "f5e17bf18d78cfb0666ebb9f956c3acd8d14229d" + "reference": "2ef11e329d26005ef49dbacd0223bcfd2515b6cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nicmart/Tree/zipball/f5e17bf18d78cfb0666ebb9f956c3acd8d14229d", - "reference": "f5e17bf18d78cfb0666ebb9f956c3acd8d14229d", + "url": "https://api.github.com/repos/nicmart/Tree/zipball/2ef11e329d26005ef49dbacd0223bcfd2515b6cc", + "reference": "2ef11e329d26005ef49dbacd0223bcfd2515b6cc", "shasum": "" }, "require": { - "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "require-dev": { - "ergebnis/composer-normalize": "^2.44.0", - "ergebnis/license": "^2.6.0", + "ergebnis/composer-normalize": "^2.48.2", + "ergebnis/license": "^2.7.0", "ergebnis/php-cs-fixer-config": "^6.28.1", "fakerphp/faker": "^1.24.1", "infection/infection": "~0.26.19", @@ -3098,9 +3041,9 @@ "description": "A basic but flexible php tree data structure and a fluent tree builder implementation.", "support": { "issues": "https://github.com/nicmart/Tree/issues", - "source": "https://github.com/nicmart/Tree/tree/0.9.0" + "source": "https://github.com/nicmart/Tree/tree/0.10.1" }, - "time": "2024-11-22T15:36:01+00:00" + "time": "2025-11-25T08:51:01+00:00" }, { "name": "nikic/php-parser", @@ -3162,31 +3105,31 @@ }, { "name": "nunomaduro/termwind", - "version": "v2.3.2", + "version": "v2.3.3", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "eb61920a53057a7debd718a5b89c2178032b52c0" + "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/eb61920a53057a7debd718a5b89c2178032b52c0", - "reference": "eb61920a53057a7debd718a5b89c2178032b52c0", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/6fb2a640ff502caace8e05fd7be3b503a7e1c017", + "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.3.4" + "symfony/console": "^7.3.6" }, "require-dev": { "illuminate/console": "^11.46.1", "laravel/pint": "^1.25.1", "mockery/mockery": "^1.6.12", - "pestphp/pest": "^2.36.0 || ^3.8.4", + "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.1.3", "phpstan/phpstan": "^1.12.32", "phpstan/phpstan-strict-rules": "^1.6.2", - "symfony/var-dumper": "^7.3.4", + "symfony/var-dumper": "^7.3.5", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -3229,7 +3172,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.3.2" + "source": "https://github.com/nunomaduro/termwind/tree/v2.3.3" }, "funding": [ { @@ -3245,7 +3188,7 @@ "type": "github" } ], - "time": "2025-10-18T11:10:27+00:00" + "time": "2025-11-20T02:34:59+00:00" }, { "name": "phpoption/phpoption", @@ -3736,16 +3679,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.14", + "version": "v0.12.15", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "95c29b3756a23855a30566b745d218bee690bef2" + "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/95c29b3756a23855a30566b745d218bee690bef2", - "reference": "95c29b3756a23855a30566b745d218bee690bef2", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/38953bc71491c838fcb6ebcbdc41ab7483cd549c", + "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c", "shasum": "" }, "require": { @@ -3809,9 +3752,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.14" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.15" }, - "time": "2025-10-27T17:15:31+00:00" + "time": "2025-11-28T00:00:14+00:00" }, { "name": "ralouphie/getallheaders", @@ -4147,16 +4090,16 @@ }, { "name": "spatie/browsershot", - "version": "5.0.11", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/spatie/browsershot.git", - "reference": "f84d9c332899596d0884922772593a10e3925969" + "reference": "127c20da43d0d711ebbc64f85053f50bc147c515" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/browsershot/zipball/f84d9c332899596d0884922772593a10e3925969", - "reference": "f84d9c332899596d0884922772593a10e3925969", + "url": "https://api.github.com/repos/spatie/browsershot/zipball/127c20da43d0d711ebbc64f85053f50bc147c515", + "reference": "127c20da43d0d711ebbc64f85053f50bc147c515", "shasum": "" }, "require": { @@ -4164,13 +4107,13 @@ "ext-json": "*", "php": "^8.2", "spatie/temporary-directory": "^2.0", - "symfony/process": "^6.0|^7.0" + "symfony/process": "^6.0|^7.0|^8.0" }, "require-dev": { - "pestphp/pest": "^3.0", + "pestphp/pest": "^3.0|^4.0", "spatie/image": "^3.6", "spatie/pdf-to-text": "^1.52", - "spatie/phpunit-snapshot-assertions": "^4.2.3|^5.0" + "spatie/phpunit-snapshot-assertions": "^5.0" }, "type": "library", "autoload": { @@ -4203,7 +4146,7 @@ "webpage" ], "support": { - "source": "https://github.com/spatie/browsershot/tree/5.0.11" + "source": "https://github.com/spatie/browsershot/tree/5.1.1" }, "funding": [ { @@ -4211,31 +4154,31 @@ "type": "github" } ], - "time": "2025-10-08T07:40:52+00:00" + "time": "2025-11-26T09:49:20+00:00" }, { "name": "spatie/crawler", - "version": "8.4.5", + "version": "8.4.7", "source": { "type": "git", "url": "https://github.com/spatie/crawler.git", - "reference": "a9c432c16d2c1b871a7193bdeca68dc87f4e5352" + "reference": "67cbd569437d0e35b1332c5f21d009cac8b4a37b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/crawler/zipball/a9c432c16d2c1b871a7193bdeca68dc87f4e5352", - "reference": "a9c432c16d2c1b871a7193bdeca68dc87f4e5352", + "url": "https://api.github.com/repos/spatie/crawler/zipball/67cbd569437d0e35b1332c5f21d009cac8b4a37b", + "reference": "67cbd569437d0e35b1332c5f21d009cac8b4a37b", "shasum": "" }, "require": { "guzzlehttp/guzzle": "^7.3", "guzzlehttp/psr7": "^2.0", "illuminate/collections": "^10.0|^11.0|^12.0", - "nicmart/tree": "^0.9", + "nicmart/tree": "^0.10", "php": "^8.2", "spatie/browsershot": "^5.0.5", "spatie/robots-txt": "^2.0", - "symfony/dom-crawler": "^6.0|^7.0" + "symfony/dom-crawler": "^6.0|^7.0|^8.0" }, "require-dev": { "pestphp/pest": "^2.0|^3.0", @@ -4267,7 +4210,7 @@ ], "support": { "issues": "https://github.com/spatie/crawler/issues", - "source": "https://github.com/spatie/crawler/tree/8.4.5" + "source": "https://github.com/spatie/crawler/tree/8.4.7" }, "funding": [ { @@ -4279,7 +4222,7 @@ "type": "github" } ], - "time": "2025-10-28T14:08:29+00:00" + "time": "2025-11-26T17:35:15+00:00" }, { "name": "spatie/enum", @@ -4731,42 +4674,42 @@ }, { "name": "spatie/laravel-health", - "version": "1.34.8", + "version": "1.34.9", "source": { "type": "git", "url": "https://github.com/spatie/laravel-health.git", - "reference": "fc0e85ee8e26767ab39420d78cfd31e4aa2d281d" + "reference": "dc2963c97d04cae7ce9abeeb085de50d84eabe92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-health/zipball/fc0e85ee8e26767ab39420d78cfd31e4aa2d281d", - "reference": "fc0e85ee8e26767ab39420d78cfd31e4aa2d281d", + "url": "https://api.github.com/repos/spatie/laravel-health/zipball/dc2963c97d04cae7ce9abeeb085de50d84eabe92", + "reference": "dc2963c97d04cae7ce9abeeb085de50d84eabe92", "shasum": "" }, "require": { "dragonmantank/cron-expression": "^3.3.1", "guzzlehttp/guzzle": "^6.5|^7.4.5|^7.2", - "illuminate/console": "^8.75|^9.0|^10.0|^11.0|^12.0", - "illuminate/contracts": "^8.75|^9.0|^10.0|^11.0|^12.0", - "illuminate/database": "^8.75|^9.0|^10.0|^11.0|^12.0", - "illuminate/notifications": "^8.75|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^8.75|^9.0|^10.0|^11.0|^12.0", + "illuminate/console": "^11.0|^12.0", + "illuminate/contracts": "^11.0|^12.0", + "illuminate/database": "^11.0|^12.0", + "illuminate/notifications": "^11.0|^12.0", + "illuminate/support": "^11.0|^12.0", "laravel/serializable-closure": "^1.3|^2.0", "nunomaduro/termwind": "^1.0|^2.0", - "php": "^8.0", + "php": "^8.2", "spatie/enum": "^3.13", "spatie/laravel-package-tools": "^1.12.1", "spatie/regex": "^3.1.1|^3.1", "spatie/temporary-directory": "^2.2", - "symfony/process": "^5.4|^6.0|^7.0" + "symfony/process": "^5.4|^6.0|^7.0|^8.0" }, "require-dev": { "laravel/horizon": "^5.9.10", "laravel/slack-notification-channel": "^2.4|^3.2", "nunomaduro/collision": "^5.10|^6.2.1|^6.1|^8.0", - "orchestra/testbench": "^6.23|^7.6|^8.0|^9.0", - "pestphp/pest": "^1.21.3|^2.34|^3.0", - "pestphp/pest-plugin-laravel": "^1.2|^2.3|^3.0", + "orchestra/testbench": "^9.0|^10.0", + "pestphp/pest": "^2.34|^3.0|^4.0", + "pestphp/pest-plugin-laravel": "^2.3|^3.0|^4.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan-deprecation-rules": "^1.0", "phpstan/phpstan-phpunit": "^1.1.1", @@ -4812,7 +4755,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-health/tree/1.34.8" + "source": "https://github.com/spatie/laravel-health/tree/1.34.9" }, "funding": [ { @@ -4820,38 +4763,38 @@ "type": "github" } ], - "time": "2025-10-10T08:08:20+00:00" + "time": "2025-11-28T09:47:19+00:00" }, { "name": "spatie/laravel-honeypot", - "version": "4.6.1", + "version": "4.6.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-honeypot.git", - "reference": "38d164f14939e943b92771859fc206c74cba8397" + "reference": "62ec9dbecd2a17a4e2af62b09675f89813295cac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-honeypot/zipball/38d164f14939e943b92771859fc206c74cba8397", - "reference": "38d164f14939e943b92771859fc206c74cba8397", + "url": "https://api.github.com/repos/spatie/laravel-honeypot/zipball/62ec9dbecd2a17a4e2af62b09675f89813295cac", + "reference": "62ec9dbecd2a17a4e2af62b09675f89813295cac", "shasum": "" }, "require": { - "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/encryption": "^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/http": "^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", - "illuminate/validation": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^11.0|^12.0", + "illuminate/encryption": "^11.0|^12.0", + "illuminate/http": "^11.0|^12.0", + "illuminate/support": "^11.0|^12.0", + "illuminate/validation": "^11.0|^12.0", "nesbot/carbon": "^2.0|^3.0", - "php": "^8.0", + "php": "^8.2", "spatie/laravel-package-tools": "^1.9", - "symfony/http-foundation": "^5.1.2|^6.0|^7.0" + "symfony/http-foundation": "^7.0|^8.0" }, "require-dev": { - "livewire/livewire": "^2.10|^3.0", - "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0", - "pestphp/pest-plugin-livewire": "^1.0|^2.1|^3.0", - "phpunit/phpunit": "^9.6|^10.5|^11.5", + "livewire/livewire": "^3.0", + "orchestra/testbench": "^9.0|^10.0", + "pestphp/pest": "^2.0|^3.0|^4.0", + "pestphp/pest-plugin-livewire": "^1.0|^2.1|^3.0|^4.0", "spatie/pest-plugin-snapshots": "^1.1|^2.1", "spatie/phpunit-snapshot-assertions": "^4.2|^5.1", "spatie/test-time": "^1.2.1" @@ -4888,7 +4831,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-honeypot/tree/4.6.1" + "source": "https://github.com/spatie/laravel-honeypot/tree/4.6.2" }, "funding": [ { @@ -4896,7 +4839,7 @@ "type": "custom" } ], - "time": "2025-05-05T13:50:37+00:00" + "time": "2025-11-28T09:57:48+00:00" }, { "name": "spatie/laravel-ignition", @@ -5052,16 +4995,16 @@ }, { "name": "spatie/laravel-permission", - "version": "6.22.0", + "version": "6.23.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-permission.git", - "reference": "8c87966ddc21893bfda54b792047473703992625" + "reference": "9e41247bd512b1e6c229afbc1eb528f7565ae3bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/8c87966ddc21893bfda54b792047473703992625", - "reference": "8c87966ddc21893bfda54b792047473703992625", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/9e41247bd512b1e6c229afbc1eb528f7565ae3bb", + "reference": "9e41247bd512b1e6c229afbc1eb528f7565ae3bb", "shasum": "" }, "require": { @@ -5123,7 +5066,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-permission/issues", - "source": "https://github.com/spatie/laravel-permission/tree/6.22.0" + "source": "https://github.com/spatie/laravel-permission/tree/6.23.0" }, "funding": [ { @@ -5131,7 +5074,7 @@ "type": "github" } ], - "time": "2025-10-27T21:58:45+00:00" + "time": "2025-11-03T20:16:13+00:00" }, { "name": "spatie/laravel-responsecache", @@ -5218,16 +5161,16 @@ }, { "name": "spatie/laravel-sitemap", - "version": "7.3.7", + "version": "7.3.8", "source": { "type": "git", "url": "https://github.com/spatie/laravel-sitemap.git", - "reference": "077b36c64bc4f373f4d95a1ac6ee1c0624acfdd3" + "reference": "9ff614d4834ada564aed5ed88507c9e5baab8e51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-sitemap/zipball/077b36c64bc4f373f4d95a1ac6ee1c0624acfdd3", - "reference": "077b36c64bc4f373f4d95a1ac6ee1c0624acfdd3", + "url": "https://api.github.com/repos/spatie/laravel-sitemap/zipball/9ff614d4834ada564aed5ed88507c9e5baab8e51", + "reference": "9ff614d4834ada564aed5ed88507c9e5baab8e51", "shasum": "" }, "require": { @@ -5237,7 +5180,7 @@ "php": "^8.2||^8.3||^8.4", "spatie/crawler": "^8.0.1", "spatie/laravel-package-tools": "^1.16.1", - "symfony/dom-crawler": "^6.3.4|^7.0" + "symfony/dom-crawler": "^6.3.4|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "^1.6.6", @@ -5279,7 +5222,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-sitemap/tree/7.3.7" + "source": "https://github.com/spatie/laravel-sitemap/tree/7.3.8" }, "funding": [ { @@ -5287,7 +5230,7 @@ "type": "custom" } ], - "time": "2025-08-25T08:07:09+00:00" + "time": "2025-11-25T21:06:08+00:00" }, { "name": "spatie/packagist-api", @@ -5430,16 +5373,16 @@ }, { "name": "spatie/robots-txt", - "version": "2.5.2", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/spatie/robots-txt.git", - "reference": "1b59dde3fd4e1b71967b40841369c6e9779282f3" + "reference": "edb91c798ec70583d41c131019da45fa167af5e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/robots-txt/zipball/1b59dde3fd4e1b71967b40841369c6e9779282f3", - "reference": "1b59dde3fd4e1b71967b40841369c6e9779282f3", + "url": "https://api.github.com/repos/spatie/robots-txt/zipball/edb91c798ec70583d41c131019da45fa167af5e8", + "reference": "edb91c798ec70583d41c131019da45fa167af5e8", "shasum": "" }, "require": { @@ -5474,7 +5417,7 @@ ], "support": { "issues": "https://github.com/spatie/robots-txt/issues", - "source": "https://github.com/spatie/robots-txt/tree/2.5.2" + "source": "https://github.com/spatie/robots-txt/tree/2.5.3" }, "funding": [ { @@ -5486,7 +5429,7 @@ "type": "github" } ], - "time": "2025-09-19T10:37:01+00:00" + "time": "2025-11-20T13:00:33+00:00" }, { "name": "spatie/security-advisories-health-check", @@ -5612,16 +5555,16 @@ }, { "name": "symfony/clock", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" + "reference": "9169f24776edde469914c1e7a1442a50f7a4e110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", - "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "url": "https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110", + "reference": "9169f24776edde469914c1e7a1442a50f7a4e110", "shasum": "" }, "require": { @@ -5666,7 +5609,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.3.0" + "source": "https://github.com/symfony/clock/tree/v7.4.0" }, "funding": [ { @@ -5677,25 +5620,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2025-11-12T15:39:26+00:00" }, { "name": "symfony/console", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "cdb80fa5869653c83cfe1a9084a673b6daf57ea7" + "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cdb80fa5869653c83cfe1a9084a673b6daf57ea7", - "reference": "cdb80fa5869653c83cfe1a9084a673b6daf57ea7", + "url": "https://api.github.com/repos/symfony/console/zipball/0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", + "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", "shasum": "" }, "require": { @@ -5703,7 +5650,7 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2" + "symfony/string": "^7.2|^8.0" }, "conflict": { "symfony/dependency-injection": "<6.4", @@ -5717,16 +5664,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/lock": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/lock": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -5760,7 +5707,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.3.5" + "source": "https://github.com/symfony/console/tree/v7.4.0" }, "funding": [ { @@ -5780,20 +5727,20 @@ "type": "tidelift" } ], - "time": "2025-10-14T15:46:26+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/css-selector", - "version": "v7.3.0", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", - "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135", + "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135", "shasum": "" }, "require": { @@ -5829,7 +5776,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.3.0" + "source": "https://github.com/symfony/css-selector/tree/v7.4.0" }, "funding": [ { @@ -5840,12 +5787,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-25T14:21:43+00:00" + "time": "2025-10-30T13:39:42+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5916,26 +5867,25 @@ }, { "name": "symfony/dom-crawler", - "version": "v7.3.3", + "version": "v8.0.0", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba" + "reference": "15d1f7555f3337ded097dbe01c6ea6c59564a64a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/efa076ea0eeff504383ff0dcf827ea5ce15690ba", - "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/15d1f7555f3337ded097dbe01c6ea6c59564a64a", + "reference": "15d1f7555f3337ded097dbe01c6ea6c59564a64a", "shasum": "" }, "require": { - "masterminds/html5": "^2.6", - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { - "symfony/css-selector": "^6.4|^7.0" + "symfony/css-selector": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -5963,7 +5913,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.3.3" + "source": "https://github.com/symfony/dom-crawler/tree/v8.0.0" }, "funding": [ { @@ -5983,36 +5933,37 @@ "type": "tidelift" } ], - "time": "2025-08-06T20:13:54+00:00" + "time": "2025-11-01T09:19:23+00:00" }, { "name": "symfony/error-handler", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4" + "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", - "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/48be2b0653594eea32dcef130cca1c811dcf25c2", + "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2", "shasum": "" }, "require": { "php": ">=8.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^6.4|^7.0" + "symfony/polyfill-php85": "^1.32", + "symfony/var-dumper": "^6.4|^7.0|^8.0" }, "conflict": { "symfony/deprecation-contracts": "<2.5", "symfony/http-kernel": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0|^8.0", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4|^7.0|^8.0", "symfony/webpack-encore-bundle": "^1.0|^2.0" }, "bin": [ @@ -6044,7 +5995,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.3.4" + "source": "https://github.com/symfony/error-handler/tree/v7.4.0" }, "funding": [ { @@ -6064,28 +6015,28 @@ "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-11-05T14:29:59+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.3.3", + "version": "v8.0.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" + "reference": "573f95783a2ec6e38752979db139f09fec033f03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/573f95783a2ec6e38752979db139f09fec033f03", + "reference": "573f95783a2ec6e38752979db139f09fec033f03", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/event-dispatcher-contracts": "^2.5|^3" }, "conflict": { - "symfony/dependency-injection": "<6.4", + "symfony/security-http": "<7.4", "symfony/service-contracts": "<2.5" }, "provide": { @@ -6094,13 +6045,14 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", + "symfony/config": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/error-handler": "^7.4|^8.0", + "symfony/expression-language": "^7.4|^8.0", + "symfony/framework-bundle": "^7.4|^8.0", + "symfony/http-foundation": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" + "symfony/stopwatch": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -6128,7 +6080,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.0" }, "funding": [ { @@ -6148,7 +6100,7 @@ "type": "tidelift" } ], - "time": "2025-08-13T11:49:31+00:00" + "time": "2025-10-30T14:17:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6228,23 +6180,23 @@ }, { "name": "symfony/finder", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f" + "reference": "340b9ed7320570f319028a2cbec46d40535e94bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f", + "url": "https://api.github.com/repos/symfony/finder/zipball/340b9ed7320570f319028a2cbec46d40535e94bd", + "reference": "340b9ed7320570f319028a2cbec46d40535e94bd", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0" + "symfony/filesystem": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -6272,7 +6224,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.3.5" + "source": "https://github.com/symfony/finder/tree/v7.4.0" }, "funding": [ { @@ -6292,27 +6244,26 @@ "type": "tidelift" } ], - "time": "2025-10-15T18:45:57+00:00" + "time": "2025-11-05T05:42:40+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ce31218c7cac92eab280762c4375fb70a6f4f897" + "reference": "769c1720b68e964b13b58529c17d4a385c62167b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce31218c7cac92eab280762c4375fb70a6f4f897", - "reference": "ce31218c7cac92eab280762c4375fb70a6f4f897", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/769c1720b68e964b13b58529c17d4a385c62167b", + "reference": "769c1720b68e964b13b58529c17d4a385c62167b", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "^1.1" }, "conflict": { "doctrine/dbal": "<3.6", @@ -6321,13 +6272,13 @@ "require-dev": { "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.4.12|^7.1.5", - "symfony/clock": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/mime": "^6.4|^7.0", - "symfony/rate-limiter": "^6.4|^7.0" + "symfony/cache": "^6.4.12|^7.1.5|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/mime": "^6.4|^7.0|^8.0", + "symfony/rate-limiter": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -6355,7 +6306,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.3.5" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.0" }, "funding": [ { @@ -6375,29 +6326,29 @@ "type": "tidelift" } ], - "time": "2025-10-24T21:42:11+00:00" + "time": "2025-11-13T08:49:24+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "24fd3f123532e26025f49f1abefcc01a69ef15ab" + "reference": "7348193cd384495a755554382e4526f27c456085" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/24fd3f123532e26025f49f1abefcc01a69ef15ab", - "reference": "24fd3f123532e26025f49f1abefcc01a69ef15ab", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7348193cd384495a755554382e4526f27c456085", + "reference": "7348193cd384495a755554382e4526f27c456085", "shasum": "" }, "require": { "php": ">=8.2", "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", - "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^7.3", - "symfony/http-foundation": "^7.3", + "symfony/error-handler": "^6.4|^7.0|^8.0", + "symfony/event-dispatcher": "^7.3|^8.0", + "symfony/http-foundation": "^7.4|^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -6407,6 +6358,7 @@ "symfony/console": "<6.4", "symfony/dependency-injection": "<6.4", "symfony/doctrine-bridge": "<6.4", + "symfony/flex": "<2.10", "symfony/form": "<6.4", "symfony/http-client": "<6.4", "symfony/http-client-contracts": "<2.5", @@ -6424,27 +6376,27 @@ }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^6.4|^7.0", - "symfony/clock": "^6.4|^7.0", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/css-selector": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/dom-crawler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", + "symfony/browser-kit": "^6.4|^7.0|^8.0", + "symfony/clock": "^6.4|^7.0|^8.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/css-selector": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/dom-crawler": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3", - "symfony/process": "^6.4|^7.0", - "symfony/property-access": "^7.1", - "symfony/routing": "^6.4|^7.0", - "symfony/serializer": "^7.1", - "symfony/stopwatch": "^6.4|^7.0", - "symfony/translation": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-access": "^7.1|^8.0", + "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/serializer": "^7.1|^8.0", + "symfony/stopwatch": "^6.4|^7.0|^8.0", + "symfony/translation": "^6.4|^7.0|^8.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/uid": "^6.4|^7.0", - "symfony/validator": "^6.4|^7.0", - "symfony/var-dumper": "^6.4|^7.0", - "symfony/var-exporter": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0|^8.0", + "symfony/validator": "^6.4|^7.0|^8.0", + "symfony/var-dumper": "^6.4|^7.0|^8.0", + "symfony/var-exporter": "^6.4|^7.0|^8.0", "twig/twig": "^3.12" }, "type": "library", @@ -6473,7 +6425,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.3.5" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.0" }, "funding": [ { @@ -6493,20 +6445,20 @@ "type": "tidelift" } ], - "time": "2025-10-28T10:19:01+00:00" + "time": "2025-11-27T13:38:24+00:00" }, { "name": "symfony/mailer", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba" + "reference": "a3d9eea8cfa467ece41f0f54ba28185d74bd53fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/fd497c45ba9c10c37864e19466b090dcb60a50ba", - "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba", + "url": "https://api.github.com/repos/symfony/mailer/zipball/a3d9eea8cfa467ece41f0f54ba28185d74bd53fd", + "reference": "a3d9eea8cfa467ece41f0f54ba28185d74bd53fd", "shasum": "" }, "require": { @@ -6514,8 +6466,8 @@ "php": ">=8.2", "psr/event-dispatcher": "^1", "psr/log": "^1|^2|^3", - "symfony/event-dispatcher": "^6.4|^7.0", - "symfony/mime": "^7.2", + "symfony/event-dispatcher": "^6.4|^7.0|^8.0", + "symfony/mime": "^7.2|^8.0", "symfony/service-contracts": "^2.5|^3" }, "conflict": { @@ -6526,10 +6478,10 @@ "symfony/twig-bridge": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", - "symfony/http-client": "^6.4|^7.0", - "symfony/messenger": "^6.4|^7.0", - "symfony/twig-bridge": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-client": "^6.4|^7.0|^8.0", + "symfony/messenger": "^6.4|^7.0|^8.0", + "symfony/twig-bridge": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -6557,7 +6509,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.3.5" + "source": "https://github.com/symfony/mailer/tree/v7.4.0" }, "funding": [ { @@ -6577,24 +6529,25 @@ "type": "tidelift" } ], - "time": "2025-10-24T14:27:20+00:00" + "time": "2025-11-21T15:26:00+00:00" }, { "name": "symfony/mime", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35" + "reference": "bdb02729471be5d047a3ac4a69068748f1a6be7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35", - "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35", + "url": "https://api.github.com/repos/symfony/mime/zipball/bdb02729471be5d047a3ac4a69068748f1a6be7a", + "reference": "bdb02729471be5d047a3ac4a69068748f1a6be7a", "shasum": "" }, "require": { "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, @@ -6609,11 +6562,11 @@ "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/property-access": "^6.4|^7.0", - "symfony/property-info": "^6.4|^7.0", - "symfony/serializer": "^6.4.3|^7.0.3" + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/property-access": "^6.4|^7.0|^8.0", + "symfony/property-info": "^6.4|^7.0|^8.0", + "symfony/serializer": "^6.4.3|^7.0.3|^8.0" }, "type": "library", "autoload": { @@ -6645,7 +6598,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.3.4" + "source": "https://github.com/symfony/mime/tree/v7.4.0" }, "funding": [ { @@ -6665,7 +6618,7 @@ "type": "tidelift" } ], - "time": "2025-09-16T08:38:17+00:00" + "time": "2025-11-16T10:14:42+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7498,16 +7451,16 @@ }, { "name": "symfony/process", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" + "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", + "url": "https://api.github.com/repos/symfony/process/zipball/7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", + "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", "shasum": "" }, "require": { @@ -7539,7 +7492,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.3.4" + "source": "https://github.com/symfony/process/tree/v7.4.0" }, "funding": [ { @@ -7559,20 +7512,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-10-16T11:21:06+00:00" }, { "name": "symfony/routing", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c" + "reference": "4720254cb2644a0b876233d258a32bf017330db7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8dc648e159e9bac02b703b9fbd937f19ba13d07c", - "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c", + "url": "https://api.github.com/repos/symfony/routing/zipball/4720254cb2644a0b876233d258a32bf017330db7", + "reference": "4720254cb2644a0b876233d258a32bf017330db7", "shasum": "" }, "require": { @@ -7586,11 +7539,11 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/yaml": "^6.4|^7.0" + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/expression-language": "^6.4|^7.0|^8.0", + "symfony/http-foundation": "^6.4|^7.0|^8.0", + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7624,7 +7577,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.3.4" + "source": "https://github.com/symfony/routing/tree/v7.4.0" }, "funding": [ { @@ -7644,20 +7597,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -7711,7 +7664,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -7722,43 +7675,47 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-25T09:37:31+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/string", - "version": "v7.3.4", + "version": "v8.0.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f96476035142921000338bad71e5247fbc138872" + "reference": "f929eccf09531078c243df72398560e32fa4cf4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", - "reference": "f96476035142921000338bad71e5247fbc138872", + "url": "https://api.github.com/repos/symfony/string/zipball/f929eccf09531078c243df72398560e32fa4cf4f", + "reference": "f929eccf09531078c243df72398560e32fa4cf4f", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=8.4", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-intl-grapheme": "^1.33", + "symfony/polyfill-intl-normalizer": "^1.0", + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1", - "symfony/http-client": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/emoji": "^7.4|^8.0", + "symfony/http-client": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0" + "symfony/var-exporter": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -7797,7 +7754,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.4" + "source": "https://github.com/symfony/string/tree/v8.0.0" }, "funding": [ { @@ -7817,27 +7774,27 @@ "type": "tidelift" } ], - "time": "2025-09-11T14:36:48+00:00" + "time": "2025-09-11T14:37:55+00:00" }, { "name": "symfony/translation", - "version": "v7.3.4", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "ec25870502d0c7072d086e8ffba1420c85965174" + "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/ec25870502d0c7072d086e8ffba1420c85965174", - "reference": "ec25870502d0c7072d086e8ffba1420c85965174", + "url": "https://api.github.com/repos/symfony/translation/zipball/2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", + "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", "shasum": "" }, "require": { "php": ">=8.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5|^3.0" + "symfony/translation-contracts": "^2.5.3|^3.3" }, "conflict": { "nikic/php-parser": "<5.0", @@ -7856,17 +7813,17 @@ "require-dev": { "nikic/php-parser": "^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/console": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/finder": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0|^8.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/finder": "^6.4|^7.0|^8.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/intl": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/intl": "^6.4|^7.0|^8.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^6.4|^7.0", + "symfony/routing": "^6.4|^7.0|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0" + "symfony/yaml": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -7897,7 +7854,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.3.4" + "source": "https://github.com/symfony/translation/tree/v7.4.0" }, "funding": [ { @@ -7917,20 +7874,20 @@ "type": "tidelift" } ], - "time": "2025-09-07T11:39:36+00:00" + "time": "2025-11-27T13:27:24+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d" + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d", - "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", "shasum": "" }, "require": { @@ -7979,7 +7936,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" }, "funding": [ { @@ -7990,25 +7947,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-27T08:32:26+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/uid", - "version": "v7.3.1", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb" + "reference": "2498e9f81b7baa206f44de583f2f48350b90142c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/a69f69f3159b852651a6bf45a9fdd149520525bb", - "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb", + "url": "https://api.github.com/repos/symfony/uid/zipball/2498e9f81b7baa206f44de583f2f48350b90142c", + "reference": "2498e9f81b7baa206f44de583f2f48350b90142c", "shasum": "" }, "require": { @@ -8016,7 +7977,7 @@ "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "symfony/console": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0" }, "type": "library", "autoload": { @@ -8053,7 +8014,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.3.1" + "source": "https://github.com/symfony/uid/tree/v7.4.0" }, "funding": [ { @@ -8064,25 +8025,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-06-27T19:55:54+00:00" + "time": "2025-09-25T11:02:55+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d" + "reference": "41fd6c4ae28c38b294b42af6db61446594a0dece" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/476c4ae17f43a9a36650c69879dcf5b1e6ae724d", - "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/41fd6c4ae28c38b294b42af6db61446594a0dece", + "reference": "41fd6c4ae28c38b294b42af6db61446594a0dece", "shasum": "" }, "require": { @@ -8094,10 +8059,10 @@ "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", - "symfony/http-kernel": "^6.4|^7.0", - "symfony/process": "^6.4|^7.0", - "symfony/uid": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^6.4|^7.0|^8.0", + "symfony/process": "^6.4|^7.0|^8.0", + "symfony/uid": "^6.4|^7.0|^8.0", "twig/twig": "^3.12" }, "bin": [ @@ -8136,7 +8101,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.3.5" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.0" }, "funding": [ { @@ -8156,7 +8121,7 @@ "type": "tidelift" } ], - "time": "2025-09-27T09:00:46+00:00" + "time": "2025-10-27T20:36:44+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -8370,64 +8335,6 @@ } ], "time": "2024-11-21T01:49:47+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.12.1", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-date": "*", - "ext-filter": "*", - "php": "^7.2 || ^8.0" - }, - "suggest": { - "ext-intl": "", - "ext-simplexml": "", - "ext-spl": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.12.1" - }, - "time": "2025-10-29T15:56:20+00:00" } ], "packages-dev": [ @@ -9014,16 +8921,16 @@ }, { "name": "laravel/pint", - "version": "v1.25.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9" + "reference": "69dcca060ecb15e4b564af63d1f642c81a241d6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/5016e263f95d97670d71b9a987bd8996ade6d8d9", - "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9", + "url": "https://api.github.com/repos/laravel/pint/zipball/69dcca060ecb15e4b564af63d1f642c81a241d6f", + "reference": "69dcca060ecb15e4b564af63d1f642c81a241d6f", "shasum": "" }, "require": { @@ -9034,13 +8941,13 @@ "php": "^8.2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.87.2", - "illuminate/view": "^11.46.0", - "larastan/larastan": "^3.7.1", - "laravel-zero/framework": "^11.45.0", + "friendsofphp/php-cs-fixer": "^3.90.0", + "illuminate/view": "^12.40.1", + "larastan/larastan": "^3.8.0", + "laravel-zero/framework": "^12.0.4", "mockery/mockery": "^1.6.12", - "nunomaduro/termwind": "^2.3.1", - "pestphp/pest": "^2.36.0" + "nunomaduro/termwind": "^2.3.3", + "pestphp/pest": "^3.8.4" }, "bin": [ "builds/pint" @@ -9066,6 +8973,7 @@ "description": "An opinionated code formatter for PHP.", "homepage": "https://laravel.com", "keywords": [ + "dev", "format", "formatter", "lint", @@ -9076,20 +8984,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2025-09-19T02:57:12+00:00" + "time": "2025-11-25T21:15:52+00:00" }, { "name": "laravel/sail", - "version": "v1.47.0", + "version": "v1.48.1", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "9a11e822238167ad8b791e4ea51155d25cf4d8f2" + "reference": "ef122b223f5fca5e5d88bda5127c846710886329" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/9a11e822238167ad8b791e4ea51155d25cf4d8f2", - "reference": "9a11e822238167ad8b791e4ea51155d25cf4d8f2", + "url": "https://api.github.com/repos/laravel/sail/zipball/ef122b223f5fca5e5d88bda5127c846710886329", + "reference": "ef122b223f5fca5e5d88bda5127c846710886329", "shasum": "" }, "require": { @@ -9139,7 +9047,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2025-10-28T13:55:29+00:00" + "time": "2025-11-17T22:05:34+00:00" }, { "name": "mockery/mockery", @@ -9286,16 +9194,16 @@ }, { "name": "nunomaduro/collision", - "version": "v8.8.2", + "version": "v8.8.3", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "60207965f9b7b7a4ce15a0f75d57f9dadb105bdb" + "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/60207965f9b7b7a4ce15a0f75d57f9dadb105bdb", - "reference": "60207965f9b7b7a4ce15a0f75d57f9dadb105bdb", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/1dc9e88d105699d0fee8bb18890f41b274f6b4c4", + "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4", "shasum": "" }, "require": { @@ -9317,7 +9225,7 @@ "laravel/sanctum": "^4.1.1", "laravel/tinker": "^2.10.1", "orchestra/testbench-core": "^9.12.0 || ^10.4", - "pestphp/pest": "^3.8.2", + "pestphp/pest": "^3.8.2 || ^4.0.0", "sebastian/environment": "^7.2.1 || ^8.0" }, "type": "library", @@ -9381,7 +9289,7 @@ "type": "patreon" } ], - "time": "2025-06-25T02:12:12+00:00" + "time": "2025-11-20T02:55:25+00:00" }, { "name": "pestphp/pest", @@ -10219,16 +10127,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.3", + "version": "5.6.5", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9" + "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94f8051919d1b0369a6bcc7931d679a511c03fe9", - "reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90614c73d3800e187615e2dd236ad0e2a01bf761", + "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761", "shasum": "" }, "require": { @@ -10277,22 +10185,22 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.3" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.5" }, - "time": "2025-08-01T19:43:32+00:00" + "time": "2025-11-27T19:50:05+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.10.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", - "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", + "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", "shasum": "" }, "require": { @@ -10335,9 +10243,9 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.12.0" }, - "time": "2024-11-09T15:12:26+00:00" + "time": "2025-11-21T15:09:14+00:00" }, { "name": "phpstan/extension-installer", @@ -11924,41 +11832,42 @@ }, { "name": "spatie/laravel-ray", - "version": "1.41.0", + "version": "1.43.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ray.git", - "reference": "7b9cfdb024a390171397c14dbf321727d940bac5" + "reference": "108454d234d1aec7bd0ed9e1af4c2c0d794ff340" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/7b9cfdb024a390171397c14dbf321727d940bac5", - "reference": "7b9cfdb024a390171397c14dbf321727d940bac5", + "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/108454d234d1aec7bd0ed9e1af4c2c0d794ff340", + "reference": "108454d234d1aec7bd0ed9e1af4c2c0d794ff340", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "ext-json": "*", - "illuminate/contracts": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", - "illuminate/database": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", - "illuminate/queue": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", - "illuminate/support": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", - "php": "^7.4 || ^8.0", + "illuminate/contracts": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", + "illuminate/database": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", + "illuminate/queue": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", + "php": "^7.4|^8.0", "spatie/backtrace": "^1.7.1", - "spatie/ray": "^1.41.3", - "symfony/stopwatch": "4.2 || ^5.1 || ^6.0 || ^7.0", - "zbateson/mail-mime-parser": "^1.3.1 || ^2.0 || ^3.0" + "spatie/ray": "^1.44.0", + "symfony/stopwatch": "4.2|^5.1|^6.0|^7.0|^8.0", + "zbateson/mail-mime-parser": "^1.3.1|^2.0|^3.0" }, "require-dev": { "guzzlehttp/guzzle": "^7.3", - "laravel/framework": "^7.20 || ^8.19 || ^9.0 || ^10.0 || ^11.0 || ^12.0", - "orchestra/testbench-core": "^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0", - "pestphp/pest": "^1.22 || ^2.0 || ^3.0 || ^4.0", - "phpstan/phpstan": "^1.10.57 || ^2.0.2", - "phpunit/phpunit": "^9.3 || ^10.1 || ^11.0.10 || ^12.4", - "rector/rector": "^0.19.2 || ^1.0.1 || ^2.0.0", - "spatie/pest-plugin-snapshots": "^1.1 || ^2.0", - "symfony/var-dumper": "^4.2 || ^5.1 || ^6.0 || ^7.0.3" + "laravel/framework": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", + "laravel/pint": "^1.25", + "orchestra/testbench-core": "^5.0|^6.0|^7.0|^8.0|^9.0|^10.0", + "pestphp/pest": "^1.22|^2.0|^3.0|^4.0", + "phpstan/phpstan": "^1.10.57|^2.0.2", + "phpunit/phpunit": "^9.3|^10.1|^11.0.10|^12.4", + "rector/rector": "^0.19.2|^1.0.1|^2.0.0", + "spatie/pest-plugin-snapshots": "^1.1|^2.0", + "symfony/var-dumper": "^4.2|^5.1|^6.0|^7.0.3|^8.0" }, "type": "library", "extra": { @@ -11996,7 +11905,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.41.0" + "source": "https://github.com/spatie/laravel-ray/tree/1.43.1" }, "funding": [ { @@ -12008,7 +11917,7 @@ "type": "other" } ], - "time": "2025-10-16T10:19:22+00:00" + "time": "2025-11-24T15:54:04+00:00" }, { "name": "spatie/macroable", @@ -12062,35 +11971,35 @@ }, { "name": "spatie/ray", - "version": "1.43.1", + "version": "1.44.1", "source": { "type": "git", "url": "https://github.com/spatie/ray.git", - "reference": "2104ba5fb20cceda04aaa72dc7a4786a89c67cb4" + "reference": "588e201dda9bd94ce27af365f5a734b1de706a81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/2104ba5fb20cceda04aaa72dc7a4786a89c67cb4", - "reference": "2104ba5fb20cceda04aaa72dc7a4786a89c67cb4", + "url": "https://api.github.com/repos/spatie/ray/zipball/588e201dda9bd94ce27af365f5a734b1de706a81", + "reference": "588e201dda9bd94ce27af365f5a734b1de706a81", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", - "php": "^7.4 || ^8.0", - "ramsey/uuid": "^3.0 || ^4.1", + "php": "^7.4|^8.0", + "ramsey/uuid": "^3.0|^4.1", "spatie/backtrace": "^1.7.1", - "spatie/macroable": "^1.0 || ^2.0", - "symfony/stopwatch": "^4.2 || ^5.1 || ^6.0 || ^7.0", - "symfony/var-dumper": "^4.2 || ^5.1 || ^6.0 || ^7.0.3" + "spatie/macroable": "^1.0|^2.0", + "symfony/stopwatch": "^4.2|^5.1|^6.0|^7.0|^8.0", + "symfony/var-dumper": "^4.2|^5.1|^6.0|^7.0.3|^8.0" }, "require-dev": { - "illuminate/support": "^7.20 || ^8.18 || ^9.0 || ^10.0 || ^11.0 || ^12.0", - "nesbot/carbon": "^2.63 || ^3.8.4", + "illuminate/support": "^7.20|^8.18|^9.0|^10.0|^11.0|^12.0", + "nesbot/carbon": "^2.63|^3.8.4", "pestphp/pest": "^1.22", - "phpstan/phpstan": "^1.10.57 || ^2.0.3", + "phpstan/phpstan": "^1.10.57|^2.0.3", "phpunit/phpunit": "^9.5", - "rector/rector": "^0.19.2 || ^1.0.1 || ^2.0.0", + "rector/rector": "^0.19.2|^1.0.1|^2.0.0", "spatie/phpunit-snapshot-assertions": "^4.2", "spatie/test-time": "^1.2" }, @@ -12131,7 +12040,7 @@ ], "support": { "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.43.1" + "source": "https://github.com/spatie/ray/tree/1.44.1" }, "funding": [ { @@ -12143,7 +12052,7 @@ "type": "other" } ], - "time": "2025-10-29T14:30:35+00:00" + "time": "2025-11-21T10:44:03+00:00" }, { "name": "staabm/side-effects-detector", @@ -12283,20 +12192,20 @@ }, { "name": "symfony/stopwatch", - "version": "v7.3.0", + "version": "v8.0.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd" + "reference": "67df1914c6ccd2d7b52f70d40cf2aea02159d942" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", - "reference": "5a49289e2b308214c8b9c2fda4ea454d8b8ad7cd", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/67df1914c6ccd2d7b52f70d40cf2aea02159d942", + "reference": "67df1914c6ccd2d7b52f70d40cf2aea02159d942", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.4", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -12325,7 +12234,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.3.0" + "source": "https://github.com/symfony/stopwatch/tree/v8.0.0" }, "funding": [ { @@ -12336,37 +12245,41 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-02-24T10:49:57+00:00" + "time": "2025-08-04T07:36:47+00:00" }, { "name": "symfony/yaml", - "version": "v7.3.5", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc" + "reference": "6c84a4b55aee4cd02034d1c528e83f69ddf63810" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/90208e2fc6f68f613eae7ca25a2458a931b1bacc", - "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc", + "url": "https://api.github.com/repos/symfony/yaml/zipball/6c84a4b55aee4cd02034d1c528e83f69ddf63810", + "reference": "6c84a4b55aee4cd02034d1c528e83f69ddf63810", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8" }, "conflict": { "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0" + "symfony/console": "^6.4|^7.0|^8.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -12397,7 +12310,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.3.5" + "source": "https://github.com/symfony/yaml/tree/v7.4.0" }, "funding": [ { @@ -12417,7 +12330,7 @@ "type": "tidelift" } ], - "time": "2025-09-27T09:00:46+00:00" + "time": "2025-11-16T10:14:42+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", @@ -12480,16 +12393,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", "shasum": "" }, "require": { @@ -12518,7 +12431,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + "source": "https://github.com/theseer/tokenizer/tree/1.3.1" }, "funding": [ { @@ -12526,7 +12439,7 @@ "type": "github" } ], - "time": "2024-03-03T12:36:25+00:00" + "time": "2025-11-17T20:03:58+00:00" }, { "name": "tomasvotruba/type-coverage", @@ -12585,6 +12498,64 @@ ], "time": "2025-01-07T00:10:26+00:00" }, + { + "name": "webmozart/assert", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", + "php": "^7.2 || ^8.0" + }, + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.12.1" + }, + "time": "2025-10-29T15:56:20+00:00" + }, { "name": "zbateson/mail-mime-parser", "version": "3.0.4", diff --git a/database/files/legal/de_CH/terms.md b/database/files/legal/de_CH/terms.md index e69de29..23447f1 100644 --- a/database/files/legal/de_CH/terms.md +++ b/database/files/legal/de_CH/terms.md @@ -0,0 +1,188 @@ +# Allgemeine Geschäftsbedingungen (AGB) + +--- + +## 1. Allgemeiner Teil + +### 1.1 Anwendungsbereich +Diese Allgemeinen Geschäftsbedingungen (AGB) regeln sämtliche Vertragsbeziehungen zwischen der **codebar Solutions AG** (nachfolgend „codebar“) und ihren Kunden. Sie gelten für alle Dienstleistungen und Produkte, insbesondere: + +- Individualsoftwareentwicklung +- Software Engineering & Architektur +- Schnittstellen- und Systemintegrationen +- Beratung, Workshops & technische Konzeption +- Wartungs-, Support- & Serviceverträge +- Weiterentwicklung bestehender Systeme +- DevOps-, Automatisierungs- und Deployment-Services + +Abweichende Bedingungen des Kunden gelten nur, wenn sie von codebar ausdrücklich und schriftlich anerkannt wurden. + +### 1.2 Angebote & Bestellung +Offerten sind in der Regel **30 Tage gültig**, sofern nichts anderes vermerkt ist. +Bei Softwareentwicklungsleistungen basieren Offerten auf **Schätzungen**. Diese stellen keine verbindliche Zusage dar, da Aufwand und Termine im Projektverlauf variieren können. + +Ein Auftrag kommt zustande durch: +- schriftliche Bestätigung (E-Mail oder Unterzeichnung) +- oder Start der Entwicklungsarbeiten mit Einverständnis des Kunden + +Änderungen des Leistungsumfangs (Change Requests) sind jederzeit möglich, werden jedoch nach Aufwand separat verrechnet, sofern nichts anderes vereinbart wird. + +### 1.3 Vertragsabschluss +Der Vertrag gilt mit schriftlicher Bestätigung oder Arbeitsbeginn durch codebar als abgeschlossen. codebar kann Angebote innert 10 Tagen widerrufen. + +### 1.4 Vertragsbeginn +Dienstleistungen treten mit dem vereinbarten Datum oder, mangels Datum, mit Start der Arbeiten in Kraft. + +### 1.5 Vertragsende +Projektverträge enden mit der Übergabe bzw. Abnahme der Leistungen. + +Support- und Wartungsverträge verlängern sich **stillschweigend um ein Jahr**, sofern nicht 3 Monate vor Ablauf schriftlich gekündigt. + +### 1.6 Preise +Alle Preise verstehen sich netto in CHF exkl. MwSt. +Dienstleistungen werden nach effektivem Aufwand zu den vereinbarten Stundensätzen verrechnet, ausser es wurde schriftlich ein Fixpreis vereinbart. + +### 1.7 Zahlungsbedingungen +Rechnungen sind innert **10 Tagen** zahlbar. Bei Verzug: 5 % Verzugszins. + +### 1.8 Zahlungsverzug des Kunden +Bei Zahlungsverzug kann codebar: +- Arbeiten pausieren +- Datenzugriffe einschränken (falls Hosting durch codebar) +- Verzugszins sowie entstandenen Aufwand in Rechnung stellen + +### 1.9 Ausserordentliche Kündigung +Eine sofortige Vertragsauflösung ist möglich: +- bei schwerem Vertragsbruch +- Zahlungsunfähigkeit / Insolvenz +- Verweigerung der Mitwirkung durch Kunden + +--- + +## 2. Dienstleistungen & Projektabwicklung + +### 2.1 Leistungserbringung +codebar erbringt alle Leistungen nach bestem Wissen und gemäss aktuellem Stand der Technik. +Dienstleistungen können teilweise durch qualifizierte Dritte erbracht werden. + +### 2.2 Projektmethodik +Sofern nicht anders vereinbart, erfolgen Projekte **agil** (z. B. Scrum/Kanban). +Die Kundenseite verpflichtet sich zur: +- Priorisierung von Anforderungen +- Bereitstellung von Feedback innerhalb nützlicher Frist +- Freigaben pro Sprint/Release + +### 2.3 Termine +Termine sind **Schätzwerte** und nicht verbindlich, sofern nicht ausdrücklich zugesichert. +Verspätungen aufgrund Kundentätigkeiten (z. B. fehlende Daten, Inputs, Entscheidungen) verlängern die Termine entsprechend. + +### 2.4 Übergabe & Abnahme +Eine Abnahme erfolgt: +- formal durch Abnahmeprotokoll +- oder automatisch 14 Tage nach Bereitstellung, falls keine schriftlichen Mängelmeldung erfolgt +- oder durch produktiven Einsatz der Software + +### 2.5 Gewährleistung +codebar gewährleistet während **3 Monaten** ab Abnahme, dass die Software den vereinbarten Anforderungen entspricht. + +Nicht als Mängel gelten: +- neue Anforderungen / Funktionswünsche +- Drittprobleme (Hosting, Browser, Betriebssysteme, externe APIs) +- Anpassungen durch den Kunden oder Dritte + +Gewährleistung beschränkt sich auf **Nachbesserung**. + +### 2.6 Selbstverschulden +Bei eigenmächtigen Änderungen (Code, Systeme, Deployments) oder unsachgemässer Nutzung entfallen sämtliche Ansprüche. + +### 2.7 Change Management +Sämtliche Änderungen des Leistungsumfangs gelten als Change Request und werden nach Aufwand verrechnet, sofern nicht schriftlich anders festgelegt. + +### 2.8 Zusatzaufwand +Separat verrechnet werden insbesondere: +- Fehleranalyse bei Fremdsoftware oder Kundensystemen +- Wiederherstellung nach Datenverlust ohne Backupvertrag +- zusätzliche Iterationen aufgrund fehlender Kundenauskunft +- Arbeiten ausserhalb der üblichen Arbeitszeiten + +### 2.9 Mitwirkungspflichten des Kunden +Der Kunde verpflichtet sich, alle notwendigen Mitwirkungen rechtzeitig zu erbringen, insbesondere: +- Bereitstellung von Systemzugängen & Testdaten +- rechtzeitiges Feedback, Freigaben, Ansprechpersonen +- Sicherstellung der IT-Sicherheit seiner Infrastruktur +- Durchführung eigener Abnahmetests + +Kommen Kundenpflichten nicht nach, kann codebar Mehraufwand verrechnen. + +--- + +## 3. Nutzungsrechte & geistiges Eigentum (IP) + +### 3.1 Eigentum & Nutzungsrechte +Sofern im Einzelvertrag nicht anders festgelegt, gilt: + +- **codebar behält sämtliche Rechte** an generischen Komponenten, Frameworks, Libraries, Tools und Entwicklungs-Know-how. +- Der Kunde erhält ein **nicht-exklusives, zeitlich unbeschränktes Nutzungsrecht** an den spezifisch für ihn entwickelten Teilen. + +### 3.2 Herausgabe von Quellcode +Der Kunde erhält den Quellcode, sofern dies Vertragsbestandteil ist. +Ohne besondere Vereinbarung erhält der Kunde: +- Zugriff auf Build-Artefakte +- aber keinen Anspruch auf interne Tools, Frameworks oder Prozessdokumentationen + +### 3.3 Drittsoftware & Open Source +Bei Einsatz von Drittsoftware oder Open-Source-Komponenten gelten deren jeweiligen Lizenzbedingungen. + +--- + +## 4. Haftung + +### 4.1 Haftungsumfang +Die Haftung von codebar ist – soweit gesetzlich zulässig – beschränkt auf **den Wert der letzten drei Monatsrechnungen** oder maximal **CHF 50’000**, je nachdem, welcher Betrag tiefer ist. + +### 4.2 Haftungsausschlüsse +codebar haftet nicht für: +- indirekte Schäden (Umsatzverlust, Produktionsausfall, Datenverlust etc.) +- Probleme durch Drittsoftware oder externe Systeme +- Hosting- oder Infrastrukturfehler des Kunden +- Sicherheitsvorfälle ohne entsprechenden Sicherheitsvertrag + +### 4.3 Datensicherung +Der Kunde ist für Backups verantwortlich, ausser es wurde ein Hosting-/Backupvertrag abgeschlossen. + +--- + +## 5. Support, Wartung & SLAs +Supportleistungen erfolgen nach Aufwand, sofern kein Wartungsvertrag besteht. + +SLA-Level werden in separaten Verträgen geregelt. + +--- + +## 6. Vertraulichkeit +Beide Parteien verpflichten sich zur Geheimhaltung aller vertraulichen Informationen. +Die Geheimhaltung gilt auch nach Vertragsende weiter. + +codebar darf die Zusammenarbeit als Referenz erwähnen, sofern der Kunde nicht schriftlich widerspricht. + +--- + +## 7. Übertragung +codebar kann Verträge oder Teile davon an verbundene Unternehmen übertragen. + +--- + +## 8. Salvatorische Klausel +Ungültige Bestimmungen werden durch solche ersetzt, die dem wirtschaftlichen Zweck am nächsten kommen. + +--- + +## 9. Gerichtsstand & anwendbares Recht +Es gilt Schweizer Recht. + +Gerichtsstand: **Basel-Land** oder der Sitz der codebar Solutions AG (sofern nicht anders vereinbart). + +--- + +**codebar Solutions AG** +Basel / Schweiz diff --git a/database/files/legal/de_CH/terms_feedback.md b/database/files/legal/de_CH/terms_feedback.md new file mode 100644 index 0000000..dc62142 --- /dev/null +++ b/database/files/legal/de_CH/terms_feedback.md @@ -0,0 +1,6 @@ +1.1 Awendungsbereich viel generelelr handeln nicht genau definierne. General die Zusammenarbeit regeln. +1.2 Offerten 30 Tage gültig, auftrung muss schriftlich bestätigt werden oder Angebot digital signiert, +1.3 Kein Wiederuffsrecht. Explizit vor allem allem lizenz bestellugnen können nicht wiederufen werden +1.5 Vertragsende ,, Grundsätzliche Laufzeit aller Verträge 01.01 bis 31.12 die Verträge verlängern sich tnicht automatisch. +1. 6 Alle preise verstehen sich exl Mwst. +1.7 14 Tage Zahlungsbedingungen + die Erwähnten Verzugszisne. diff --git a/lang/de_CH.json b/lang/de_CH.json index b9f64b8..e9a6486 100644 --- a/lang/de_CH.json +++ b/lang/de_CH.json @@ -31,7 +31,17 @@ "Menu": "Menü", "Meta information": "Metainformationen", "News": "Neuigkeiten", - "Office": "Büro", + "Locations": "Standorte", + "Monday": "Montag", + "Tuesday": "Dienstag", + "Wednesday": "Mittwoch", + "Thursday": "Donnerstag", + "Friday": "Freitag", + "Saturday": "Samstag", + "Sunday": "Sonntag", + "Opening hours": "Öffnungszeiten", + "Closed": "Geschlossen", + "08:00 bis 18:00 Uhr": "08:00 bis 18:00 Uhr", "Open Source": "Open Source", "Partnerships": "Partnerschaften", "paperflakes AG": "paperflakes AG", diff --git a/lang/en_CH.json b/lang/en_CH.json index 5881f60..7479da3 100644 --- a/lang/en_CH.json +++ b/lang/en_CH.json @@ -29,7 +29,17 @@ "Menu": "Menu", "Meta information": "Meta information", "News": "News", - "Office": "Office", + "Locations": "Locations", + "Monday": "Monday", + "Tuesday": "Tuesday", + "Wednesday": "Wednesday", + "Thursday": "Thursday", + "Friday": "Friday", + "Saturday": "Saturday", + "Sunday": "Sunday", + "Opening hours": "Opening hours", + "Closed": "Closed", + "08:00 bis 18:00 Uhr": "08:00 to 18:00", "Open Source": "Open Source", "Partnerships": "Partnerships", "paperflakes AG": "paperflakes AG", @@ -44,4 +54,4 @@ "Update to english language": "Update to english language", "Update to german language": "Update to german language", "Zefix": "Zefix" -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index 62c1ee8..c1384ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,17 +33,17 @@ } }, "node_modules/@alpinejs/csp": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/@alpinejs/csp/-/csp-3.15.1.tgz", - "integrity": "sha512-SqvCrrgQsWkk+XO55TCH5+yUqetZWp7CyukqZwm5qIIsTvSs7ehgaH9iBG/qMLMJbAFb/NbfvO6kQQj2fIm53A==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/@alpinejs/csp/-/csp-3.15.2.tgz", + "integrity": "sha512-RkixWMrtlC6GpIsjqJdmrEkmF0ssYO1PV7cH3dwkpMLZb9cElqiFKUrrHGVK0+3d3wJ9kV+jHQiGtWVFx9EXlQ==", "dependencies": { "@vue/reactivity": "~3.1.1" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", - "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", "cpu": [ "ppc64" ], @@ -56,9 +56,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", - "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", "cpu": [ "arm" ], @@ -71,9 +71,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", - "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", "cpu": [ "arm64" ], @@ -86,9 +86,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", - "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", "cpu": [ "x64" ], @@ -101,9 +101,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", - "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", "cpu": [ "arm64" ], @@ -116,9 +116,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", - "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", "cpu": [ "x64" ], @@ -131,9 +131,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", - "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", "cpu": [ "arm64" ], @@ -146,9 +146,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", - "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", "cpu": [ "x64" ], @@ -161,9 +161,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", - "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", "cpu": [ "arm" ], @@ -176,9 +176,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", - "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", "cpu": [ "arm64" ], @@ -191,9 +191,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", - "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", "cpu": [ "ia32" ], @@ -206,9 +206,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", - "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", "cpu": [ "loong64" ], @@ -221,9 +221,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", - "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", "cpu": [ "mips64el" ], @@ -236,9 +236,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", - "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", "cpu": [ "ppc64" ], @@ -251,9 +251,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", - "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", "cpu": [ "riscv64" ], @@ -266,9 +266,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", - "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", "cpu": [ "s390x" ], @@ -281,9 +281,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", - "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", "cpu": [ "x64" ], @@ -296,9 +296,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", - "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", "cpu": [ "arm64" ], @@ -311,9 +311,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", - "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", "cpu": [ "x64" ], @@ -326,9 +326,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", - "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", "cpu": [ "arm64" ], @@ -341,9 +341,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", - "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", "cpu": [ "x64" ], @@ -356,9 +356,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", - "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", "cpu": [ "arm64" ], @@ -371,9 +371,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", - "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", "cpu": [ "x64" ], @@ -386,9 +386,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", - "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", "cpu": [ "arm64" ], @@ -401,9 +401,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", - "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", "cpu": [ "ia32" ], @@ -416,9 +416,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", - "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", "cpu": [ "x64" ], @@ -481,9 +481,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", - "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", "cpu": [ "arm" ], @@ -493,9 +493,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", - "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", "cpu": [ "arm64" ], @@ -505,9 +505,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", - "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", "cpu": [ "arm64" ], @@ -517,9 +517,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", - "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", "cpu": [ "x64" ], @@ -529,9 +529,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", - "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", "cpu": [ "arm64" ], @@ -541,9 +541,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", - "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", "cpu": [ "x64" ], @@ -553,9 +553,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", - "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", "cpu": [ "arm" ], @@ -565,9 +565,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", - "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", "cpu": [ "arm" ], @@ -577,9 +577,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", - "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", "cpu": [ "arm64" ], @@ -589,9 +589,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", - "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", "cpu": [ "arm64" ], @@ -601,9 +601,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", - "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", "cpu": [ "loong64" ], @@ -613,9 +613,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", - "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", "cpu": [ "ppc64" ], @@ -625,9 +625,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", - "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", "cpu": [ "riscv64" ], @@ -637,9 +637,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", - "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", "cpu": [ "riscv64" ], @@ -649,9 +649,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", - "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", "cpu": [ "s390x" ], @@ -661,9 +661,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", - "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", "cpu": [ "x64" ], @@ -673,9 +673,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", - "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", "cpu": [ "x64" ], @@ -685,9 +685,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", - "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", "cpu": [ "arm64" ], @@ -697,9 +697,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", - "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", "cpu": [ "arm64" ], @@ -709,9 +709,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", - "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", "cpu": [ "ia32" ], @@ -721,9 +721,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", - "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", "cpu": [ "x64" ], @@ -733,9 +733,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", - "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", "cpu": [ "x64" ], @@ -756,45 +756,45 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.16.tgz", - "integrity": "sha512-BX5iaSsloNuvKNHRN3k2RcCuTEgASTo77mofW0vmeHkfrDWaoFAFvNHpEgtu0eqyypcyiBkDWzSMxJhp3AUVcw==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.17.tgz", + "integrity": "sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==", "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", - "magic-string": "^0.30.19", + "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.1.16" + "tailwindcss": "4.1.17" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.16.tgz", - "integrity": "sha512-2OSv52FRuhdlgyOQqgtQHuCgXnS8nFSYRp2tJ+4WZXKgTxqPy7SMSls8c3mPT5pkZ17SBToGM5LHEJBO7miEdg==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.17.tgz", + "integrity": "sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==", "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.16", - "@tailwindcss/oxide-darwin-arm64": "4.1.16", - "@tailwindcss/oxide-darwin-x64": "4.1.16", - "@tailwindcss/oxide-freebsd-x64": "4.1.16", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.16", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.16", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.16", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.16", - "@tailwindcss/oxide-linux-x64-musl": "4.1.16", - "@tailwindcss/oxide-wasm32-wasi": "4.1.16", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.16", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.16" + "@tailwindcss/oxide-android-arm64": "4.1.17", + "@tailwindcss/oxide-darwin-arm64": "4.1.17", + "@tailwindcss/oxide-darwin-x64": "4.1.17", + "@tailwindcss/oxide-freebsd-x64": "4.1.17", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.17", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.17", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.17", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.17", + "@tailwindcss/oxide-linux-x64-musl": "4.1.17", + "@tailwindcss/oxide-wasm32-wasi": "4.1.17", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.17", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.17" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.16.tgz", - "integrity": "sha512-8+ctzkjHgwDJ5caq9IqRSgsP70xhdhJvm+oueS/yhD5ixLhqTw9fSL1OurzMUhBwE5zK26FXLCz2f/RtkISqHA==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.17.tgz", + "integrity": "sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==", "cpu": [ "arm64" ], @@ -807,9 +807,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.16.tgz", - "integrity": "sha512-C3oZy5042v2FOALBZtY0JTDnGNdS6w7DxL/odvSny17ORUnaRKhyTse8xYi3yKGyfnTUOdavRCdmc8QqJYwFKA==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.17.tgz", + "integrity": "sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==", "cpu": [ "arm64" ], @@ -822,9 +822,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.16.tgz", - "integrity": "sha512-vjrl/1Ub9+JwU6BP0emgipGjowzYZMjbWCDqwA2Z4vCa+HBSpP4v6U2ddejcHsolsYxwL5r4bPNoamlV0xDdLg==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.17.tgz", + "integrity": "sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==", "cpu": [ "x64" ], @@ -837,9 +837,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.16.tgz", - "integrity": "sha512-TSMpPYpQLm+aR1wW5rKuUuEruc/oOX3C7H0BTnPDn7W/eMw8W+MRMpiypKMkXZfwH8wqPIRKppuZoedTtNj2tg==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.17.tgz", + "integrity": "sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==", "cpu": [ "x64" ], @@ -852,9 +852,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.16.tgz", - "integrity": "sha512-p0GGfRg/w0sdsFKBjMYvvKIiKy/LNWLWgV/plR4lUgrsxFAoQBFrXkZ4C0w8IOXfslB9vHK/JGASWD2IefIpvw==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.17.tgz", + "integrity": "sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==", "cpu": [ "arm" ], @@ -867,9 +867,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.16.tgz", - "integrity": "sha512-DoixyMmTNO19rwRPdqviTrG1rYzpxgyYJl8RgQvdAQUzxC1ToLRqtNJpU/ATURSKgIg6uerPw2feW0aS8SNr/w==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.17.tgz", + "integrity": "sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==", "cpu": [ "arm64" ], @@ -882,9 +882,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.16.tgz", - "integrity": "sha512-H81UXMa9hJhWhaAUca6bU2wm5RRFpuHImrwXBUvPbYb+3jo32I9VIwpOX6hms0fPmA6f2pGVlybO6qU8pF4fzQ==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.17.tgz", + "integrity": "sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==", "cpu": [ "arm64" ], @@ -897,9 +897,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.16.tgz", - "integrity": "sha512-ZGHQxDtFC2/ruo7t99Qo2TTIvOERULPl5l0K1g0oK6b5PGqjYMga+FcY1wIUnrUxY56h28FxybtDEla+ICOyew==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.17.tgz", + "integrity": "sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==", "cpu": [ "x64" ], @@ -912,9 +912,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.16.tgz", - "integrity": "sha512-Oi1tAaa0rcKf1Og9MzKeINZzMLPbhxvm7rno5/zuP1WYmpiG0bEHq4AcRUiG2165/WUzvxkW4XDYCscZWbTLZw==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.17.tgz", + "integrity": "sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==", "cpu": [ "x64" ], @@ -927,9 +927,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.16.tgz", - "integrity": "sha512-B01u/b8LteGRwucIBmCQ07FVXLzImWESAIMcUU6nvFt/tYsQ6IHz8DmZ5KtvmwxD+iTYBtM1xwoGXswnlu9v0Q==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.17.tgz", + "integrity": "sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -943,8 +943,8 @@ ], "optional": true, "dependencies": { - "@emnapi/core": "^1.5.0", - "@emnapi/runtime": "^1.5.0", + "@emnapi/core": "^1.6.0", + "@emnapi/runtime": "^1.6.0", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.0.7", "@tybys/wasm-util": "^0.10.1", @@ -955,9 +955,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.16.tgz", - "integrity": "sha512-zX+Q8sSkGj6HKRTMJXuPvOcP8XfYON24zJBRPlszcH1Np7xuHXhWn8qfFjIujVzvH3BHU+16jBXwgpl20i+v9A==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.17.tgz", + "integrity": "sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==", "cpu": [ "arm64" ], @@ -970,9 +970,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.16.tgz", - "integrity": "sha512-m5dDFJUEejbFqP+UXVstd4W/wnxA4F61q8SoL+mqTypId2T2ZpuxosNSgowiCnLp2+Z+rivdU0AqpfgiD7yCBg==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.17.tgz", + "integrity": "sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==", "cpu": [ "x64" ], @@ -985,15 +985,15 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.16.tgz", - "integrity": "sha512-Qn3SFGPXYQMKR/UtqS+dqvPrzEeBZHrFA92maT4zijCVggdsXnDBMsPFJo1eArX3J+O+Gi+8pV4PkqjLCNBk3A==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.17.tgz", + "integrity": "sha512-+nKl9N9mN5uJ+M7dBOOCzINw94MPstNR/GtIhz1fpZysxL/4a+No64jCBD6CPN+bIHWFx3KWuu8XJRrj/572Dw==", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.1.16", - "@tailwindcss/oxide": "4.1.16", + "@tailwindcss/node": "4.1.17", + "@tailwindcss/oxide": "4.1.17", "postcss": "^8.4.41", - "tailwindcss": "4.1.16" + "tailwindcss": "4.1.17" } }, "node_modules/@tailwindcss/typography": { @@ -1008,13 +1008,13 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.16.tgz", - "integrity": "sha512-bbguNBcDxsRmi9nnlWJxhfDWamY3lmcyACHcdO1crxfzuLpOhHLLtEIN/nCbbAtj5rchUgQD17QVAKi1f7IsKg==", + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.17.tgz", + "integrity": "sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA==", "dependencies": { - "@tailwindcss/node": "4.1.16", - "@tailwindcss/oxide": "4.1.16", - "tailwindcss": "4.1.16" + "@tailwindcss/node": "4.1.17", + "@tailwindcss/oxide": "4.1.17", + "tailwindcss": "4.1.17" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" @@ -1078,9 +1078,9 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "version": "10.4.22", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.22.tgz", + "integrity": "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==", "funding": [ { "type": "opencollective", @@ -1096,9 +1096,9 @@ } ], "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", + "browserslist": "^4.27.0", + "caniuse-lite": "^1.0.30001754", + "fraction.js": "^5.3.4", "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" @@ -1114,9 +1114,9 @@ } }, "node_modules/axios": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.1.tgz", - "integrity": "sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", @@ -1124,17 +1124,17 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.8.21", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.21.tgz", - "integrity": "sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==", + "version": "2.8.32", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", + "integrity": "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==", "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "node_modules/browserslist": { - "version": "4.27.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", - "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", "funding": [ { "type": "opencollective", @@ -1150,10 +1150,10 @@ } ], "dependencies": { - "baseline-browser-mapping": "^2.8.19", - "caniuse-lite": "^1.0.30001751", - "electron-to-chromium": "^1.5.238", - "node-releases": "^2.0.26", + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", "update-browserslist-db": "^1.1.4" }, "bin": { @@ -1182,9 +1182,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001751", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz", - "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==", + "version": "1.0.30001757", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz", + "integrity": "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==", "funding": [ { "type": "opencollective", @@ -1336,9 +1336,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.243", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.243.tgz", - "integrity": "sha512-ZCphxFW3Q1TVhcgS9blfut1PX8lusVi2SvXQgmEEnK4TCmE1JhH2JkjJN+DNt0pJJwfBri5AROBnz2b/C+YU9g==" + "version": "1.5.262", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.262.tgz", + "integrity": "sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -1399,9 +1399,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", - "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -1410,32 +1410,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.11", - "@esbuild/android-arm": "0.25.11", - "@esbuild/android-arm64": "0.25.11", - "@esbuild/android-x64": "0.25.11", - "@esbuild/darwin-arm64": "0.25.11", - "@esbuild/darwin-x64": "0.25.11", - "@esbuild/freebsd-arm64": "0.25.11", - "@esbuild/freebsd-x64": "0.25.11", - "@esbuild/linux-arm": "0.25.11", - "@esbuild/linux-arm64": "0.25.11", - "@esbuild/linux-ia32": "0.25.11", - "@esbuild/linux-loong64": "0.25.11", - "@esbuild/linux-mips64el": "0.25.11", - "@esbuild/linux-ppc64": "0.25.11", - "@esbuild/linux-riscv64": "0.25.11", - "@esbuild/linux-s390x": "0.25.11", - "@esbuild/linux-x64": "0.25.11", - "@esbuild/netbsd-arm64": "0.25.11", - "@esbuild/netbsd-x64": "0.25.11", - "@esbuild/openbsd-arm64": "0.25.11", - "@esbuild/openbsd-x64": "0.25.11", - "@esbuild/openharmony-arm64": "0.25.11", - "@esbuild/sunos-x64": "0.25.11", - "@esbuild/win32-arm64": "0.25.11", - "@esbuild/win32-ia32": "0.25.11", - "@esbuild/win32-x64": "0.25.11" + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" } }, "node_modules/escalade": { @@ -1482,9 +1482,9 @@ } }, "node_modules/form-data": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", - "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -1497,14 +1497,14 @@ } }, "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", "engines": { "node": "*" }, "funding": { - "type": "patreon", + "type": "github", "url": "https://github.com/sponsors/rawify" } }, @@ -2050,9 +2050,9 @@ } }, "node_modules/rollup": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", - "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "version": "4.53.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", "dependencies": { "@types/estree": "1.0.8" }, @@ -2064,28 +2064,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.5", - "@rollup/rollup-android-arm64": "4.52.5", - "@rollup/rollup-darwin-arm64": "4.52.5", - "@rollup/rollup-darwin-x64": "4.52.5", - "@rollup/rollup-freebsd-arm64": "4.52.5", - "@rollup/rollup-freebsd-x64": "4.52.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", - "@rollup/rollup-linux-arm-musleabihf": "4.52.5", - "@rollup/rollup-linux-arm64-gnu": "4.52.5", - "@rollup/rollup-linux-arm64-musl": "4.52.5", - "@rollup/rollup-linux-loong64-gnu": "4.52.5", - "@rollup/rollup-linux-ppc64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-musl": "4.52.5", - "@rollup/rollup-linux-s390x-gnu": "4.52.5", - "@rollup/rollup-linux-x64-gnu": "4.52.5", - "@rollup/rollup-linux-x64-musl": "4.52.5", - "@rollup/rollup-openharmony-arm64": "4.52.5", - "@rollup/rollup-win32-arm64-msvc": "4.52.5", - "@rollup/rollup-win32-ia32-msvc": "4.52.5", - "@rollup/rollup-win32-x64-gnu": "4.52.5", - "@rollup/rollup-win32-x64-msvc": "4.52.5", + "@rollup/rollup-android-arm-eabi": "4.53.3", + "@rollup/rollup-android-arm64": "4.53.3", + "@rollup/rollup-darwin-arm64": "4.53.3", + "@rollup/rollup-darwin-x64": "4.53.3", + "@rollup/rollup-freebsd-arm64": "4.53.3", + "@rollup/rollup-freebsd-x64": "4.53.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", + "@rollup/rollup-linux-arm64-gnu": "4.53.3", + "@rollup/rollup-linux-arm64-musl": "4.53.3", + "@rollup/rollup-linux-loong64-gnu": "4.53.3", + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", + "@rollup/rollup-linux-riscv64-musl": "4.53.3", + "@rollup/rollup-linux-s390x-gnu": "4.53.3", + "@rollup/rollup-linux-x64-gnu": "4.53.3", + "@rollup/rollup-linux-x64-musl": "4.53.3", + "@rollup/rollup-openharmony-arm64": "4.53.3", + "@rollup/rollup-win32-arm64-msvc": "4.53.3", + "@rollup/rollup-win32-ia32-msvc": "4.53.3", + "@rollup/rollup-win32-x64-gnu": "4.53.3", + "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" } }, @@ -2174,9 +2174,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.16.tgz", - "integrity": "sha512-pONL5awpaQX4LN5eiv7moSiSPd/DLDzKVRJz8Q9PgzmAdd1R4307GQS2ZpfiN7ZmekdQrfhZZiSE5jkLR4WNaA==" + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.17.tgz", + "integrity": "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==" }, "node_modules/tapable": { "version": "2.3.0", @@ -2191,9 +2191,9 @@ } }, "node_modules/terser": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", - "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "devOptional": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", diff --git a/resources/views/app/contact/index.blade.php b/resources/views/app/contact/index.blade.php index 44c7adc..bea48de 100644 --- a/resources/views/app/contact/index.blade.php +++ b/resources/views/app/contact/index.blade.php @@ -12,9 +12,9 @@ classAttributes="block" />
- - -
+ + +

codebar Solutions AG

@@ -49,4 +49,38 @@ classAttributes="block" />
+ + + +
+
+ {{ __('Monday') }} + {{ __('08:00 bis 18:00 Uhr') }} +
+
+ {{ __('Tuesday') }} + {{ __('08:00 bis 18:00 Uhr') }} +
+
+ {{ __('Wednesday') }} + {{ __('08:00 bis 18:00 Uhr') }} +
+
+ {{ __('Thursday') }} + {{ __('08:00 bis 18:00 Uhr') }} +
+
+ {{ __('Friday') }} + {{ __('08:00 bis 18:00 Uhr') }} +
+
+ {{ __('Saturday') }} + {{ __('08:00 bis 18:00 Uhr') }} +
+
+ {{ __('Sunday') }} + {{ __('Closed') }} +
+
+
diff --git a/routes/console.php b/routes/console.php deleted file mode 100644 index a814366..0000000 --- a/routes/console.php +++ /dev/null @@ -1 +0,0 @@ - Date: Fri, 20 Feb 2026 23:10:18 +0100 Subject: [PATCH 3/3] WIP --- .env.example | 2 + app/Actions/PageAction.php | 20 + app/Actions/ViewDataAction.php | 18 +- .../Commands/SyncRepositoriesCommand.php | 134 ++ app/Data/GkiServiceData.php | 76 + app/Http/Controllers/Ai/AiIndexController.php | 19 + app/Http/Controllers/Ai/AiShowController.php | 23 + .../Contact/ContactIndexController.php | 11 + .../Legal/PrivacyIndexController.php | 13 +- .../Legal/TermsIndexController.php | 13 +- .../OpenSource/OpenSoruceShowController.php | 26 - .../OpenSource/OpenSourceIndexController.php | 20 +- .../OpenSource/OpenSourceShowController.php | 28 + .../{OpenSource.php => GithubRepository.php} | 4 +- app/Providers/AppServiceProvider.php | 14 - app/View/Components/AppLayout.php | 7 +- composer.lock | 1219 +++++++++-------- config/services.php | 4 + config/site.php | 11 + ...actory.php => GithubRepositoryFactory.php} | 9 +- ...d_github_columns_to_open_sources_table.php | 28 + ...n_sources_to_github_repositories_table.php | 34 + .../seeders/Codebar/ContactsTableSeeder.php | 44 - ....php => GithubRepositoriesTableSeeder.php} | 10 +- database/seeders/DatabaseSeeder.php | 4 +- .../seeders/Paperflakes/PagesTableSeeder.php | 212 --- lang/de_CH.json | 5 + lang/en_CH.json | 6 + public/.well-known/matrix/client | 5 + public/.well-known/matrix/server | 3 + resources/js/app.js | 30 + resources/views/app/ai/index.blade.php | 15 + resources/views/app/ai/show.blade.php | 26 + resources/views/app/contact/index.blade.php | 32 +- .../imprint/_partials/_codebar.blade.php | 2 +- .../views/app/legal/imprint/index.blade.php | 5 +- .../views/app/legal/privacy/index.blade.php | 6 +- .../views/app/legal/terms/index.blade.php | 6 +- .../views/app/open-source/index.blade.php | 45 +- .../views/app/open-source/show.blade.php | 61 +- resources/views/app/start/index.blade.php | 2 - resources/views/components/intro.blade.php | 17 +- .../nav-language-switcher.blade.php | 20 + resources/views/components/nav-link.blade.php | 8 + .../components/nav-mobile-link.blade.php | 9 + .../views/components/opening-hours.blade.php | 72 + .../layouts/_partials/_favicons.blade.php | 4 +- .../views/layouts/_partials/_footer.blade.php | 68 +- .../layouts/_partials/_navigation.blade.php | 30 +- .../_partials/_navigation_desktop.blade.php | 57 +- .../_partials/_navigation_mobile.blade.php | 117 +- routes/web.php | 14 +- tests/Feature/Controllers/RouteStatusTest.php | 12 + tests/Pest.php | 2 +- 54 files changed, 1471 insertions(+), 1211 deletions(-) create mode 100644 app/Console/Commands/SyncRepositoriesCommand.php create mode 100644 app/Data/GkiServiceData.php create mode 100644 app/Http/Controllers/Ai/AiIndexController.php create mode 100644 app/Http/Controllers/Ai/AiShowController.php delete mode 100644 app/Http/Controllers/OpenSource/OpenSoruceShowController.php create mode 100644 app/Http/Controllers/OpenSource/OpenSourceShowController.php rename app/Models/{OpenSource.php => GithubRepository.php} (86%) create mode 100644 config/site.php rename database/factories/{OpenSourceFactory.php => GithubRepositoryFactory.php} (62%) create mode 100644 database/migrations/2026_02_20_220110_add_github_columns_to_open_sources_table.php create mode 100644 database/migrations/2026_02_20_221532_rename_open_sources_to_github_repositories_table.php rename database/seeders/Codebar/{OpenSourceTableSeeder.php => GithubRepositoriesTableSeeder.php} (98%) delete mode 100644 database/seeders/Paperflakes/PagesTableSeeder.php create mode 100644 public/.well-known/matrix/client create mode 100644 public/.well-known/matrix/server create mode 100644 resources/views/app/ai/index.blade.php create mode 100644 resources/views/app/ai/show.blade.php create mode 100644 resources/views/components/nav-language-switcher.blade.php create mode 100644 resources/views/components/nav-link.blade.php create mode 100644 resources/views/components/nav-mobile-link.blade.php create mode 100644 resources/views/components/opening-hours.blade.php diff --git a/.env.example b/.env.example index 39f79b7..3e1d79f 100644 --- a/.env.example +++ b/.env.example @@ -57,4 +57,6 @@ CLOUDINARY_CLOUD_NAME=my-cloud-name CLOUDINARY_API_KEY=my-api-key CLOUDINARY_API_SECRET=my-api-secret +GITHUB_TOKEN= + LARAVEL_DEFAULT_FATHOM_SITE_ID=WECFOADW \ No newline at end of file diff --git a/app/Actions/PageAction.php b/app/Actions/PageAction.php index 52a1ded..9766e17 100644 --- a/app/Actions/PageAction.php +++ b/app/Actions/PageAction.php @@ -3,6 +3,7 @@ namespace App\Actions; use App\DTO\PageDTO; +use App\Models\GithubRepository; use App\Models\News; use App\Models\Page; use App\Models\Product; @@ -81,6 +82,25 @@ public function product(Product $product, bool $withReferences = false, ?string ); } + public function githubRepository(GithubRepository $githubRepository, bool $withReferences = false, ?string $locale = null): PageDTO + { + return new PageDTO( + locale: $locale ?? $githubRepository->locale->value, + routeKey: 'open-source.show', + routeName: Str::slug(title: $locale ?? $githubRepository->locale->value).'.open-source.show', + title: $githubRepository->title, + description: $githubRepository->teaser, + image: $githubRepository->image, + lastModificationDate: $githubRepository->updated_at ?? now(), + routeParameters: ['locale' => $githubRepository->locale, 'githubRepository' => $githubRepository], + referencePages: $withReferences ? $githubRepository->references->map(function (Reference $reference) { + $reference->load(['target']); + + return self::githubRepository(githubRepository: $reference->target, withReferences: false, locale: $reference->reference_locale); + }) : null, + ); + } + public function service(Service $service, bool $withReferences = false, ?string $locale = null): PageDTO { return new PageDTO( diff --git a/app/Actions/ViewDataAction.php b/app/Actions/ViewDataAction.php index e61e364..03bc102 100644 --- a/app/Actions/ViewDataAction.php +++ b/app/Actions/ViewDataAction.php @@ -4,10 +4,9 @@ use App\DTO\ContactDTO; use App\Enums\ContactSectionEnum; -use App\Models\Configuration; use App\Models\Contact; +use App\Models\GithubRepository; use App\Models\News; -use App\Models\OpenSource; use App\Models\Product; use App\Models\Service; use App\Models\Technology; @@ -17,15 +16,6 @@ class ViewDataAction { - public function configuration(string $locale): ?Configuration - { - $key = Str::slug("configuration_{$locale}"); - - return Cache::rememberForever($key, function () { - return Configuration::first(); - }); - } - public function products(string $locale): Collection { $key = Str::slug("products_published_{$locale}"); @@ -62,12 +52,12 @@ public function technologies(string $locale): Collection }); } - public function openSource(string $locale): Collection + public function githubRepositories(string $locale): Collection { - $key = Str::slug("open_source_published_{$locale}"); + $key = Str::slug("github_repositories_published_{$locale}"); return Cache::rememberForever($key, function () use ($locale) { - return OpenSource::where('locale', $locale)->where('published', true)->orderByDesc('downloads')->get(); + return GithubRepository::where('locale', $locale)->where('published', true)->orderByDesc('downloads')->get(); }); } diff --git a/app/Console/Commands/SyncRepositoriesCommand.php b/app/Console/Commands/SyncRepositoriesCommand.php new file mode 100644 index 0000000..a967ef0 --- /dev/null +++ b/app/Console/Commands/SyncRepositoriesCommand.php @@ -0,0 +1,134 @@ +info('Fetching public repositories from GitHub...'); + + $repos = $this->fetchAllRepositories(); + + if ($repos === null) { + $this->error('Failed to fetch repositories from GitHub.'); + + return self::FAILURE; + } + + $this->info(sprintf('Found %d public repositories.', count($repos))); + + $synced = 0; + + foreach ($repos as $repo) { + if ($repo['fork'] ?? false) { + continue; + } + + $this->syncRepository($repo); + $synced++; + } + + $this->info(sprintf('Synced %d repositories.', $synced)); + + return self::SUCCESS; + } + + private function fetchAllRepositories(): ?array + { + $repos = []; + $page = 1; + + $headers = []; + $token = config('services.github.token'); + if ($token) { + $headers['Authorization'] = "Bearer {$token}"; + } + + do { + $response = Http::withHeaders($headers) + ->accept('application/vnd.github+json') + ->get(sprintf('https://api.github.com/orgs/%s/repos', self::ORG), [ + 'type' => 'public', + 'per_page' => 100, + 'page' => $page, + ]); + + if ($response->failed()) { + $this->error(sprintf('GitHub API error: %s', $response->body())); + + return null; + } + + $batch = $response->json(); + + if (empty($batch)) { + break; + } + + $repos = array_merge($repos, $batch); + $page++; + } while (count($batch) === 100); + + return $repos; + } + + private function syncRepository(array $repo): void + { + $slug = Str::slug($repo['name']); + $title = Str::of($repo['name'])->replace('-', ' ')->title()->toString(); + $teaser = $repo['description'] ?? ''; + $topics = $repo['topics'] ?? []; + $downloads = $this->fetchPackagistDownloads($repo['full_name']); + + foreach (LocaleEnum::cases() as $locale) { + $entry = GithubRepository::updateOrCreate( + [ + 'locale' => $locale->value, + 'slug' => $slug, + ], + [ + 'published' => true, + 'title' => $title, + 'teaser' => $teaser, + 'image' => self::DEFAULT_IMAGE, + 'tags' => $topics, + 'link' => $repo['html_url'], + 'downloads' => $downloads, + 'stars' => $repo['stargazers_count'] ?? 0, + 'forks' => $repo['forks_count'] ?? 0, + 'primary_language' => $repo['language'], + 'github_name' => $repo['full_name'], + ] + ); + + $this->line(sprintf(' %s [%s] %s downloads', $entry->title, $locale->value, number_format($downloads))); + } + } + + private function fetchPackagistDownloads(string $fullName): int + { + $response = Http::accept('application/json') + ->get(sprintf('https://packagist.org/packages/%s.json', $fullName)); + + if ($response->failed()) { + return 0; + } + + return (int) data_get($response->json(), 'package.downloads.total', 0); + } +} diff --git a/app/Data/GkiServiceData.php b/app/Data/GkiServiceData.php new file mode 100644 index 0000000..65ac182 --- /dev/null +++ b/app/Data/GkiServiceData.php @@ -0,0 +1,76 @@ +firstWhere('slug', $slug); + } + + private static function strategy(): array + { + return [ + 'slug' => 'gki-strategy', + 'name' => 'GKI Strategy', + 'teaser' => 'Strategische Einordnung von KI im Unternehmen.', + 'features' => [ + 'KI-Readiness Assessment', + 'Identifikation priorisierter Use Cases', + 'Business Case & Wertschöpfungslogik', + 'Governance- und Compliance-Rahmen', + 'Roadmap (6–12 Monate)', + ], + 'closing' => null, + 'audience' => 'Ideal für Geschäftsleitungen, Innovationsverantwortliche und Hochschulen.', + ]; + } + + private static function sprint(): array + { + return [ + 'slug' => 'gki-sprint', + 'name' => 'GKI Sprint', + 'teaser' => 'Vom Problem zum funktionierenden Prototyp in 2–5 Tagen.', + 'features' => [ + 'Use-Case-Schärfung', + 'Prompt-Architektur', + 'MVP-Entwicklung (z.B. interner Copilot, Wissensagent, Automationslösung)', + 'Nutzer-Test', + 'Skalierungsentscheidung', + ], + 'closing' => 'Kein PowerPoint. Nur funktionierende Systeme.', + 'audience' => null, + ]; + } + + private static function build(): array + { + return [ + 'slug' => 'gki-build', + 'name' => 'GKI Build', + 'teaser' => 'Technische Integration in bestehende Systeme.', + 'features' => [ + 'API-Integration', + 'CRM- / ERP-Anbindung', + 'Interne Wissens-GPTs', + 'Automatisierungsstrecken', + 'Dokumentation & Betriebskonzept', + ], + 'closing' => 'Wir bauen Lösungen, die produktiv laufen – nicht Demo-Umgebungen.', + 'audience' => null, + ]; + } +} diff --git a/app/Http/Controllers/Ai/AiIndexController.php b/app/Http/Controllers/Ai/AiIndexController.php new file mode 100644 index 0000000..8d2a5cb --- /dev/null +++ b/app/Http/Controllers/Ai/AiIndexController.php @@ -0,0 +1,19 @@ +with([ + 'page' => (new PageAction(locale: null, routeName: 'ai.index'))->default(), + 'services' => GkiServiceData::all(), + ]); + } +} diff --git a/app/Http/Controllers/Ai/AiShowController.php b/app/Http/Controllers/Ai/AiShowController.php new file mode 100644 index 0000000..92b87ed --- /dev/null +++ b/app/Http/Controllers/Ai/AiShowController.php @@ -0,0 +1,23 @@ +with([ + 'page' => (new PageAction(locale: null, routeName: 'ai.index'))->default(), + 'service' => $service, + ]); + } +} diff --git a/app/Http/Controllers/Contact/ContactIndexController.php b/app/Http/Controllers/Contact/ContactIndexController.php index fa6f90c..c265972 100644 --- a/app/Http/Controllers/Contact/ContactIndexController.php +++ b/app/Http/Controllers/Contact/ContactIndexController.php @@ -13,8 +13,19 @@ class ContactIndexController extends Controller */ public function __invoke(): View { + $openingHours = [ + ['day' => 'Monday', 'open' => '08:00', 'close' => '18:00'], + ['day' => 'Tuesday', 'open' => '08:00', 'close' => '18:00'], + ['day' => 'Wednesday', 'open' => '08:00', 'close' => '18:00'], + ['day' => 'Thursday', 'open' => '08:00', 'close' => '18:00'], + ['day' => 'Friday', 'open' => '08:00', 'close' => '18:00'], + ['day' => 'Saturday', 'open' => '08:00', 'close' => '18:00'], + ['day' => 'Sunday', 'open' => null, 'close' => null], + ]; + return view('app.contact.index')->with([ 'page' => (new PageAction(locale: null, routeName: 'contact.index'))->default(), + 'openingHours' => $openingHours, ]); } } diff --git a/app/Http/Controllers/Legal/PrivacyIndexController.php b/app/Http/Controllers/Legal/PrivacyIndexController.php index f07f17b..009baa9 100644 --- a/app/Http/Controllers/Legal/PrivacyIndexController.php +++ b/app/Http/Controllers/Legal/PrivacyIndexController.php @@ -4,8 +4,6 @@ use App\Actions\PageAction; use App\Http\Controllers\Controller; -use Illuminate\Http\RedirectResponse; -use Illuminate\Support\Str; use Illuminate\View\View; class PrivacyIndexController extends Controller @@ -13,13 +11,10 @@ class PrivacyIndexController extends Controller /** * Display the user's profile form. */ - public function __invoke(): View|RedirectResponse + public function __invoke(): View { - return redirect()->route(Str::slug(app()->getLocale()).'.start.index'); - - // @todo Notification - /* return view('app.legal.privacy.index')->with([ - 'page' => (new PageAction(locale: null, routeName: 'legal.privacy.index'))->default(), - ]);*/ + return view('app.legal.privacy.index')->with([ + 'page' => (new PageAction(locale: null, routeName: 'legal.privacy.index'))->default(), + ]); } } diff --git a/app/Http/Controllers/Legal/TermsIndexController.php b/app/Http/Controllers/Legal/TermsIndexController.php index 5f4395f..a2cf40a 100644 --- a/app/Http/Controllers/Legal/TermsIndexController.php +++ b/app/Http/Controllers/Legal/TermsIndexController.php @@ -4,8 +4,6 @@ use App\Actions\PageAction; use App\Http\Controllers\Controller; -use Illuminate\Http\RedirectResponse; -use Illuminate\Support\Str; use Illuminate\View\View; class TermsIndexController extends Controller @@ -13,13 +11,10 @@ class TermsIndexController extends Controller /** * Display the user's profile form. */ - public function __invoke(): View|RedirectResponse + public function __invoke(): View { - return redirect()->route(Str::slug(app()->getLocale()).'.start.index'); - - // @todo Notification - /* return view('app.legal.terms.index')->with([ - 'page' => (new PageAction(locale: null, routeName: 'legal.terms.index'))->default(), - ]);*/ + return view('app.legal.terms.index')->with([ + 'page' => (new PageAction(locale: null, routeName: 'legal.terms.index'))->default(), + ]); } } diff --git a/app/Http/Controllers/OpenSource/OpenSoruceShowController.php b/app/Http/Controllers/OpenSource/OpenSoruceShowController.php deleted file mode 100644 index c8a5af7..0000000 --- a/app/Http/Controllers/OpenSource/OpenSoruceShowController.php +++ /dev/null @@ -1,26 +0,0 @@ -with([ - 'page' => (new PageAction(locale: $locale))->product(product: $product), - 'name' => $product->name, - 'teaser' => $product->teaser, - 'content' => Str::of($product->content)->markdown(), - 'tags' => $product->tags, - ]); - } -} diff --git a/app/Http/Controllers/OpenSource/OpenSourceIndexController.php b/app/Http/Controllers/OpenSource/OpenSourceIndexController.php index 2d54c9b..50c1555 100644 --- a/app/Http/Controllers/OpenSource/OpenSourceIndexController.php +++ b/app/Http/Controllers/OpenSource/OpenSourceIndexController.php @@ -3,22 +3,32 @@ namespace App\Http\Controllers\OpenSource; use App\Actions\PageAction; -use App\Actions\ViewDataAction; use App\Http\Controllers\Controller; +use App\Models\GithubRepository; use Illuminate\View\View; class OpenSourceIndexController extends Controller { - /** - * Display the user's profile form. - */ public function __invoke(): View { $locale = app()->getLocale(); + $openSourceJson = GithubRepository::where('locale', $locale) + ->where('published', true) + ->orderByDesc('downloads') + ->get() + ->map(fn (GithubRepository $entry) => [ + 'title' => $entry->title, + 'teaser' => $entry->teaser ?? '', + 'tags' => $entry->tags ?? [], + 'language' => $entry->primary_language, + 'url' => localized_route('open-source.show', [$locale, $entry]), + ]) + ->values(); + return view('app.open-source.index')->with([ 'page' => (new PageAction(locale: null, routeName: 'open-source.index'))->default(), - 'openSource' => (new ViewDataAction)->openSource($locale), + 'openSourceJson' => $openSourceJson->toJson(), ]); } } diff --git a/app/Http/Controllers/OpenSource/OpenSourceShowController.php b/app/Http/Controllers/OpenSource/OpenSourceShowController.php new file mode 100644 index 0000000..daf36e5 --- /dev/null +++ b/app/Http/Controllers/OpenSource/OpenSourceShowController.php @@ -0,0 +1,28 @@ +with([ + 'page' => (new PageAction(locale: $locale))->githubRepository(githubRepository: $githubRepository), + 'name' => $githubRepository->title, + 'teaser' => $githubRepository->teaser, + 'content' => $githubRepository->content ? Str::of($githubRepository->content)->markdown() : null, + 'tags' => $githubRepository->tags, + 'stars' => $githubRepository->stars, + 'forks' => $githubRepository->forks, + 'primaryLanguage' => $githubRepository->primary_language, + 'githubUrl' => $githubRepository->link, + 'githubName' => $githubRepository->github_name, + ]); + } +} diff --git a/app/Models/OpenSource.php b/app/Models/GithubRepository.php similarity index 86% rename from app/Models/OpenSource.php rename to app/Models/GithubRepository.php index 2e62923..f6ce919 100644 --- a/app/Models/OpenSource.php +++ b/app/Models/GithubRepository.php @@ -8,7 +8,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -class OpenSource extends Model +class GithubRepository extends Model { use HasFactory; use HasLocalizedReferences; @@ -19,6 +19,8 @@ class OpenSource extends Model 'locale' => LocaleEnum::class, 'tags' => 'json', 'downloads' => 'int', + 'stars' => 'int', + 'forks' => 'int', ]; public function getRouteKeyName(): string diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 37c4d3c..e6683db 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,16 +2,13 @@ namespace App\Providers; -use App\Actions\ViewDataAction; use App\Checks\FailedJobsCheck; use App\Checks\FilesystemsDefaultCheck; use App\Checks\JobsCheck; -use App\Models\Configuration; use App\Models\News; use App\Models\Product; use App\Models\Service; use Illuminate\Database\Eloquent\Model; -use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; use Spatie\Health\Checks\Checks\CacheCheck; use Spatie\Health\Checks\Checks\DebugModeCheck; @@ -44,8 +41,6 @@ public function boot(): void FailedJobsCheck::new(), SecurityAdvisoriesCheck::new()->lastDayOfMonth(), ]); - - View::share('configuration', $this->getConfiguration()); } private function multilanguage(): void @@ -54,13 +49,4 @@ private function multilanguage(): void Service::registerLocalizedBinding('service'); Product::registerLocalizedBinding('product'); } - - private function getConfiguration(): ?Configuration - { - try { - return (new ViewDataAction)->configuration(app()->getLocale()); - } catch (\Throwable) { - return null; - } - } } diff --git a/app/View/Components/AppLayout.php b/app/View/Components/AppLayout.php index c569b48..5788924 100644 --- a/app/View/Components/AppLayout.php +++ b/app/View/Components/AppLayout.php @@ -2,7 +2,6 @@ namespace App\View\Components; -use App\Actions\ViewDataAction; use App\Enums\LocaleEnum; use Illuminate\Support\Str; use Illuminate\View\Component; @@ -14,14 +13,10 @@ public function __construct(protected mixed $page) {} public function render(): View { - $locale = app()->getLocale(); - return view('layouts.app')->with([ 'locales' => LocaleEnum::cases(), - 'locale' => Str::slug($locale), + 'locale' => Str::slug(app()->getLocale()), 'page' => $this->page, - 'services' => (new ViewDataAction)->services($locale), - 'products' => (new ViewDataAction)->products($locale), ]); } } diff --git a/composer.lock b/composer.lock index 334e066..559a47f 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.364.0", + "version": "3.370.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "768e0055da7e9e505aae8a87454d310a7c321ac1" + "reference": "3cfb2c787c43efa546ba3b6b596956cbef5cdd53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/768e0055da7e9e505aae8a87454d310a7c321ac1", - "reference": "768e0055da7e9e505aae8a87454d310a7c321ac1", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/3cfb2c787c43efa546ba3b6b596956cbef5cdd53", + "reference": "3cfb2c787c43efa546ba3b6b596956cbef5cdd53", "shasum": "" }, "require": { @@ -84,7 +84,8 @@ "guzzlehttp/psr7": "^2.4.5", "mtdowling/jmespath.php": "^2.8.0", "php": ">=8.1", - "psr/http-message": "^1.0 || ^2.0" + "psr/http-message": "^1.0 || ^2.0", + "symfony/filesystem": "^v5.4.45 || ^v6.4.3 || ^v7.1.0 || ^v8.0.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", @@ -95,13 +96,11 @@ "doctrine/cache": "~1.4", "ext-dom": "*", "ext-openssl": "*", - "ext-pcntl": "*", "ext-sockets": "*", - "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", + "phpunit/phpunit": "^9.6", "psr/cache": "^2.0 || ^3.0", "psr/simple-cache": "^2.0 || ^3.0", "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0", - "symfony/filesystem": "^v6.4.0 || ^v7.1.0", "yoast/phpunit-polyfills": "^2.0" }, "suggest": { @@ -109,6 +108,7 @@ "doctrine/cache": "To use the DoctrineCacheAdapter", "ext-curl": "To send requests using cURL", "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages", + "ext-pcntl": "To use client-side monitoring", "ext-sockets": "To use client-side monitoring" }, "type": "library", @@ -153,22 +153,22 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.364.0" + "source": "https://github.com/aws/aws-sdk-php/tree/3.370.0" }, - "time": "2025-12-01T01:08:11+00:00" + "time": "2026-02-20T19:09:33+00:00" }, { "name": "brick/math", - "version": "0.14.1", + "version": "0.14.8", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "f05858549e5f9d7bb45875a75583240a38a281d0" + "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/f05858549e5f9d7bb45875a75583240a38a281d0", - "reference": "f05858549e5f9d7bb45875a75583240a38a281d0", + "url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629", + "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629", "shasum": "" }, "require": { @@ -207,7 +207,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.14.1" + "source": "https://github.com/brick/math/tree/0.14.8" }, "funding": [ { @@ -215,7 +215,7 @@ "type": "github" } ], - "time": "2025-11-24T14:40:29+00:00" + "time": "2026-02-10T14:33:43+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -940,31 +940,31 @@ }, { "name": "fruitcake/php-cors", - "version": "v1.3.0", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/fruitcake/php-cors.git", - "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + "reference": "38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", - "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379", + "reference": "38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379", "shasum": "" }, "require": { - "php": "^7.4|^8.0", - "symfony/http-foundation": "^4.4|^5.4|^6|^7" + "php": "^8.1", + "symfony/http-foundation": "^5.4|^6.4|^7.3|^8" }, "require-dev": { - "phpstan/phpstan": "^1.4", + "phpstan/phpstan": "^2", "phpunit/phpunit": "^9", - "squizlabs/php_codesniffer": "^3.5" + "squizlabs/php_codesniffer": "^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -995,7 +995,7 @@ ], "support": { "issues": "https://github.com/fruitcake/php-cors/issues", - "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + "source": "https://github.com/fruitcake/php-cors/tree/v1.4.0" }, "funding": [ { @@ -1007,28 +1007,28 @@ "type": "github" } ], - "time": "2023-10-12T05:21:21+00:00" + "time": "2025-12-03T09:33:47+00:00" }, { "name": "graham-campbell/result-type", - "version": "v1.1.3", + "version": "v1.1.4", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" + "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", - "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/e01f4a821471308ba86aa202fed6698b6b695e3b", + "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.3" + "phpoption/phpoption": "^1.9.5" }, "require-dev": { - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + "phpunit/phpunit": "^8.5.41 || ^9.6.22 || ^10.5.45 || ^11.5.7" }, "type": "library", "autoload": { @@ -1057,7 +1057,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.4" }, "funding": [ { @@ -1069,7 +1069,7 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:45:45+00:00" + "time": "2025-12-27T19:43:20+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1484,16 +1484,16 @@ }, { "name": "laravel/framework", - "version": "v12.40.2", + "version": "v12.52.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "1ccd99220b474500e672b373f32bd709ec38de50" + "reference": "d5511fa74f4608dbb99864198b1954042aa8d5a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/1ccd99220b474500e672b373f32bd709ec38de50", - "reference": "1ccd99220b474500e672b373f32bd709ec38de50", + "url": "https://api.github.com/repos/laravel/framework/zipball/d5511fa74f4608dbb99864198b1954042aa8d5a7", + "reference": "d5511fa74f4608dbb99864198b1954042aa8d5a7", "shasum": "" }, "require": { @@ -1581,6 +1581,7 @@ "illuminate/process": "self.version", "illuminate/queue": "self.version", "illuminate/redis": "self.version", + "illuminate/reflection": "self.version", "illuminate/routing": "self.version", "illuminate/session": "self.version", "illuminate/support": "self.version", @@ -1605,7 +1606,7 @@ "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", "opis/json-schema": "^2.4.1", - "orchestra/testbench-core": "^10.8.0", + "orchestra/testbench-core": "^10.9.0", "pda/pheanstalk": "^5.0.6|^7.0.0", "php-http/discovery": "^1.15", "phpstan/phpstan": "^2.0", @@ -1667,6 +1668,7 @@ "src/Illuminate/Filesystem/functions.php", "src/Illuminate/Foundation/helpers.php", "src/Illuminate/Log/functions.php", + "src/Illuminate/Reflection/helpers.php", "src/Illuminate/Support/functions.php", "src/Illuminate/Support/helpers.php" ], @@ -1675,7 +1677,8 @@ "Illuminate\\Support\\": [ "src/Illuminate/Macroable/", "src/Illuminate/Collections/", - "src/Illuminate/Conditionable/" + "src/Illuminate/Conditionable/", + "src/Illuminate/Reflection/" ] } }, @@ -1699,34 +1702,34 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-11-26T19:24:25+00:00" + "time": "2026-02-17T17:07:04+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.8", + "version": "v0.3.13", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "096748cdfb81988f60090bbb839ce3205ace0d35" + "reference": "ed8c466571b37e977532fb2fd3c272c784d7050d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/096748cdfb81988f60090bbb839ce3205ace0d35", - "reference": "096748cdfb81988f60090bbb839ce3205ace0d35", + "url": "https://api.github.com/repos/laravel/prompts/zipball/ed8c466571b37e977532fb2fd3c272c784d7050d", + "reference": "ed8c466571b37e977532fb2fd3c272c784d7050d", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "ext-mbstring": "*", "php": "^8.1", - "symfony/console": "^6.2|^7.0" + "symfony/console": "^6.2|^7.0|^8.0" }, "conflict": { "illuminate/console": ">=10.17.0 <10.25.0", "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { - "illuminate/collections": "^10.0|^11.0|^12.0", + "illuminate/collections": "^10.0|^11.0|^12.0|^13.0", "mockery/mockery": "^1.5", "pestphp/pest": "^2.3|^3.4|^4.0", "phpstan/phpstan": "^1.12.28", @@ -1756,33 +1759,33 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.8" + "source": "https://github.com/laravel/prompts/tree/v0.3.13" }, - "time": "2025-11-21T20:52:52+00:00" + "time": "2026-02-06T12:17:10+00:00" }, { "name": "laravel/serializable-closure", - "version": "v2.0.7", + "version": "v2.0.9", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd" + "reference": "8f631589ab07b7b52fead814965f5a800459cb3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/cb291e4c998ac50637c7eeb58189c14f5de5b9dd", - "reference": "cb291e4c998ac50637c7eeb58189c14f5de5b9dd", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/8f631589ab07b7b52fead814965f5a800459cb3e", + "reference": "8f631589ab07b7b52fead814965f5a800459cb3e", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", "nesbot/carbon": "^2.67|^3.0", "pestphp/pest": "^2.36|^3.0|^4.0", "phpstan/phpstan": "^2.0", - "symfony/var-dumper": "^6.2.0|^7.0.0" + "symfony/var-dumper": "^6.2.0|^7.0.0|^8.0.0" }, "type": "library", "extra": { @@ -1819,20 +1822,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2025-11-21T20:52:36+00:00" + "time": "2026-02-03T06:55:34+00:00" }, { "name": "laravel/tinker", - "version": "v2.10.2", + "version": "v2.11.1", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "3bcb5f62d6f837e0f093a601e26badafb127bd4c" + "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/3bcb5f62d6f837e0f093a601e26badafb127bd4c", - "reference": "3bcb5f62d6f837e0f093a601e26badafb127bd4c", + "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741", + "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741", "shasum": "" }, "require": { @@ -1841,7 +1844,7 @@ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^7.2.5|^8.0", "psy/psysh": "^0.11.1|^0.12.0", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", @@ -1883,9 +1886,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.10.2" + "source": "https://github.com/laravel/tinker/tree/v2.11.1" }, - "time": "2025-11-20T16:29:12+00:00" + "time": "2026-02-06T14:12:35+00:00" }, { "name": "league/commonmark", @@ -2078,16 +2081,16 @@ }, { "name": "league/flysystem", - "version": "3.30.2", + "version": "3.31.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277" + "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277", - "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1717e0b3642b0df65ecb0cc89cdd99fa840672ff", + "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff", "shasum": "" }, "require": { @@ -2155,22 +2158,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.30.2" + "source": "https://github.com/thephpleague/flysystem/tree/3.31.0" }, - "time": "2025-11-10T17:13:11+00:00" + "time": "2026-01-23T15:38:47+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.30.1", + "version": "3.31.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "d286e896083bed3190574b8b088b557b59eb66f5" + "reference": "e36a2bc60b06332c92e4435047797ded352b446f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/d286e896083bed3190574b8b088b557b59eb66f5", - "reference": "d286e896083bed3190574b8b088b557b59eb66f5", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/e36a2bc60b06332c92e4435047797ded352b446f", + "reference": "e36a2bc60b06332c92e4435047797ded352b446f", "shasum": "" }, "require": { @@ -2210,22 +2213,22 @@ "storage" ], "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.30.1" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.31.0" }, - "time": "2025-10-20T15:27:33+00:00" + "time": "2026-01-23T15:30:45+00:00" }, { "name": "league/flysystem-local", - "version": "3.30.2", + "version": "3.31.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d" + "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ab4f9d0d672f601b102936aa728801dd1a11968d", - "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/2f669db18a4c20c755c2bb7d3a7b0b2340488079", + "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079", "shasum": "" }, "require": { @@ -2259,9 +2262,9 @@ "local" ], "support": { - "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.2" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.31.0" }, - "time": "2025-11-10T11:23:37+00:00" + "time": "2026-01-23T15:30:45+00:00" }, { "name": "league/mime-type-detection", @@ -2321,20 +2324,20 @@ }, { "name": "league/uri", - "version": "7.6.0", + "version": "7.8.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "f625804987a0a9112d954f9209d91fec52182344" + "reference": "4436c6ec8d458e4244448b069cc572d088230b76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/f625804987a0a9112d954f9209d91fec52182344", - "reference": "f625804987a0a9112d954f9209d91fec52182344", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76", + "reference": "4436c6ec8d458e4244448b069cc572d088230b76", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.6", + "league/uri-interfaces": "^7.8", "php": "^8.1", "psr/http-factory": "^1" }, @@ -2348,11 +2351,11 @@ "ext-gmp": "to improve IPV4 host parsing", "ext-intl": "to handle IDN host with the best performance", "ext-uri": "to use the PHP native URI class", - "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", - "league/uri-components": "Needed to easily manipulate URI objects components", - "league/uri-polyfill": "Needed to backport the PHP URI extension for older versions of PHP", + "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain", + "league/uri-components": "to provide additional tools to manipulate URI objects components", + "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP", "php-64bit": "to improve IPV4 host parsing", - "rowbot/url": "to handle WHATWG URL", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", @@ -2407,7 +2410,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.6.0" + "source": "https://github.com/thephpleague/uri/tree/7.8.0" }, "funding": [ { @@ -2415,20 +2418,20 @@ "type": "github" } ], - "time": "2025-11-18T12:17:23+00:00" + "time": "2026-01-14T17:24:56+00:00" }, { "name": "league/uri-interfaces", - "version": "7.6.0", + "version": "7.8.0", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368" + "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/ccbfb51c0445298e7e0b7f4481b942f589665368", - "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4", + "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4", "shasum": "" }, "require": { @@ -2441,7 +2444,7 @@ "ext-gmp": "to improve IPV4 host parsing", "ext-intl": "to handle IDN host with the best performance", "php-64bit": "to improve IPV4 host parsing", - "rowbot/url": "to handle WHATWG URL", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" }, "type": "library", @@ -2491,7 +2494,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.6.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.0" }, "funding": [ { @@ -2499,20 +2502,20 @@ "type": "github" } ], - "time": "2025-11-18T12:17:23+00:00" + "time": "2026-01-15T06:54:53+00:00" }, { "name": "mazedlx/laravel-feature-policy", - "version": "v2.3.1", + "version": "v2.3.2", "source": { "type": "git", "url": "https://github.com/mazedlx/laravel-feature-policy.git", - "reference": "0f73a6b590bf323b71ffbedddc88d58ed21eae76" + "reference": "10911d19921cf88b3d7a2fa04e932f6362be0b7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mazedlx/laravel-feature-policy/zipball/0f73a6b590bf323b71ffbedddc88d58ed21eae76", - "reference": "0f73a6b590bf323b71ffbedddc88d58ed21eae76", + "url": "https://api.github.com/repos/mazedlx/laravel-feature-policy/zipball/10911d19921cf88b3d7a2fa04e932f6362be0b7f", + "reference": "10911d19921cf88b3d7a2fa04e932f6362be0b7f", "shasum": "" }, "require": { @@ -2559,22 +2562,22 @@ ], "support": { "issues": "https://github.com/mazedlx/laravel-feature-policy/issues", - "source": "https://github.com/mazedlx/laravel-feature-policy/tree/v2.3.1" + "source": "https://github.com/mazedlx/laravel-feature-policy/tree/v2.3.2" }, - "time": "2025-06-17T10:11:41+00:00" + "time": "2026-01-06T17:19:48+00:00" }, { "name": "monolog/monolog", - "version": "3.9.0", + "version": "3.10.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" + "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", - "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0", + "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0", "shasum": "" }, "require": { @@ -2592,7 +2595,7 @@ "graylog2/gelf-php": "^1.4.2 || ^2.0", "guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/psr7": "^2.2", - "mongodb/mongodb": "^1.8", + "mongodb/mongodb": "^1.8 || ^2.0", "php-amqplib/php-amqplib": "~2.4 || ^3", "php-console/php-console": "^3.1.8", "phpstan/phpstan": "^2", @@ -2652,7 +2655,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.9.0" + "source": "https://github.com/Seldaek/monolog/tree/3.10.0" }, "funding": [ { @@ -2664,7 +2667,7 @@ "type": "tidelift" } ], - "time": "2025-03-24T10:02:05+00:00" + "time": "2026-01-02T08:56:05+00:00" }, { "name": "mtdowling/jmespath.php", @@ -2734,16 +2737,16 @@ }, { "name": "nesbot/carbon", - "version": "3.10.3", + "version": "3.11.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f" + "reference": "f438fcc98f92babee98381d399c65336f3a3827f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", - "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/f438fcc98f92babee98381d399c65336f3a3827f", + "reference": "f438fcc98f92babee98381d399c65336f3a3827f", "shasum": "" }, "require": { @@ -2751,9 +2754,9 @@ "ext-json": "*", "php": "^8.1", "psr/clock": "^1.0", - "symfony/clock": "^6.3.12 || ^7.0", + "symfony/clock": "^6.3.12 || ^7.0 || ^8.0", "symfony/polyfill-mbstring": "^1.0", - "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0" + "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0 || ^8.0" }, "provide": { "psr/clock-implementation": "1.0" @@ -2767,7 +2770,7 @@ "phpstan/extension-installer": "^1.4.3", "phpstan/phpstan": "^2.1.22", "phpunit/phpunit": "^10.5.53", - "squizlabs/php_codesniffer": "^3.13.4" + "squizlabs/php_codesniffer": "^3.13.4 || ^4.0.0" }, "bin": [ "bin/carbon" @@ -2810,14 +2813,14 @@ } ], "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", + "homepage": "https://carbonphp.github.io/carbon/", "keywords": [ "date", "datetime", "time" ], "support": { - "docs": "https://carbon.nesbot.com/docs", + "docs": "https://carbonphp.github.io/carbon/guide/getting-started/introduction.html", "issues": "https://github.com/CarbonPHP/carbon/issues", "source": "https://github.com/CarbonPHP/carbon" }, @@ -2835,20 +2838,20 @@ "type": "tidelift" } ], - "time": "2025-09-06T13:39:36+00:00" + "time": "2026-01-29T09:26:29+00:00" }, { "name": "nette/schema", - "version": "v1.3.3", + "version": "v1.3.4", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004" + "reference": "086497a2f34b82fede9b5a41cc8e131d087cd8f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004", - "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004", + "url": "https://api.github.com/repos/nette/schema/zipball/086497a2f34b82fede9b5a41cc8e131d087cd8f7", + "reference": "086497a2f34b82fede9b5a41cc8e131d087cd8f7", "shasum": "" }, "require": { @@ -2856,8 +2859,8 @@ "php": "8.1 - 8.5" }, "require-dev": { - "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^2.0@stable", + "nette/tester": "^2.6", + "phpstan/phpstan": "^2.0@stable", "tracy/tracy": "^2.8" }, "type": "library", @@ -2898,26 +2901,26 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.3" + "source": "https://github.com/nette/schema/tree/v1.3.4" }, - "time": "2025-10-30T22:57:59+00:00" + "time": "2026-02-08T02:54:00+00:00" }, { "name": "nette/utils", - "version": "v4.0.9", + "version": "v4.1.3", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "505a30ad386daa5211f08a318e47015b501cad30" + "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/505a30ad386daa5211f08a318e47015b501cad30", - "reference": "505a30ad386daa5211f08a318e47015b501cad30", + "url": "https://api.github.com/repos/nette/utils/zipball/bb3ea637e3d131d72acc033cfc2746ee893349fe", + "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe", "shasum": "" }, "require": { - "php": "8.0 - 8.5" + "php": "8.2 - 8.5" }, "conflict": { "nette/finder": "<3", @@ -2925,8 +2928,10 @@ }, "require-dev": { "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", "nette/tester": "^2.5", - "phpstan/phpstan-nette": "^2.0@stable", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -2940,7 +2945,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "4.1-dev" } }, "autoload": { @@ -2987,9 +2992,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.9" + "source": "https://github.com/nette/utils/tree/v4.1.3" }, - "time": "2025-10-31T00:45:47+00:00" + "time": "2026-02-13T03:05:33+00:00" }, { "name": "nicmart/tree", @@ -3047,16 +3052,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.6.2", + "version": "v5.7.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "3a454ca033b9e06b63282ce19562e892747449bb" + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", - "reference": "3a454ca033b9e06b63282ce19562e892747449bb", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", "shasum": "" }, "require": { @@ -3099,37 +3104,37 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" }, - "time": "2025-10-21T19:32:17+00:00" + "time": "2025-12-06T11:56:16+00:00" }, { "name": "nunomaduro/termwind", - "version": "v2.3.3", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017" + "reference": "712a31b768f5daea284c2169a7d227031001b9a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/6fb2a640ff502caace8e05fd7be3b503a7e1c017", - "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/712a31b768f5daea284c2169a7d227031001b9a8", + "reference": "712a31b768f5daea284c2169a7d227031001b9a8", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.3.6" + "symfony/console": "^7.4.4 || ^8.0.4" }, "require-dev": { - "illuminate/console": "^11.46.1", - "laravel/pint": "^1.25.1", + "illuminate/console": "^11.47.0", + "laravel/pint": "^1.27.1", "mockery/mockery": "^1.6.12", - "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.1.3", + "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.3.2", "phpstan/phpstan": "^1.12.32", "phpstan/phpstan-strict-rules": "^1.6.2", - "symfony/var-dumper": "^7.3.5", + "symfony/var-dumper": "^7.3.5 || ^8.0.4", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -3161,7 +3166,7 @@ "email": "enunomaduro@gmail.com" } ], - "description": "Its like Tailwind CSS, but for the console.", + "description": "It's like Tailwind CSS, but for the console.", "keywords": [ "cli", "console", @@ -3172,7 +3177,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.3.3" + "source": "https://github.com/nunomaduro/termwind/tree/v2.4.0" }, "funding": [ { @@ -3188,20 +3193,20 @@ "type": "github" } ], - "time": "2025-11-20T02:34:59+00:00" + "time": "2026-02-16T23:10:27+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.4", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d" + "reference": "75365b91986c2405cf5e1e012c5595cd487a98be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", - "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/75365b91986c2405cf5e1e012c5595cd487a98be", + "reference": "75365b91986c2405cf5e1e012c5595cd487a98be", "shasum": "" }, "require": { @@ -3251,7 +3256,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.4" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.5" }, "funding": [ { @@ -3263,7 +3268,7 @@ "type": "tidelift" } ], - "time": "2025-08-21T11:53:16+00:00" + "time": "2025-12-27T19:41:33+00:00" }, { "name": "psr/clock", @@ -3679,16 +3684,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.15", + "version": "v0.12.20", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c" + "reference": "19678eb6b952a03b8a1d96ecee9edba518bb0373" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/38953bc71491c838fcb6ebcbdc41ab7483cd549c", - "reference": "38953bc71491c838fcb6ebcbdc41ab7483cd549c", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/19678eb6b952a03b8a1d96ecee9edba518bb0373", + "reference": "19678eb6b952a03b8a1d96ecee9edba518bb0373", "shasum": "" }, "require": { @@ -3696,8 +3701,8 @@ "ext-tokenizer": "*", "nikic/php-parser": "^5.0 || ^4.0", "php": "^8.0 || ^7.4", - "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" @@ -3752,9 +3757,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.15" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.20" }, - "time": "2025-11-28T00:00:14+00:00" + "time": "2026-02-11T15:05:28+00:00" }, { "name": "ralouphie/getallheaders", @@ -3878,20 +3883,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.1", + "version": "4.9.2", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" + "reference": "8429c78ca35a09f27565311b98101e2826affde0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", - "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0", + "reference": "8429c78ca35a09f27565311b98101e2826affde0", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -3950,9 +3955,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.1" + "source": "https://github.com/ramsey/uuid/tree/4.9.2" }, - "time": "2025-09-04T20:59:21+00:00" + "time": "2025-12-14T04:43:48+00:00" }, { "name": "sammyjo20/lasso", @@ -4090,16 +4095,16 @@ }, { "name": "spatie/browsershot", - "version": "5.1.1", + "version": "5.2.3", "source": { "type": "git", "url": "https://github.com/spatie/browsershot.git", - "reference": "127c20da43d0d711ebbc64f85053f50bc147c515" + "reference": "d2e4ac7c69162999940172a674bf83ddc5ac59ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/browsershot/zipball/127c20da43d0d711ebbc64f85053f50bc147c515", - "reference": "127c20da43d0d711ebbc64f85053f50bc147c515", + "url": "https://api.github.com/repos/spatie/browsershot/zipball/d2e4ac7c69162999940172a674bf83ddc5ac59ea", + "reference": "d2e4ac7c69162999940172a674bf83ddc5ac59ea", "shasum": "" }, "require": { @@ -4146,7 +4151,7 @@ "webpage" ], "support": { - "source": "https://github.com/spatie/browsershot/tree/5.1.1" + "source": "https://github.com/spatie/browsershot/tree/5.2.3" }, "funding": [ { @@ -4154,7 +4159,7 @@ "type": "github" } ], - "time": "2025-11-26T09:49:20+00:00" + "time": "2026-02-18T16:10:58+00:00" }, { "name": "spatie/crawler", @@ -4528,16 +4533,16 @@ }, { "name": "spatie/laravel-csp", - "version": "3.21.0", + "version": "3.22.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-csp.git", - "reference": "1c5a878dddc66283d80ff3bbe810c9dcda4ee919" + "reference": "d0a4f1e970f4b1d81bed4afe8c1125d2c390f73d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-csp/zipball/1c5a878dddc66283d80ff3bbe810c9dcda4ee919", - "reference": "1c5a878dddc66283d80ff3bbe810c9dcda4ee919", + "url": "https://api.github.com/repos/spatie/laravel-csp/zipball/d0a4f1e970f4b1d81bed4afe8c1125d2c390f73d", + "reference": "d0a4f1e970f4b1d81bed4afe8c1125d2c390f73d", "shasum": "" }, "require": { @@ -4601,7 +4606,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-csp/tree/3.21.0" + "source": "https://github.com/spatie/laravel-csp/tree/3.22.0" }, "funding": [ { @@ -4609,7 +4614,7 @@ "type": "custom" } ], - "time": "2025-10-16T07:20:44+00:00" + "time": "2026-01-24T18:56:15+00:00" }, { "name": "spatie/laravel-flash", @@ -4674,16 +4679,16 @@ }, { "name": "spatie/laravel-health", - "version": "1.34.9", + "version": "1.37.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-health.git", - "reference": "dc2963c97d04cae7ce9abeeb085de50d84eabe92" + "reference": "2d3a68ae2f855d3997a85deb819898a4b7720d49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-health/zipball/dc2963c97d04cae7ce9abeeb085de50d84eabe92", - "reference": "dc2963c97d04cae7ce9abeeb085de50d84eabe92", + "url": "https://api.github.com/repos/spatie/laravel-health/zipball/2d3a68ae2f855d3997a85deb819898a4b7720d49", + "reference": "2d3a68ae2f855d3997a85deb819898a4b7720d49", "shasum": "" }, "require": { @@ -4715,7 +4720,7 @@ "phpstan/phpstan-phpunit": "^1.1.1", "phpunit/phpunit": "^9.5.21|^9.5.10|^10.5|^11.0|^12.0", "spatie/laravel-ray": "^1.30", - "spatie/pest-plugin-snapshots": "^1.1|^2.1|^3.0", + "spatie/pest-plugin-snapshots": "^1.1|^2.3|^3.0", "spatie/pest-plugin-test-time": "^1.1.1|^1.1|^2.0|^3.0", "spatie/test-time": "^1.3|^2.0" }, @@ -4755,7 +4760,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/laravel-health/tree/1.34.9" + "source": "https://github.com/spatie/laravel-health/tree/1.37.0" }, "funding": [ { @@ -4763,7 +4768,7 @@ "type": "github" } ], - "time": "2025-11-28T09:47:19+00:00" + "time": "2026-02-12T16:31:50+00:00" }, { "name": "spatie/laravel-honeypot", @@ -4843,38 +4848,39 @@ }, { "name": "spatie/laravel-ignition", - "version": "2.9.1", + "version": "2.10.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "1baee07216d6748ebd3a65ba97381b051838707a" + "reference": "2abefdcca6074a9155f90b4ccb3345af8889d5f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/1baee07216d6748ebd3a65ba97381b051838707a", - "reference": "1baee07216d6748ebd3a65ba97381b051838707a", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/2abefdcca6074a9155f90b4ccb3345af8889d5f5", + "reference": "2abefdcca6074a9155f90b4ccb3345af8889d5f5", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^10.0|^11.0|^12.0", - "php": "^8.1", - "spatie/ignition": "^1.15", - "symfony/console": "^6.2.3|^7.0", - "symfony/var-dumper": "^6.2.3|^7.0" + "illuminate/support": "^11.0|^12.0", + "nesbot/carbon": "^2.72|^3.0", + "php": "^8.2", + "spatie/ignition": "^1.15.1", + "symfony/console": "^7.4|^8.0", + "symfony/var-dumper": "^7.4|^8.0" }, "require-dev": { - "livewire/livewire": "^2.11|^3.3.5", - "mockery/mockery": "^1.5.1", - "openai-php/client": "^0.8.1|^0.10", - "orchestra/testbench": "8.22.3|^9.0|^10.0", - "pestphp/pest": "^2.34|^3.7", - "phpstan/extension-installer": "^1.3.1", - "phpstan/phpstan-deprecation-rules": "^1.1.1|^2.0", - "phpstan/phpstan-phpunit": "^1.3.16|^2.0", - "vlucas/phpdotenv": "^5.5" + "livewire/livewire": "^3.7.0|^4.0", + "mockery/mockery": "^1.6.12", + "openai-php/client": "^0.10.3", + "orchestra/testbench": "^v9.16.0|^10.6", + "pestphp/pest": "^3.7|^4.0", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpstan/phpstan-phpunit": "^2.0.8", + "vlucas/phpdotenv": "^5.6.2" }, "suggest": { "openai-php/client": "Require get solutions from OpenAI", @@ -4930,7 +4936,7 @@ "type": "github" } ], - "time": "2025-02-20T13:13:55+00:00" + "time": "2026-01-20T13:16:11+00:00" }, { "name": "spatie/laravel-package-tools", @@ -4995,16 +5001,16 @@ }, { "name": "spatie/laravel-permission", - "version": "6.23.0", + "version": "6.24.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-permission.git", - "reference": "9e41247bd512b1e6c229afbc1eb528f7565ae3bb" + "reference": "eefc9d17eba80d023d6bff313f882cb2bcd691a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/9e41247bd512b1e6c229afbc1eb528f7565ae3bb", - "reference": "9e41247bd512b1e6c229afbc1eb528f7565ae3bb", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/eefc9d17eba80d023d6bff313f882cb2bcd691a3", + "reference": "eefc9d17eba80d023d6bff313f882cb2bcd691a3", "shasum": "" }, "require": { @@ -5066,7 +5072,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-permission/issues", - "source": "https://github.com/spatie/laravel-permission/tree/6.23.0" + "source": "https://github.com/spatie/laravel-permission/tree/6.24.1" }, "funding": [ { @@ -5074,7 +5080,7 @@ "type": "github" } ], - "time": "2025-11-03T20:16:13+00:00" + "time": "2026-02-09T21:10:03+00:00" }, { "name": "spatie/laravel-responsecache", @@ -5494,16 +5500,16 @@ }, { "name": "spatie/temporary-directory", - "version": "2.3.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/spatie/temporary-directory.git", - "reference": "580eddfe9a0a41a902cac6eeb8f066b42e65a32b" + "reference": "662e481d6ec07ef29fd05010433428851a42cd07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/580eddfe9a0a41a902cac6eeb8f066b42e65a32b", - "reference": "580eddfe9a0a41a902cac6eeb8f066b42e65a32b", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/662e481d6ec07ef29fd05010433428851a42cd07", + "reference": "662e481d6ec07ef29fd05010433428851a42cd07", "shasum": "" }, "require": { @@ -5539,7 +5545,7 @@ ], "support": { "issues": "https://github.com/spatie/temporary-directory/issues", - "source": "https://github.com/spatie/temporary-directory/tree/2.3.0" + "source": "https://github.com/spatie/temporary-directory/tree/2.3.1" }, "funding": [ { @@ -5551,26 +5557,25 @@ "type": "github" } ], - "time": "2025-01-13T13:04:43+00:00" + "time": "2026-01-12T07:42:22+00:00" }, { "name": "symfony/clock", - "version": "v7.4.0", + "version": "v8.0.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "9169f24776edde469914c1e7a1442a50f7a4e110" + "reference": "832119f9b8dbc6c8e6f65f30c5969eca1e88764f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110", - "reference": "9169f24776edde469914c1e7a1442a50f7a4e110", + "url": "https://api.github.com/repos/symfony/clock/zipball/832119f9b8dbc6c8e6f65f30c5969eca1e88764f", + "reference": "832119f9b8dbc6c8e6f65f30c5969eca1e88764f", "shasum": "" }, "require": { - "php": ">=8.2", - "psr/clock": "^1.0", - "symfony/polyfill-php83": "^1.28" + "php": ">=8.4", + "psr/clock": "^1.0" }, "provide": { "psr/clock-implementation": "1.0" @@ -5609,7 +5614,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.4.0" + "source": "https://github.com/symfony/clock/tree/v8.0.0" }, "funding": [ { @@ -5629,20 +5634,20 @@ "type": "tidelift" } ], - "time": "2025-11-12T15:39:26+00:00" + "time": "2025-11-12T15:46:48+00:00" }, { "name": "symfony/console", - "version": "v7.4.0", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8" + "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", - "reference": "0bc0f45254b99c58d45a8fbf9fb955d46cbd1bb8", + "url": "https://api.github.com/repos/symfony/console/zipball/41e38717ac1dd7a46b6bda7d6a82af2d98a78894", + "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894", "shasum": "" }, "require": { @@ -5707,7 +5712,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.0" + "source": "https://github.com/symfony/console/tree/v7.4.4" }, "funding": [ { @@ -5727,24 +5732,24 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2026-01-13T11:36:38+00:00" }, { "name": "symfony/css-selector", - "version": "v7.4.0", + "version": "v8.0.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135" + "reference": "6225bd458c53ecdee056214cb4a2ffaf58bd592b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab862f478513e7ca2fe9ec117a6f01a8da6e1135", - "reference": "ab862f478513e7ca2fe9ec117a6f01a8da6e1135", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/6225bd458c53ecdee056214cb4a2ffaf58bd592b", + "reference": "6225bd458c53ecdee056214cb4a2ffaf58bd592b", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.4" }, "type": "library", "autoload": { @@ -5776,7 +5781,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.4.0" + "source": "https://github.com/symfony/css-selector/tree/v8.0.0" }, "funding": [ { @@ -5796,7 +5801,7 @@ "type": "tidelift" } ], - "time": "2025-10-30T13:39:42+00:00" + "time": "2025-10-30T14:17:19+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5867,16 +5872,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v8.0.0", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "15d1f7555f3337ded097dbe01c6ea6c59564a64a" + "reference": "fd78228fa362b41729173183493f46b1df49485f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/15d1f7555f3337ded097dbe01c6ea6c59564a64a", - "reference": "15d1f7555f3337ded097dbe01c6ea6c59564a64a", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/fd78228fa362b41729173183493f46b1df49485f", + "reference": "fd78228fa362b41729173183493f46b1df49485f", "shasum": "" }, "require": { @@ -5913,7 +5918,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v8.0.0" + "source": "https://github.com/symfony/dom-crawler/tree/v8.0.4" }, "funding": [ { @@ -5933,20 +5938,20 @@ "type": "tidelift" } ], - "time": "2025-11-01T09:19:23+00:00" + "time": "2026-01-05T09:27:50+00:00" }, { "name": "symfony/error-handler", - "version": "v7.4.0", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2" + "reference": "8da531f364ddfee53e36092a7eebbbd0b775f6b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/48be2b0653594eea32dcef130cca1c811dcf25c2", - "reference": "48be2b0653594eea32dcef130cca1c811dcf25c2", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/8da531f364ddfee53e36092a7eebbbd0b775f6b8", + "reference": "8da531f364ddfee53e36092a7eebbbd0b775f6b8", "shasum": "" }, "require": { @@ -5995,7 +6000,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.4.0" + "source": "https://github.com/symfony/error-handler/tree/v7.4.4" }, "funding": [ { @@ -6015,20 +6020,20 @@ "type": "tidelift" } ], - "time": "2025-11-05T14:29:59+00:00" + "time": "2026-01-20T16:42:42+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v8.0.0", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "573f95783a2ec6e38752979db139f09fec033f03" + "reference": "99301401da182b6cfaa4700dbe9987bb75474b47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/573f95783a2ec6e38752979db139f09fec033f03", - "reference": "573f95783a2ec6e38752979db139f09fec033f03", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/99301401da182b6cfaa4700dbe9987bb75474b47", + "reference": "99301401da182b6cfaa4700dbe9987bb75474b47", "shasum": "" }, "require": { @@ -6080,7 +6085,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.4" }, "funding": [ { @@ -6100,7 +6105,7 @@ "type": "tidelift" } ], - "time": "2025-10-30T14:17:19+00:00" + "time": "2026-01-05T11:45:55+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6178,18 +6183,88 @@ ], "time": "2024-09-25T14:21:43+00:00" }, + { + "name": "symfony/filesystem", + "version": "v8.0.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "d937d400b980523dc9ee946bb69972b5e619058d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/d937d400b980523dc9ee946bb69972b5e619058d", + "reference": "d937d400b980523dc9ee946bb69972b5e619058d", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^7.4|^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v8.0.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-12-01T09:13:36+00:00" + }, { "name": "symfony/finder", - "version": "v7.4.0", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "340b9ed7320570f319028a2cbec46d40535e94bd" + "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/340b9ed7320570f319028a2cbec46d40535e94bd", - "reference": "340b9ed7320570f319028a2cbec46d40535e94bd", + "url": "https://api.github.com/repos/symfony/finder/zipball/ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", + "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", "shasum": "" }, "require": { @@ -6224,7 +6299,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.0" + "source": "https://github.com/symfony/finder/tree/v7.4.5" }, "funding": [ { @@ -6244,20 +6319,20 @@ "type": "tidelift" } ], - "time": "2025-11-05T05:42:40+00:00" + "time": "2026-01-26T15:07:59+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.4.0", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "769c1720b68e964b13b58529c17d4a385c62167b" + "reference": "446d0db2b1f21575f1284b74533e425096abdfb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/769c1720b68e964b13b58529c17d4a385c62167b", - "reference": "769c1720b68e964b13b58529c17d4a385c62167b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/446d0db2b1f21575f1284b74533e425096abdfb6", + "reference": "446d0db2b1f21575f1284b74533e425096abdfb6", "shasum": "" }, "require": { @@ -6306,7 +6381,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.0" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.5" }, "funding": [ { @@ -6326,20 +6401,20 @@ "type": "tidelift" } ], - "time": "2025-11-13T08:49:24+00:00" + "time": "2026-01-27T16:16:02+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.0", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "7348193cd384495a755554382e4526f27c456085" + "reference": "229eda477017f92bd2ce7615d06222ec0c19e82a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7348193cd384495a755554382e4526f27c456085", - "reference": "7348193cd384495a755554382e4526f27c456085", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/229eda477017f92bd2ce7615d06222ec0c19e82a", + "reference": "229eda477017f92bd2ce7615d06222ec0c19e82a", "shasum": "" }, "require": { @@ -6425,7 +6500,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.4.0" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.5" }, "funding": [ { @@ -6445,20 +6520,20 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:38:24+00:00" + "time": "2026-01-28T10:33:42+00:00" }, { "name": "symfony/mailer", - "version": "v7.4.0", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "a3d9eea8cfa467ece41f0f54ba28185d74bd53fd" + "reference": "7b750074c40c694ceb34cb926d6dffee231c5cd6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/a3d9eea8cfa467ece41f0f54ba28185d74bd53fd", - "reference": "a3d9eea8cfa467ece41f0f54ba28185d74bd53fd", + "url": "https://api.github.com/repos/symfony/mailer/zipball/7b750074c40c694ceb34cb926d6dffee231c5cd6", + "reference": "7b750074c40c694ceb34cb926d6dffee231c5cd6", "shasum": "" }, "require": { @@ -6509,7 +6584,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.4.0" + "source": "https://github.com/symfony/mailer/tree/v7.4.4" }, "funding": [ { @@ -6529,20 +6604,20 @@ "type": "tidelift" } ], - "time": "2025-11-21T15:26:00+00:00" + "time": "2026-01-08T08:25:11+00:00" }, { "name": "symfony/mime", - "version": "v7.4.0", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "bdb02729471be5d047a3ac4a69068748f1a6be7a" + "reference": "b18c7e6e9eee1e19958138df10412f3c4c316148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/bdb02729471be5d047a3ac4a69068748f1a6be7a", - "reference": "bdb02729471be5d047a3ac4a69068748f1a6be7a", + "url": "https://api.github.com/repos/symfony/mime/zipball/b18c7e6e9eee1e19958138df10412f3c4c316148", + "reference": "b18c7e6e9eee1e19958138df10412f3c4c316148", "shasum": "" }, "require": { @@ -6553,15 +6628,15 @@ }, "conflict": { "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", + "phpdocumentor/reflection-docblock": "<5.2|>=6", + "phpdocumentor/type-resolver": "<1.5.1", "symfony/mailer": "<6.4", "symfony/serializer": "<6.4.3|>7.0,<7.0.3" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpdocumentor/reflection-docblock": "^5.2", "symfony/dependency-injection": "^6.4|^7.0|^8.0", "symfony/process": "^6.4|^7.0|^8.0", "symfony/property-access": "^6.4|^7.0|^8.0", @@ -6598,7 +6673,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.4.0" + "source": "https://github.com/symfony/mime/tree/v7.4.5" }, "funding": [ { @@ -6618,7 +6693,7 @@ "type": "tidelift" } ], - "time": "2025-11-16T10:14:42+00:00" + "time": "2026-01-27T08:59:58+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7451,16 +7526,16 @@ }, { "name": "symfony/process", - "version": "v7.4.0", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8" + "reference": "608476f4604102976d687c483ac63a79ba18cc97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", - "reference": "7ca8dc2d0dcf4882658313aba8be5d9fd01026c8", + "url": "https://api.github.com/repos/symfony/process/zipball/608476f4604102976d687c483ac63a79ba18cc97", + "reference": "608476f4604102976d687c483ac63a79ba18cc97", "shasum": "" }, "require": { @@ -7492,7 +7567,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.0" + "source": "https://github.com/symfony/process/tree/v7.4.5" }, "funding": [ { @@ -7512,20 +7587,20 @@ "type": "tidelift" } ], - "time": "2025-10-16T11:21:06+00:00" + "time": "2026-01-26T15:07:59+00:00" }, { "name": "symfony/routing", - "version": "v7.4.0", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "4720254cb2644a0b876233d258a32bf017330db7" + "reference": "0798827fe2c79caeed41d70b680c2c3507d10147" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/4720254cb2644a0b876233d258a32bf017330db7", - "reference": "4720254cb2644a0b876233d258a32bf017330db7", + "url": "https://api.github.com/repos/symfony/routing/zipball/0798827fe2c79caeed41d70b680c2c3507d10147", + "reference": "0798827fe2c79caeed41d70b680c2c3507d10147", "shasum": "" }, "require": { @@ -7577,7 +7652,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.0" + "source": "https://github.com/symfony/routing/tree/v7.4.4" }, "funding": [ { @@ -7597,7 +7672,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2026-01-12T12:19:02+00:00" }, { "name": "symfony/service-contracts", @@ -7688,16 +7763,16 @@ }, { "name": "symfony/string", - "version": "v8.0.0", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f929eccf09531078c243df72398560e32fa4cf4f" + "reference": "758b372d6882506821ed666032e43020c4f57194" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f929eccf09531078c243df72398560e32fa4cf4f", - "reference": "f929eccf09531078c243df72398560e32fa4cf4f", + "url": "https://api.github.com/repos/symfony/string/zipball/758b372d6882506821ed666032e43020c4f57194", + "reference": "758b372d6882506821ed666032e43020c4f57194", "shasum": "" }, "require": { @@ -7754,7 +7829,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v8.0.0" + "source": "https://github.com/symfony/string/tree/v8.0.4" }, "funding": [ { @@ -7774,38 +7849,31 @@ "type": "tidelift" } ], - "time": "2025-09-11T14:37:55+00:00" + "time": "2026-01-12T12:37:40+00:00" }, { "name": "symfony/translation", - "version": "v7.4.0", + "version": "v8.0.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68" + "reference": "db70c8ce7db74fd2da7b1d268db46b2a8ce32c10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", - "reference": "2d01ca0da3f092f91eeedb46f24aa30d2fca8f68", + "url": "https://api.github.com/repos/symfony/translation/zipball/db70c8ce7db74fd2da7b1d268db46b2a8ce32c10", + "reference": "db70c8ce7db74fd2da7b1d268db46b2a8ce32c10", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2.5.3|^3.3" + "php": ">=8.4", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation-contracts": "^3.6.1" }, "conflict": { "nikic/php-parser": "<5.0", - "symfony/config": "<6.4", - "symfony/console": "<6.4", - "symfony/dependency-injection": "<6.4", "symfony/http-client-contracts": "<2.5", - "symfony/http-kernel": "<6.4", - "symfony/service-contracts": "<2.5", - "symfony/twig-bundle": "<6.4", - "symfony/yaml": "<6.4" + "symfony/service-contracts": "<2.5" }, "provide": { "symfony/translation-implementation": "2.3|3.0" @@ -7813,17 +7881,17 @@ "require-dev": { "nikic/php-parser": "^5.0", "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/console": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/finder": "^6.4|^7.0|^8.0", + "symfony/config": "^7.4|^8.0", + "symfony/console": "^7.4|^8.0", + "symfony/dependency-injection": "^7.4|^8.0", + "symfony/finder": "^7.4|^8.0", "symfony/http-client-contracts": "^2.5|^3.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/http-kernel": "^7.4|^8.0", + "symfony/intl": "^7.4|^8.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/routing": "^6.4|^7.0|^8.0", + "symfony/routing": "^7.4|^8.0", "symfony/service-contracts": "^2.5|^3", - "symfony/yaml": "^6.4|^7.0|^8.0" + "symfony/yaml": "^7.4|^8.0" }, "type": "library", "autoload": { @@ -7854,7 +7922,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.4.0" + "source": "https://github.com/symfony/translation/tree/v8.0.4" }, "funding": [ { @@ -7874,7 +7942,7 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2026-01-13T13:06:50+00:00" }, { "name": "symfony/translation-contracts", @@ -7960,16 +8028,16 @@ }, { "name": "symfony/uid", - "version": "v7.4.0", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "2498e9f81b7baa206f44de583f2f48350b90142c" + "reference": "7719ce8aba76be93dfe249192f1fbfa52c588e36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/2498e9f81b7baa206f44de583f2f48350b90142c", - "reference": "2498e9f81b7baa206f44de583f2f48350b90142c", + "url": "https://api.github.com/repos/symfony/uid/zipball/7719ce8aba76be93dfe249192f1fbfa52c588e36", + "reference": "7719ce8aba76be93dfe249192f1fbfa52c588e36", "shasum": "" }, "require": { @@ -8014,7 +8082,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.4.0" + "source": "https://github.com/symfony/uid/tree/v7.4.4" }, "funding": [ { @@ -8034,20 +8102,20 @@ "type": "tidelift" } ], - "time": "2025-09-25T11:02:55+00:00" + "time": "2026-01-03T23:30:35+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.4.0", + "version": "v7.4.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "41fd6c4ae28c38b294b42af6db61446594a0dece" + "reference": "0e4769b46a0c3c62390d124635ce59f66874b282" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/41fd6c4ae28c38b294b42af6db61446594a0dece", - "reference": "41fd6c4ae28c38b294b42af6db61446594a0dece", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0e4769b46a0c3c62390d124635ce59f66874b282", + "reference": "0e4769b46a0c3c62390d124635ce59f66874b282", "shasum": "" }, "require": { @@ -8101,7 +8169,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.0" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.4" }, "funding": [ { @@ -8121,27 +8189,27 @@ "type": "tidelift" } ], - "time": "2025-10-27T20:36:44+00:00" + "time": "2026-01-01T22:13:48+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "v2.3.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "0d72ac1c00084279c1816675284073c5a337c20d" + "reference": "f0292ccf0ec75843d65027214426b6b163b48b41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d", - "reference": "0d72ac1c00084279c1816675284073c5a337c20d", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/f0292ccf0ec75843d65027214426b6b163b48b41", + "reference": "f0292ccf0ec75843d65027214426b6b163b48b41", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "php": "^7.4 || ^8.0", - "symfony/css-selector": "^5.4 || ^6.0 || ^7.0" + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^2.0", @@ -8174,32 +8242,32 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.4.0" }, - "time": "2024-12-21T16:25:41+00:00" + "time": "2025-12-02T11:56:42+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.6.2", + "version": "v5.6.3", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af" + "reference": "955e7815d677a3eaa7075231212f2110983adecc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af", - "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc", + "reference": "955e7815d677a3eaa7075231212f2110983adecc", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.3", + "graham-campbell/result-type": "^1.1.4", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.3", - "symfony/polyfill-ctype": "^1.24", - "symfony/polyfill-mbstring": "^1.24", - "symfony/polyfill-php80": "^1.24" + "phpoption/phpoption": "^1.9.5", + "symfony/polyfill-ctype": "^1.26", + "symfony/polyfill-mbstring": "^1.26", + "symfony/polyfill-php80": "^1.26" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", @@ -8248,7 +8316,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.3" }, "funding": [ { @@ -8260,7 +8328,7 @@ "type": "tidelift" } ], - "time": "2025-04-30T23:37:27+00:00" + "time": "2025-12-27T19:49:13+00:00" }, { "name": "voku/portable-ascii", @@ -8340,16 +8408,16 @@ "packages-dev": [ { "name": "brianium/paratest", - "version": "v7.8.4", + "version": "v7.8.5", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "130a9bf0e269ee5f5b320108f794ad03e275cad4" + "reference": "9b324c8fc319cf9728b581c7a90e1c8f6361c5e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/130a9bf0e269ee5f5b320108f794ad03e275cad4", - "reference": "130a9bf0e269ee5f5b320108f794ad03e275cad4", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/9b324c8fc319cf9728b581c7a90e1c8f6361c5e5", + "reference": "9b324c8fc319cf9728b581c7a90e1c8f6361c5e5", "shasum": "" }, "require": { @@ -8357,27 +8425,27 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.2.0", + "fidry/cpu-core-counter": "^1.3.0", "jean85/pretty-package-versions": "^2.1.1", - "php": "~8.2.0 || ~8.3.0 || ~8.4.0", - "phpunit/php-code-coverage": "^11.0.10", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "phpunit/php-code-coverage": "^11.0.12", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-timer": "^7.0.1", - "phpunit/phpunit": "^11.5.24", + "phpunit/phpunit": "^11.5.46", "sebastian/environment": "^7.2.1", - "symfony/console": "^6.4.22 || ^7.3.0", - "symfony/process": "^6.4.20 || ^7.3.0" + "symfony/console": "^6.4.22 || ^7.3.4 || ^8.0.3", + "symfony/process": "^6.4.20 || ^7.3.4 || ^8.0.3" }, "require-dev": { "doctrine/coding-standard": "^12.0.0", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan": "^2.1.33", "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpstan/phpstan-phpunit": "^2.0.6", - "phpstan/phpstan-strict-rules": "^2.0.4", - "squizlabs/php_codesniffer": "^3.13.2", - "symfony/filesystem": "^6.4.13 || ^7.3.0" + "phpstan/phpstan-phpunit": "^2.0.11", + "phpstan/phpstan-strict-rules": "^2.0.7", + "squizlabs/php_codesniffer": "^3.13.5", + "symfony/filesystem": "^6.4.13 || ^7.3.2 || ^8.0.1" }, "bin": [ "bin/paratest", @@ -8417,7 +8485,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.8.4" + "source": "https://github.com/paratestphp/paratest/tree/v7.8.5" }, "funding": [ { @@ -8429,33 +8497,33 @@ "type": "paypal" } ], - "time": "2025-06-23T06:07:21+00:00" + "time": "2026-01-08T08:02:38+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.5", + "version": "1.1.6", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "conflict": { - "phpunit/phpunit": "<=7.5 || >=13" + "phpunit/phpunit": "<=7.5 || >=14" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^13", - "phpstan/phpstan": "1.4.10 || 2.1.11", + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", "psr/log": "^1 || ^2 || ^3" }, "suggest": { @@ -8475,9 +8543,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.5" + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" }, - "time": "2025-04-07T20:06:18+00:00" + "time": "2026-02-07T07:09:04+00:00" }, { "name": "fakerphp/faker", @@ -8921,16 +8989,16 @@ }, { "name": "laravel/pint", - "version": "v1.26.0", + "version": "v1.27.1", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "69dcca060ecb15e4b564af63d1f642c81a241d6f" + "reference": "54cca2de13790570c7b6f0f94f37896bee4abcb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/69dcca060ecb15e4b564af63d1f642c81a241d6f", - "reference": "69dcca060ecb15e4b564af63d1f642c81a241d6f", + "url": "https://api.github.com/repos/laravel/pint/zipball/54cca2de13790570c7b6f0f94f37896bee4abcb5", + "reference": "54cca2de13790570c7b6f0f94f37896bee4abcb5", "shasum": "" }, "require": { @@ -8941,13 +9009,13 @@ "php": "^8.2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.90.0", - "illuminate/view": "^12.40.1", - "larastan/larastan": "^3.8.0", - "laravel-zero/framework": "^12.0.4", + "friendsofphp/php-cs-fixer": "^3.93.1", + "illuminate/view": "^12.51.0", + "larastan/larastan": "^3.9.2", + "laravel-zero/framework": "^12.0.5", "mockery/mockery": "^1.6.12", "nunomaduro/termwind": "^2.3.3", - "pestphp/pest": "^3.8.4" + "pestphp/pest": "^3.8.5" }, "bin": [ "builds/pint" @@ -8984,32 +9052,32 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2025-11-25T21:15:52+00:00" + "time": "2026-02-10T20:00:20+00:00" }, { "name": "laravel/sail", - "version": "v1.48.1", + "version": "v1.53.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "ef122b223f5fca5e5d88bda5127c846710886329" + "reference": "e340eaa2bea9b99192570c48ed837155dbf24fbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/ef122b223f5fca5e5d88bda5127c846710886329", - "reference": "ef122b223f5fca5e5d88bda5127c846710886329", + "url": "https://api.github.com/repos/laravel/sail/zipball/e340eaa2bea9b99192570c48ed837155dbf24fbb", + "reference": "e340eaa2bea9b99192570c48ed837155dbf24fbb", "shasum": "" }, "require": { - "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0", - "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0", - "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0|^13.0", "php": "^8.0", - "symfony/console": "^6.0|^7.0", - "symfony/yaml": "^6.0|^7.0" + "symfony/console": "^6.0|^7.0|^8.0", + "symfony/yaml": "^6.0|^7.0|^8.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0", "phpstan/phpstan": "^2.0" }, "bin": [ @@ -9047,7 +9115,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2025-11-17T22:05:34+00:00" + "time": "2026-02-06T12:16:02+00:00" }, { "name": "mockery/mockery", @@ -9194,39 +9262,36 @@ }, { "name": "nunomaduro/collision", - "version": "v8.8.3", + "version": "v8.9.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4" + "reference": "a1ed3fa530fd60bc515f9303e8520fcb7d4bd935" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/1dc9e88d105699d0fee8bb18890f41b274f6b4c4", - "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/a1ed3fa530fd60bc515f9303e8520fcb7d4bd935", + "reference": "a1ed3fa530fd60bc515f9303e8520fcb7d4bd935", "shasum": "" }, "require": { - "filp/whoops": "^2.18.1", - "nunomaduro/termwind": "^2.3.1", + "filp/whoops": "^2.18.4", + "nunomaduro/termwind": "^2.4.0", "php": "^8.2.0", - "symfony/console": "^7.3.0" + "symfony/console": "^7.4.4 || ^8.0.4" }, "conflict": { - "laravel/framework": "<11.44.2 || >=13.0.0", - "phpunit/phpunit": "<11.5.15 || >=13.0.0" + "laravel/framework": "<11.48.0 || >=14.0.0", + "phpunit/phpunit": "<11.5.50 || >=14.0.0" }, "require-dev": { - "brianium/paratest": "^7.8.3", - "larastan/larastan": "^3.4.2", - "laravel/framework": "^11.44.2 || ^12.18", - "laravel/pint": "^1.22.1", - "laravel/sail": "^1.43.1", - "laravel/sanctum": "^4.1.1", - "laravel/tinker": "^2.10.1", - "orchestra/testbench-core": "^9.12.0 || ^10.4", - "pestphp/pest": "^3.8.2 || ^4.0.0", - "sebastian/environment": "^7.2.1 || ^8.0" + "brianium/paratest": "^7.8.5", + "larastan/larastan": "^3.9.2", + "laravel/framework": "^11.48.0 || ^12.52.0", + "laravel/pint": "^1.27.1", + "orchestra/testbench-core": "^9.12.0 || ^10.9.0", + "pestphp/pest": "^3.8.5 || ^4.4.1 || ^5.0.0", + "sebastian/environment": "^7.2.1 || ^8.0.3 || ^9.0.0" }, "type": "library", "extra": { @@ -9289,42 +9354,42 @@ "type": "patreon" } ], - "time": "2025-11-20T02:55:25+00:00" + "time": "2026-02-17T17:33:08+00:00" }, { "name": "pestphp/pest", - "version": "v3.8.4", + "version": "v3.8.5", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "72cf695554420e21858cda831d5db193db102574" + "reference": "7796630eafcfd1c02660cecdde3bc6984fbf01f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/72cf695554420e21858cda831d5db193db102574", - "reference": "72cf695554420e21858cda831d5db193db102574", + "url": "https://api.github.com/repos/pestphp/pest/zipball/7796630eafcfd1c02660cecdde3bc6984fbf01f4", + "reference": "7796630eafcfd1c02660cecdde3bc6984fbf01f4", "shasum": "" }, "require": { - "brianium/paratest": "^7.8.4", - "nunomaduro/collision": "^8.8.2", - "nunomaduro/termwind": "^2.3.1", + "brianium/paratest": "^7.8.5", + "nunomaduro/collision": "^8.8.3", + "nunomaduro/termwind": "^2.3.3", "pestphp/pest-plugin": "^3.0.0", "pestphp/pest-plugin-arch": "^3.1.1", "pestphp/pest-plugin-mutate": "^3.0.5", "php": "^8.2.0", - "phpunit/phpunit": "^11.5.33" + "phpunit/phpunit": "^11.5.50" }, "conflict": { "filp/whoops": "<2.16.0", - "phpunit/phpunit": ">11.5.33", + "phpunit/phpunit": ">11.5.50", "sebastian/exporter": "<6.0.0", "webmozart/assert": "<1.11.0" }, "require-dev": { "pestphp/pest-dev-tools": "^3.4.0", "pestphp/pest-plugin-type-coverage": "^3.6.1", - "symfony/process": "^7.3.0" + "symfony/process": "^7.4.4" }, "bin": [ "bin/pest" @@ -9389,7 +9454,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v3.8.4" + "source": "https://github.com/pestphp/pest/tree/v3.8.5" }, "funding": [ { @@ -9401,7 +9466,7 @@ "type": "github" } ], - "time": "2025-08-20T19:12:42+00:00" + "time": "2026-01-28T01:33:45+00:00" }, { "name": "pestphp/pest-plugin", @@ -10127,16 +10192,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.5", + "version": "5.6.6", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761" + "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90614c73d3800e187615e2dd236ad0e2a01bf761", - "reference": "90614c73d3800e187615e2dd236ad0e2a01bf761", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/5cee1d3dfc2d2aa6599834520911d246f656bcb8", + "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8", "shasum": "" }, "require": { @@ -10146,7 +10211,7 @@ "phpdocumentor/reflection-common": "^2.2", "phpdocumentor/type-resolver": "^1.7", "phpstan/phpdoc-parser": "^1.7|^2.0", - "webmozart/assert": "^1.9.1" + "webmozart/assert": "^1.9.1 || ^2" }, "require-dev": { "mockery/mockery": "~1.3.5 || ~1.6.0", @@ -10185,9 +10250,9 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.5" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.6" }, - "time": "2025-11-27T19:50:05+00:00" + "time": "2025-12-22T21:13:58+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -10297,16 +10362,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.0", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" + "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", + "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", "shasum": "" }, "require": { @@ -10338,9 +10403,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" }, - "time": "2025-08-30T15:50:23+00:00" + "time": "2026-01-25T14:56:51+00:00" }, { "name": "phpstan/phpstan", @@ -10402,35 +10467,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.11", + "version": "11.0.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4" + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", - "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56", + "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.4.0", + "nikic/php-parser": "^5.7.0", "php": ">=8.2", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-text-template": "^4.0.1", "sebastian/code-unit-reverse-lookup": "^4.0.1", "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.0", + "sebastian/environment": "^7.2.1", "sebastian/lines-of-code": "^3.0.1", "sebastian/version": "^5.0.2", - "theseer/tokenizer": "^1.2.3" + "theseer/tokenizer": "^1.3.1" }, "require-dev": { - "phpunit/phpunit": "^11.5.2" + "phpunit/phpunit": "^11.5.46" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -10468,7 +10533,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/11.0.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12" }, "funding": [ { @@ -10488,32 +10553,32 @@ "type": "tidelift" } ], - "time": "2025-08-27T14:37:49+00:00" + "time": "2025-12-24T07:01:01+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "5.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -10541,15 +10606,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator", + "type": "tidelift" } ], - "time": "2024-08-27T05:02:59+00:00" + "time": "2026-02-02T13:52:54+00:00" }, { "name": "phpunit/php-invoker", @@ -10737,16 +10814,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.33", + "version": "11.5.50", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "5965e9ff57546cb9137c0ff6aa78cb7442b05cf6" + "reference": "fdfc727f0fcacfeb8fcb30c7e5da173125b58be3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5965e9ff57546cb9137c0ff6aa78cb7442b05cf6", - "reference": "5965e9ff57546cb9137c0ff6aa78cb7442b05cf6", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fdfc727f0fcacfeb8fcb30c7e5da173125b58be3", + "reference": "fdfc727f0fcacfeb8fcb30c7e5da173125b58be3", "shasum": "" }, "require": { @@ -10760,17 +10837,17 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.10", + "phpunit/php-code-coverage": "^11.0.12", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-invoker": "^5.0.1", "phpunit/php-text-template": "^4.0.1", "phpunit/php-timer": "^7.0.1", "sebastian/cli-parser": "^3.0.2", "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.2", + "sebastian/comparator": "^6.3.3", "sebastian/diff": "^6.0.2", "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.0", + "sebastian/exporter": "^6.3.2", "sebastian/global-state": "^7.0.2", "sebastian/object-enumerator": "^6.0.1", "sebastian/type": "^5.1.3", @@ -10818,7 +10895,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.33" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.50" }, "funding": [ { @@ -10842,7 +10919,7 @@ "type": "tidelift" } ], - "time": "2025-08-16T05:19:02+00:00" + "time": "2026-01-27T05:59:18+00:00" }, { "name": "sebastian/cli-parser", @@ -11016,16 +11093,16 @@ }, { "name": "sebastian/comparator", - "version": "6.3.2", + "version": "6.3.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8" + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8", - "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", + "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9", "shasum": "" }, "require": { @@ -11084,7 +11161,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3" }, "funding": [ { @@ -11104,7 +11181,7 @@ "type": "tidelift" } ], - "time": "2025-08-10T08:07:46+00:00" + "time": "2026-01-24T09:26:40+00:00" }, { "name": "sebastian/complexity", @@ -11832,36 +11909,36 @@ }, { "name": "spatie/laravel-ray", - "version": "1.43.1", + "version": "1.43.6", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ray.git", - "reference": "108454d234d1aec7bd0ed9e1af4c2c0d794ff340" + "reference": "117a4addce2cb8adfc01b864435b5b278e2f0c40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/108454d234d1aec7bd0ed9e1af4c2c0d794ff340", - "reference": "108454d234d1aec7bd0ed9e1af4c2c0d794ff340", + "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/117a4addce2cb8adfc01b864435b5b278e2f0c40", + "reference": "117a4addce2cb8adfc01b864435b5b278e2f0c40", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "ext-json": "*", - "illuminate/contracts": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", - "illuminate/database": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", - "illuminate/queue": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", - "illuminate/support": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/database": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/queue": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0|^13.0", "php": "^7.4|^8.0", "spatie/backtrace": "^1.7.1", - "spatie/ray": "^1.44.0", + "spatie/ray": "^1.45.0", "symfony/stopwatch": "4.2|^5.1|^6.0|^7.0|^8.0", "zbateson/mail-mime-parser": "^1.3.1|^2.0|^3.0" }, "require-dev": { "guzzlehttp/guzzle": "^7.3", - "laravel/framework": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0", - "laravel/pint": "^1.25", - "orchestra/testbench-core": "^5.0|^6.0|^7.0|^8.0|^9.0|^10.0", + "laravel/framework": "^7.20|^8.19|^9.0|^10.0|^11.0|^12.0|^13.0", + "laravel/pint": "^1.27", + "orchestra/testbench-core": "^5.0|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "pestphp/pest": "^1.22|^2.0|^3.0|^4.0", "phpstan/phpstan": "^1.10.57|^2.0.2", "phpunit/phpunit": "^9.3|^10.1|^11.0.10|^12.4", @@ -11905,7 +11982,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.43.1" + "source": "https://github.com/spatie/laravel-ray/tree/1.43.6" }, "funding": [ { @@ -11917,27 +11994,28 @@ "type": "other" } ], - "time": "2025-11-24T15:54:04+00:00" + "time": "2026-02-19T10:24:51+00:00" }, { "name": "spatie/macroable", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/spatie/macroable.git", - "reference": "ec2c320f932e730607aff8052c44183cf3ecb072" + "reference": "2967f69810ba4df158391665c0850010b9d1507c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/macroable/zipball/ec2c320f932e730607aff8052c44183cf3ecb072", - "reference": "ec2c320f932e730607aff8052c44183cf3ecb072", + "url": "https://api.github.com/repos/spatie/macroable/zipball/2967f69810ba4df158391665c0850010b9d1507c", + "reference": "2967f69810ba4df158391665c0850010b9d1507c", "shasum": "" }, "require": { - "php": "^8.0" + "php": "^8.3" }, "require-dev": { - "phpunit/phpunit": "^8.0|^9.3" + "pestphp/pest": "^4", + "phpunit/phpunit": "^12" }, "type": "library", "autoload": { @@ -11965,22 +12043,22 @@ ], "support": { "issues": "https://github.com/spatie/macroable/issues", - "source": "https://github.com/spatie/macroable/tree/2.0.0" + "source": "https://github.com/spatie/macroable/tree/2.1.0" }, - "time": "2021-03-26T22:39:02+00:00" + "time": "2026-01-30T17:13:34+00:00" }, { "name": "spatie/ray", - "version": "1.44.1", + "version": "1.47.0", "source": { "type": "git", "url": "https://github.com/spatie/ray.git", - "reference": "588e201dda9bd94ce27af365f5a734b1de706a81" + "reference": "3112acb6a7fbcefe35f6e47b1dc13341ff5bc5ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/588e201dda9bd94ce27af365f5a734b1de706a81", - "reference": "588e201dda9bd94ce27af365f5a734b1de706a81", + "url": "https://api.github.com/repos/spatie/ray/zipball/3112acb6a7fbcefe35f6e47b1dc13341ff5bc5ce", + "reference": "3112acb6a7fbcefe35f6e47b1dc13341ff5bc5ce", "shasum": "" }, "require": { @@ -11994,7 +12072,7 @@ "symfony/var-dumper": "^4.2|^5.1|^6.0|^7.0.3|^8.0" }, "require-dev": { - "illuminate/support": "^7.20|^8.18|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^7.20|^8.18|^9.0|^10.0|^11.0|^12.0|^13.0", "nesbot/carbon": "^2.63|^3.8.4", "pestphp/pest": "^1.22", "phpstan/phpstan": "^1.10.57|^2.0.3", @@ -12040,7 +12118,7 @@ ], "support": { "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.44.1" + "source": "https://github.com/spatie/ray/tree/1.47.0" }, "funding": [ { @@ -12052,7 +12130,7 @@ "type": "other" } ], - "time": "2025-11-21T10:44:03+00:00" + "time": "2026-02-20T20:42:26+00:00" }, { "name": "staabm/side-effects-detector", @@ -12258,28 +12336,27 @@ }, { "name": "symfony/yaml", - "version": "v7.4.0", + "version": "v8.0.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "6c84a4b55aee4cd02034d1c528e83f69ddf63810" + "reference": "7a1a90ba1df6e821a6b53c4cabdc32a56cabfb14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/6c84a4b55aee4cd02034d1c528e83f69ddf63810", - "reference": "6c84a4b55aee4cd02034d1c528e83f69ddf63810", + "url": "https://api.github.com/repos/symfony/yaml/zipball/7a1a90ba1df6e821a6b53c4cabdc32a56cabfb14", + "reference": "7a1a90ba1df6e821a6b53c4cabdc32a56cabfb14", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.4", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<6.4" + "symfony/console": "<7.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0|^8.0" + "symfony/console": "^7.4|^8.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -12310,7 +12387,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.0" + "source": "https://github.com/symfony/yaml/tree/v8.0.1" }, "funding": [ { @@ -12330,28 +12407,28 @@ "type": "tidelift" } ], - "time": "2025-11-16T10:14:42+00:00" + "time": "2025-12-04T18:17:06+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", - "version": "0.8.5", + "version": "0.8.7", "source": { "type": "git", "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", - "reference": "cf6fb197b676ba716837c886baca842e4db29005" + "reference": "1248f3f506ca9641d4f68cebcd538fa489754db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/cf6fb197b676ba716837c886baca842e4db29005", - "reference": "cf6fb197b676ba716837c886baca842e4db29005", + "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/1248f3f506ca9641d4f68cebcd538fa489754db8", + "reference": "1248f3f506ca9641d4f68cebcd538fa489754db8", "shasum": "" }, "require": { "nikic/php-parser": "^4.18.0 || ^5.0.0", "php": "^8.1.0", - "phpdocumentor/reflection-docblock": "^5.3.0", - "phpunit/phpunit": "^10.5.5 || ^11.0.0 || ^12.0.0", - "symfony/finder": "^6.4.0 || ^7.0.0" + "phpdocumentor/reflection-docblock": "^5.3.0 || ^6.0.0", + "phpunit/phpunit": "^10.5.5 || ^11.0.0 || ^12.0.0 || ^13.0.0", + "symfony/finder": "^6.4.0 || ^7.0.0 || ^8.0.0" }, "require-dev": { "laravel/pint": "^1.13.7", @@ -12387,9 +12464,9 @@ ], "support": { "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", - "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.5" + "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.7" }, - "time": "2025-04-20T20:23:40+00:00" + "time": "2026-02-17T17:25:14+00:00" }, { "name": "theseer/tokenizer", @@ -12443,16 +12520,16 @@ }, { "name": "tomasvotruba/type-coverage", - "version": "2.0.2", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/TomasVotruba/type-coverage.git", - "reference": "d033429580f2c18bda538fa44f2939236a990e0c" + "reference": "468354b3964120806a69890cbeb3fcf005876391" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/d033429580f2c18bda538fa44f2939236a990e0c", - "reference": "d033429580f2c18bda538fa44f2939236a990e0c", + "url": "https://api.github.com/repos/TomasVotruba/type-coverage/zipball/468354b3964120806a69890cbeb3fcf005876391", + "reference": "468354b3964120806a69890cbeb3fcf005876391", "shasum": "" }, "require": { @@ -12484,7 +12561,7 @@ ], "support": { "issues": "https://github.com/TomasVotruba/type-coverage/issues", - "source": "https://github.com/TomasVotruba/type-coverage/tree/2.0.2" + "source": "https://github.com/TomasVotruba/type-coverage/tree/2.1.0" }, "funding": [ { @@ -12496,27 +12573,27 @@ "type": "github" } ], - "time": "2025-01-07T00:10:26+00:00" + "time": "2025-12-05T16:38:02+00:00" }, { "name": "webmozart/assert", - "version": "1.12.1", + "version": "2.1.5", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" + "reference": "79155f94852fa27e2f73b459f6503f5e87e2c188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", - "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/79155f94852fa27e2f73b459f6503f5e87e2c188", + "reference": "79155f94852fa27e2f73b459f6503f5e87e2c188", "shasum": "" }, "require": { "ext-ctype": "*", "ext-date": "*", "ext-filter": "*", - "php": "^7.2 || ^8.0" + "php": "^8.2" }, "suggest": { "ext-intl": "", @@ -12526,7 +12603,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10-dev" + "dev-feature/2-0": "2.0-dev" } }, "autoload": { @@ -12542,6 +12619,10 @@ { "name": "Bernhard Schussek", "email": "bschussek@gmail.com" + }, + { + "name": "Woody Gilk", + "email": "woody.gilk@gmail.com" } ], "description": "Assertions to validate method input/output with nice error messages.", @@ -12552,22 +12633,22 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.12.1" + "source": "https://github.com/webmozarts/assert/tree/2.1.5" }, - "time": "2025-10-29T15:56:20+00:00" + "time": "2026-02-18T14:09:36+00:00" }, { "name": "zbateson/mail-mime-parser", - "version": "3.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "f0ccec9290a5b9cf014d7b7ea3401d2a4a626e9a" + "reference": "ff054c8e05310c445c2028c6128a4319cc9f6aa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/f0ccec9290a5b9cf014d7b7ea3401d2a4a626e9a", - "reference": "f0ccec9290a5b9cf014d7b7ea3401d2a4a626e9a", + "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/ff054c8e05310c445c2028c6128a4319cc9f6aa8", + "reference": "ff054c8e05310c445c2028c6128a4319cc9f6aa8", "shasum": "" }, "require": { @@ -12630,7 +12711,7 @@ "type": "github" } ], - "time": "2025-09-03T17:18:36+00:00" + "time": "2025-12-02T00:29:16+00:00" }, { "name": "zbateson/mb-wrapper", @@ -12774,5 +12855,5 @@ "php": "^8.4" }, "platform-dev": {}, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.9.0" } diff --git a/config/services.php b/config/services.php index bf14da3..15993cd 100644 --- a/config/services.php +++ b/config/services.php @@ -38,4 +38,8 @@ 'tenant' => env('MICROSOFT_TENANT_ID'), 'include_tenant_info' => true, ], + + 'github' => [ + 'token' => env('GITHUB_TOKEN'), + ], ]; diff --git a/config/site.php b/config/site.php new file mode 100644 index 0000000..4eeaaf0 --- /dev/null +++ b/config/site.php @@ -0,0 +1,11 @@ + 'codebar Solutions AG', + 'primary_color' => '#500472', + 'key' => '_codebar', + 'links' => [ + 'linkedin' => 'https://www.linkedin.com/company/codebarag', + 'github' => 'https://github.com/orgs/codebar-ag', + ], +]; diff --git a/database/factories/OpenSourceFactory.php b/database/factories/GithubRepositoryFactory.php similarity index 62% rename from database/factories/OpenSourceFactory.php rename to database/factories/GithubRepositoryFactory.php index d213c76..b6c5e7c 100644 --- a/database/factories/OpenSourceFactory.php +++ b/database/factories/GithubRepositoryFactory.php @@ -5,15 +5,10 @@ use Illuminate\Database\Eloquent\Factories\Factory; /** - * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\OpenSource> + * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\GithubRepository> */ -class OpenSourceFactory extends Factory +class GithubRepositoryFactory extends Factory { - /** - * Define the model's default state. - * - * @return array - */ public function definition(): array { return [ diff --git a/database/migrations/2026_02_20_220110_add_github_columns_to_open_sources_table.php b/database/migrations/2026_02_20_220110_add_github_columns_to_open_sources_table.php new file mode 100644 index 0000000..946a723 --- /dev/null +++ b/database/migrations/2026_02_20_220110_add_github_columns_to_open_sources_table.php @@ -0,0 +1,28 @@ +string('github_name')->nullable()->after('version'); + $table->integer('stars')->default(0)->after('github_name'); + $table->integer('forks')->default(0)->after('stars'); + $table->string('primary_language')->nullable()->after('forks'); + }); + } + + public function down(): void + { + Schema::table('open_sources', function (Blueprint $table) { + $table->dropColumn(['github_name', 'stars', 'forks', 'primary_language']); + }); + } +}; diff --git a/database/migrations/2026_02_20_221532_rename_open_sources_to_github_repositories_table.php b/database/migrations/2026_02_20_221532_rename_open_sources_to_github_repositories_table.php new file mode 100644 index 0000000..84b4738 --- /dev/null +++ b/database/migrations/2026_02_20_221532_rename_open_sources_to_github_repositories_table.php @@ -0,0 +1,34 @@ +where('source_type', 'App\\Models\\OpenSource') + ->update(['source_type' => 'App\\Models\\GithubRepository']); + + DB::table('references') + ->where('reference_type', 'App\\Models\\OpenSource') + ->update(['reference_type' => 'App\\Models\\GithubRepository']); + } + + public function down(): void + { + Schema::rename('github_repositories', 'open_sources'); + + DB::table('references') + ->where('source_type', 'App\\Models\\GithubRepository') + ->update(['source_type' => 'App\\Models\\OpenSource']); + + DB::table('references') + ->where('reference_type', 'App\\Models\\GithubRepository') + ->update(['reference_type' => 'App\\Models\\OpenSource']); + } +}; diff --git a/database/seeders/Codebar/ContactsTableSeeder.php b/database/seeders/Codebar/ContactsTableSeeder.php index 15f8cd7..25b9da8 100644 --- a/database/seeders/Codebar/ContactsTableSeeder.php +++ b/database/seeders/Codebar/ContactsTableSeeder.php @@ -111,28 +111,6 @@ public function run(): void ] ); - Contact::updateOrCreate( - ['id' => 5], - [ - 'name' => 'Faissal Wahabali', - 'published' => true, - 'sections' => [ - ContactSectionEnum::SOFTWARE_ENGINERING => [ - 'key' => ContactSectionEnum::SOFTWARE_ENGINERING, - 'role' => [ - 'de_CH' => 'Applikationsentwickler', - 'en_CH' => 'Application Developer', - ], - ], - ], - 'icons' => [ - 'email' => 'faissal.wahabali@codebar.ch', - 'linkedin' => 'https://www.linkedin.com/in/faissaloux/', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/faissal_wahabali.webp', - ] - ); - Contact::updateOrCreate( ['id' => 6], [ @@ -240,27 +218,5 @@ public function run(): void ] ); - Contact::updateOrCreate( - ['id' => 11], - [ - 'name' => 'Dominique Ernst', - 'published' => true, - 'sections' => [ - ContactSectionEnum::DIGITAL_TRANSFORMATION => [ - 'key' => ContactSectionEnum::DIGITAL_TRANSFORMATION, - 'role' => [ - 'de_CH' => 'DMS/ECM Berater', - 'en_CH' => 'DMS/ECM Consultant', - ], - ], - ], - 'icons' => [ - 'email' => 'dominique.ernst@codebar.ch', - 'linkedin' => 'https://www.linkedin.com/in/dominique-ernst', - ], - 'image' => 'https://res.cloudinary.com/codebar/image/upload/w_400,h_400,f_auto,q_auto/www-paperflakes-ch/people/ujywqubl5rkkm5hjqjsa_e_background_removal_f_png.webp', - ] - ); - } } diff --git a/database/seeders/Codebar/OpenSourceTableSeeder.php b/database/seeders/Codebar/GithubRepositoriesTableSeeder.php similarity index 98% rename from database/seeders/Codebar/OpenSourceTableSeeder.php rename to database/seeders/Codebar/GithubRepositoriesTableSeeder.php index 145f8e1..cdf536a 100644 --- a/database/seeders/Codebar/OpenSourceTableSeeder.php +++ b/database/seeders/Codebar/GithubRepositoriesTableSeeder.php @@ -2,12 +2,12 @@ namespace Database\Seeders\Codebar; -use App\Models\OpenSource; +use App\Models\GithubRepository; use Illuminate\Database\Seeder; use Illuminate\Support\Arr; use Illuminate\Support\Str; -class OpenSourceTableSeeder extends Seeder +class GithubRepositoriesTableSeeder extends Seeder { /** * Run the database seeds. @@ -379,7 +379,7 @@ private function seed( $entries = collect($localizedData)->map(function ($data, $locale) use ($slug, $link, $downloads, $version) { - return OpenSource::updateOrCreate( + return GithubRepository::updateOrCreate( [ 'locale' => $locale, 'slug' => $slug, @@ -398,8 +398,8 @@ private function seed( ); }); - $entries->each(function (OpenSource $entry) use ($entries) { - $entries->each(function (OpenSource $reference) use ($entry) { + $entries->each(function (GithubRepository $entry) use ($entries) { + $entries->each(function (GithubRepository $reference) use ($entry) { $entry->references()->updateOrCreate([ 'reference_type' => get_class($reference), 'reference_id' => $reference->id, diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 0acb280..b6dff29 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -7,8 +7,8 @@ use App\Models\User; use Database\Seeders\Codebar\ConfigurationsTableSeeder; use Database\Seeders\Codebar\ContactsTableSeeder; +use Database\Seeders\Codebar\GithubRepositoriesTableSeeder; use Database\Seeders\Codebar\NewsTableSeeder; -use Database\Seeders\Codebar\OpenSourceTableSeeder; use Database\Seeders\Codebar\PagesTableSeeder; use Database\Seeders\Codebar\ProductsTableSeeder; use Database\Seeders\Codebar\RolesAndPermissionsSeeder; @@ -46,7 +46,7 @@ public function run(): void $this->call(ProductsTableSeeder::class); $this->call(ServicesTableSeeder::class); $this->call(ContactsTableSeeder::class); - $this->call(OpenSourceTableSeeder::class); + $this->call(GithubRepositoriesTableSeeder::class); $this->call(TechnologiesTableSeeder::class); if (app()->isLocal()) { diff --git a/database/seeders/Paperflakes/PagesTableSeeder.php b/database/seeders/Paperflakes/PagesTableSeeder.php deleted file mode 100644 index fb4d5f3..0000000 --- a/database/seeders/Paperflakes/PagesTableSeeder.php +++ /dev/null @@ -1,212 +0,0 @@ -deCH(); - $this->enCH(); - } - - private function enCH() - { - $locale = LocaleEnum::EN->value; - - Page::updateOrCreate( - [ - 'key' => 'start.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Your Digital Partner', - 'description' => 'We support you with smart digital solutions that move your business forward.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'news.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'News & Insights', - 'description' => 'Stay up to date with the latest news, expert insights and trends on DMS, ECM and digital transformation from paperflakes.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'about-us.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'About Us – paperflakes AG', - 'description' => 'Get to know paperflakes AG – your Swiss partner for digital transformation and innovative software solutions.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'services.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Services that Support You', - 'description' => 'From strategy to implementation - we\'re here to support you all the way.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'products.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Tools That Empower You', - 'description' => 'Our products are built to help you work smarter, faster and better.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'legal.imprint.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Legal Notice', - 'description' => 'All legal details about paperflakes AG.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'contact.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Let\'s Talk', - 'description' => 'Have a question? We\'re here to support you - just reach out.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - } - - private function deCH() - { - $locale = LocaleEnum::DE->value; - - Page::updateOrCreate( - [ - 'key' => 'start.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Dein digitaler Partner', - 'description' => 'Wir unterstützen dich mit cleveren Lösungen für deinen digitalen Erfolg.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'news.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Neuigkeiten & Insights', - 'description' => 'Aktuelle News, Fachbeiträge und Trends rund um DMS, ECM und digitale Transformation mit paperflakes.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'about-us.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Über uns – paperflakes AG', - 'description' => 'Lerne die paperflakes AG kennen – dein Schweizer Partner für digitale Transformation und innovative Softwarelösungen.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'services.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Dienstleistungen für dich', - 'description' => 'Von der Strategie bis zur Umsetzung - wir stehen dir zur Seite.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'products.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Tools, die dich stärken', - 'description' => 'Unsere Produkte helfen dir, effizienter, schneller und einfacher zu arbeiten.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'legal.imprint.index', - 'locale' => $locale, - ], - [ - 'robots' => 'index,follow', - 'title' => 'Rechtliches', - 'description' => 'Alle rechtlichen Informationen zur paperflakes AG.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - - Page::updateOrCreate( - [ - 'key' => 'contact.index', - 'locale' => $locale, - ], - [ - - 'robots' => 'index,follow', - 'title' => 'Lass uns sprechen', - 'description' => 'Fragen? Wir sind fürr dich da - melde dich jederzeit bei uns.', - 'image' => 'https://res.cloudinary.com/codebar/image/upload/c_scale,dpr_2.0,f_auto,q_auto,w_1200/www-paperflakes-ch/seo/seo_paperflakes.webp', - ] - ); - } -} diff --git a/lang/de_CH.json b/lang/de_CH.json index e9a6486..ce7faa2 100644 --- a/lang/de_CH.json +++ b/lang/de_CH.json @@ -17,6 +17,7 @@ "Employees": "Mitarbeitende", "EN": "EN", "English": "English", + "Explore": "Mehr", "Google Maps": "Google Maps", "Headquarter": "Hauptsitz", "Home": "Start", @@ -41,6 +42,9 @@ "Sunday": "Sonntag", "Opening hours": "Öffnungszeiten", "Closed": "Geschlossen", + "Currently open": "Derzeit geöffnet", + "Currently closed": "Derzeit geschlossen", + ":open to :close": ":open bis :close Uhr", "08:00 bis 18:00 Uhr": "08:00 bis 18:00 Uhr", "Open Source": "Open Source", "Partnerships": "Partnerschaften", @@ -51,6 +55,7 @@ "Published at": "Veröffentlicht am", "Published at: :date": "Veröffentlicht am: :date", "Services": "Dienstleistungen", + "Solutions": "Lösungen", "Terms": "AGB", "Technologies": "Technologien", "Update to english language": "Auf Englisch wechseln", diff --git a/lang/en_CH.json b/lang/en_CH.json index 7479da3..fd4dee6 100644 --- a/lang/en_CH.json +++ b/lang/en_CH.json @@ -16,8 +16,10 @@ "Email": "Email", "EN": "EN", "English": "English", + "Explore": "Explore", "Google Maps": "Google Maps", "Headquarter": "Headquarter", + "Home": "Home", "Imprint": "Imprint", "Info(at)paperflakes.ch": "Info(at)paperflakes.ch", "Jobs": "Jobs", @@ -39,6 +41,9 @@ "Sunday": "Sunday", "Opening hours": "Opening hours", "Closed": "Closed", + "Currently open": "Currently open", + "Currently closed": "Currently closed", + ":open to :close": ":open to :close", "08:00 bis 18:00 Uhr": "08:00 to 18:00", "Open Source": "Open Source", "Partnerships": "Partnerships", @@ -49,6 +54,7 @@ "Published at": "Published at", "Published at: :date": "Published at: :date", "Services": "Services", + "Solutions": "Solutions", "Terms": "Terms", "Technologies": "Technologies", "Update to english language": "Update to english language", diff --git a/public/.well-known/matrix/client b/public/.well-known/matrix/client new file mode 100644 index 0000000..612770a --- /dev/null +++ b/public/.well-known/matrix/client @@ -0,0 +1,5 @@ +{ + "m.homeserver": { + "base_url": "https://connect.codebar.ch" + } +} diff --git a/public/.well-known/matrix/server b/public/.well-known/matrix/server new file mode 100644 index 0000000..d1d6d42 --- /dev/null +++ b/public/.well-known/matrix/server @@ -0,0 +1,3 @@ +{ + "m.server": "connect.codebar.ch:443" +} diff --git a/resources/js/app.js b/resources/js/app.js index 5cbb46f..5e5faa2 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -15,4 +15,34 @@ Alpine.data('navigation', () => ({ }, })) +Alpine.data('repositorySearch', (items) => ({ + search: new URLSearchParams(window.location.search).get('search') || '', + items: items, + + get filteredItems() { + if (!this.search) return this.items + const term = this.search.toLowerCase() + return this.items.filter(item => + item.title.toLowerCase().includes(term) || + item.teaser.toLowerCase().includes(term) || + (item.language || '').toLowerCase().includes(term) || + item.tags.some(tag => tag.toLowerCase().includes(term)) + ) + }, + + get hasResults() { + return this.filteredItems.length > 0 + }, + + updateUrl() { + const url = new URL(window.location) + if (this.search) { + url.searchParams.set('search', this.search) + } else { + url.searchParams.delete('search') + } + history.replaceState({}, '', url) + }, +})) + Alpine.start() diff --git a/resources/views/app/ai/index.blade.php b/resources/views/app/ai/index.blade.php new file mode 100644 index 0000000..3ec3e6a --- /dev/null +++ b/resources/views/app/ai/index.blade.php @@ -0,0 +1,15 @@ + + + + + + @foreach($services as $service) + + @endforeach + + + diff --git a/resources/views/app/ai/show.blade.php b/resources/views/app/ai/show.blade.php new file mode 100644 index 0000000..aa55ea4 --- /dev/null +++ b/resources/views/app/ai/show.blade.php @@ -0,0 +1,26 @@ + + + + + + +
    + @foreach($service['features'] as $feature) +
  • {{ $feature }}
  • + @endforeach +
+
+ + @if($service['audience']) + +

{{ $service['audience'] }}

+
+ @endif + + @if($service['closing']) + +

{{ $service['closing'] }}

+
+ @endif + +
diff --git a/resources/views/app/contact/index.blade.php b/resources/views/app/contact/index.blade.php index bea48de..6ea34ef 100644 --- a/resources/views/app/contact/index.blade.php +++ b/resources/views/app/contact/index.blade.php @@ -51,36 +51,6 @@ classAttributes="block" /> - -
-
- {{ __('Monday') }} - {{ __('08:00 bis 18:00 Uhr') }} -
-
- {{ __('Tuesday') }} - {{ __('08:00 bis 18:00 Uhr') }} -
-
- {{ __('Wednesday') }} - {{ __('08:00 bis 18:00 Uhr') }} -
-
- {{ __('Thursday') }} - {{ __('08:00 bis 18:00 Uhr') }} -
-
- {{ __('Friday') }} - {{ __('08:00 bis 18:00 Uhr') }} -
-
- {{ __('Saturday') }} - {{ __('08:00 bis 18:00 Uhr') }} -
-
- {{ __('Sunday') }} - {{ __('Closed') }} -
-
+
diff --git a/resources/views/app/legal/imprint/_partials/_codebar.blade.php b/resources/views/app/legal/imprint/_partials/_codebar.blade.php index 8621448..d704ddd 100644 --- a/resources/views/app/legal/imprint/_partials/_codebar.blade.php +++ b/resources/views/app/legal/imprint/_partials/_codebar.blade.php @@ -3,7 +3,7 @@

codebar Solutions AG

-

Mühlematten 12

+

Haupstrasse 91

CH-4455 Zunzgen

CHE-257.955.682

diff --git a/resources/views/app/legal/imprint/index.blade.php b/resources/views/app/legal/imprint/index.blade.php index 896d214..cdfdd29 100644 --- a/resources/views/app/legal/imprint/index.blade.php +++ b/resources/views/app/legal/imprint/index.blade.php @@ -1,6 +1,3 @@ - @if(filled($configuration?->key)) - @include("app.legal.imprint._partials.{$configuration->key}") - @endif + @include("app.legal.imprint._partials." . config('site.key')) - diff --git a/resources/views/app/legal/privacy/index.blade.php b/resources/views/app/legal/privacy/index.blade.php index bc2c3b0..933209c 100644 --- a/resources/views/app/legal/privacy/index.blade.php +++ b/resources/views/app/legal/privacy/index.blade.php @@ -1,5 +1,3 @@ - @if(filled($configuration?->key)) - @include("app.legal.privacy._partials.{$configuration->key}") - @endif - \ No newline at end of file + @include("app.legal.privacy._partials." . config('site.key')) + diff --git a/resources/views/app/legal/terms/index.blade.php b/resources/views/app/legal/terms/index.blade.php index 8a5b8f5..2a9bde2 100644 --- a/resources/views/app/legal/terms/index.blade.php +++ b/resources/views/app/legal/terms/index.blade.php @@ -1,5 +1,3 @@ - @if(filled($configuration?->key)) - @include("app.legal.terms._partials.{$configuration->key}") - @endif - \ No newline at end of file + @include("app.legal.terms._partials." . config('site.key')) + diff --git a/resources/views/app/open-source/index.blade.php b/resources/views/app/open-source/index.blade.php index 255d7c3..7ad74fc 100644 --- a/resources/views/app/open-source/index.blade.php +++ b/resources/views/app/open-source/index.blade.php @@ -1,15 +1,38 @@ + - - @foreach($openSource as $entry) - - @endforeach - +
+
+ +
+ +
+ +
+ + +
+ {{ __('No repositories found.') }} +
+
-
\ No newline at end of file + diff --git a/resources/views/app/open-source/show.blade.php b/resources/views/app/open-source/show.blade.php index ce207d0..ee02560 100644 --- a/resources/views/app/open-source/show.blade.php +++ b/resources/views/app/open-source/show.blade.php @@ -1,10 +1,65 @@ - + @if($teaser) + + @endif - +
+ @if($primaryLanguage) + + + {{ $primaryLanguage }} + + @endif + @if($stars) + + + + + {{ number_format($stars) }} + + @endif + @if($forks) + + + + + {{ number_format($forks) }} + + @endif +
+ + @php + $tagList = collect($tags); + @endphp + + @if($tagList->count()) +
+ @foreach($tagList as $tag) + + @endforeach +
+ @endif
-
\ No newline at end of file + @if($content) + + + + @endif + + @if($githubUrl) + + + + + + {{ __('View on GitHub') }} + + + @endif + + diff --git a/resources/views/app/start/index.blade.php b/resources/views/app/start/index.blade.php index c88feec..2113691 100644 --- a/resources/views/app/start/index.blade.php +++ b/resources/views/app/start/index.blade.php @@ -2,7 +2,6 @@ - @if($configuration?->section_news) @@ -15,7 +14,6 @@ @endforeach - @endif diff --git a/resources/views/components/intro.blade.php b/resources/views/components/intro.blade.php index 1a787cc..b4e11a8 100644 --- a/resources/views/components/intro.blade.php +++ b/resources/views/components/intro.blade.php @@ -1,14 +1,25 @@ -@use(App\Enums\LocaleEnum;use Illuminate\Support\Facades\Config;use Illuminate\Support\Str;use App\Helpers\HelperMarkdown;use Illuminate\Support\Arr) +@use(App\Enums\LocaleEnum;use Illuminate\Support\Str;use App\Helpers\HelperMarkdown) @php $locale = app()->getLocale(); - $color = $configuration?->company_primary_color; + $color = config('site.primary_color'); $team_url = match ($locale) { LocaleEnum::EN->value => route(Str::slug(LocaleEnum::EN->value) . '.about-us.index'), default => route(Str::slug(LocaleEnum::DE->value) . '.about-us.index'), }; - $markdownContent = Arr::get($configuration?->component_intro, $locale); + + $introKey = match (config('site.key')) { + '_codebar' => 'codebar', + '_paperflakes' => 'paperflakes', + default => 'codebar', + }; + $introLocale = match ($locale) { + LocaleEnum::EN->value => 'en', + default => 'de', + }; + $introPath = database_path("files/intro/{$introKey}_intro_{$introLocale}.md"); + $markdownContent = file_exists($introPath) ? file_get_contents($introPath) : ''; $htmlContent = $markdownContent ? app(HelperMarkdown::class)->formatMarkdown($markdownContent) : ''; $htmlContent = preg_replace('/

/', '

', $htmlContent); $htmlContent = preg_replace('/

/', '

', $htmlContent); diff --git a/resources/views/components/nav-language-switcher.blade.php b/resources/views/components/nav-language-switcher.blade.php new file mode 100644 index 0000000..32308c4 --- /dev/null +++ b/resources/views/components/nav-language-switcher.blade.php @@ -0,0 +1,20 @@ +@props(['locales', 'classAttributes' => '']) + +@if(!empty($locales)) +

+ @foreach($locales as $language) +
+ @csrf + + +
+ @if(!$loop->last) + | + @endif + @endforeach +
+@endif diff --git a/resources/views/components/nav-link.blade.php b/resources/views/components/nav-link.blade.php new file mode 100644 index 0000000..1e618cc --- /dev/null +++ b/resources/views/components/nav-link.blade.php @@ -0,0 +1,8 @@ +@props(['href', 'label', 'active' => false, 'target' => '_self']) + + + {{ $label }} + diff --git a/resources/views/components/nav-mobile-link.blade.php b/resources/views/components/nav-mobile-link.blade.php new file mode 100644 index 0000000..14a4d62 --- /dev/null +++ b/resources/views/components/nav-mobile-link.blade.php @@ -0,0 +1,9 @@ +@props(['href', 'label', 'active' => false, 'target' => '_self']) + + + {{ $label }} + diff --git a/resources/views/components/opening-hours.blade.php b/resources/views/components/opening-hours.blade.php new file mode 100644 index 0000000..eb37402 --- /dev/null +++ b/resources/views/components/opening-hours.blade.php @@ -0,0 +1,72 @@ +@props(['hours']) + +@php + $now = \Carbon\Carbon::now(); + $todayIso = $now->dayOfWeekIso; + $currentTime = $now->format('H:i'); + + $groups = []; + $i = 0; + $count = count($hours); + while ($i < $count) { + $start = $i; + while ($i + 1 < $count && $hours[$i + 1]['open'] === $hours[$start]['open'] && $hours[$i + 1]['close'] === $hours[$start]['close']) { + $i++; + } + $groups[] = [ + 'startDay' => $hours[$start]['day'], + 'endDay' => $hours[$i]['day'], + 'startIdx' => $start, + 'endIdx' => $i, + 'open' => $hours[$start]['open'], + 'close' => $hours[$start]['close'], + ]; + $i++; + } + + $todayEntry = $hours[$todayIso - 1] ?? null; + $isOpen = false; + if ($todayEntry && $todayEntry['open'] && $todayEntry['close']) { + $isOpen = $currentTime >= $todayEntry['open'] && $currentTime < $todayEntry['close']; + } +@endphp + +
+
+

{{ __('Opening hours') }}

+ @if ($isOpen) + + + {{ __('Currently open') }} + + @else + + + {{ __('Currently closed') }} + + @endif +
+ +
+ @foreach ($groups as $group) + @php + $isToday = $todayIso - 1 >= $group['startIdx'] && $todayIso - 1 <= $group['endIdx']; + $dayLabel = $group['startIdx'] === $group['endIdx'] + ? __($group['startDay']) + : __($group['startDay']) . ' – ' . __($group['endDay']); + @endphp +
!$loop->last, + 'border-l-2 border-l-blue-500 pl-3 bg-blue-50/50 rounded-r' => $isToday, + ])> + {{ $dayLabel }} + @if ($group['open']) + {{ __(':open to :close', ['open' => $group['open'], 'close' => $group['close']]) }} + @else + {{ __('Closed') }} + @endif +
+ @endforeach +
+
diff --git a/resources/views/layouts/_partials/_favicons.blade.php b/resources/views/layouts/_partials/_favicons.blade.php index a66588e..50aed8c 100644 --- a/resources/views/layouts/_partials/_favicons.blade.php +++ b/resources/views/layouts/_partials/_favicons.blade.php @@ -1,10 +1,10 @@ @props(['manifest' => asset('manifest.json'), 'path' => asset('favicons'), 'color' => '#ffffff']) @php - $prefix = match($configuration?->key) { + $prefix = match(config('site.key')) { '_paperflakes' => 'paperflakes', '_codebar' => 'codebar', - default => $configuration?->key + default => config('site.key'), }; @endphp diff --git a/resources/views/layouts/_partials/_footer.blade.php b/resources/views/layouts/_partials/_footer.blade.php index 8e12df8..3386706 100644 --- a/resources/views/layouts/_partials/_footer.blade.php +++ b/resources/views/layouts/_partials/_footer.blade.php @@ -2,54 +2,23 @@
- @if(filled($configuration?->company)) -
- © {{ date('Y') }} {{ $configuration?->company }} -
- @endif +
+ © {{ date('Y') }} {{ config('site.company') }} +
diff --git a/resources/views/layouts/_partials/_navigation.blade.php b/resources/views/layouts/_partials/_navigation.blade.php index e1ab3c8..bcd3950 100644 --- a/resources/views/layouts/_partials/_navigation.blade.php +++ b/resources/views/layouts/_partials/_navigation.blade.php @@ -1,36 +1,18 @@

- @endif -
diff --git a/routes/web.php b/routes/web.php index 849f68b..39a1628 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,6 +2,8 @@ use App\Enums\LocaleEnum; use App\Http\Controllers\AboutUs\AboutUsIndexController; +use App\Http\Controllers\Ai\AiIndexController; +use App\Http\Controllers\Ai\AiShowController; use App\Http\Controllers\Contact\ContactIndexController; use App\Http\Controllers\Entry\EntryIndexController; use App\Http\Controllers\Jobs\JobsIndexController; @@ -12,8 +14,8 @@ use App\Http\Controllers\Media\MediaIndexController; use App\Http\Controllers\News\NewsIndexController; use App\Http\Controllers\News\NewsShowController; -use App\Http\Controllers\OpenSource\OpenSoruceShowController; use App\Http\Controllers\OpenSource\OpenSourceIndexController; +use App\Http\Controllers\OpenSource\OpenSourceShowController; use App\Http\Controllers\Products\ProductsIndexController; use App\Http\Controllers\Products\ProductsShowController; use App\Http\Controllers\Services\ServicesIndexController; @@ -45,7 +47,10 @@ Route::get('technologies/{locale}/{technology}', TechnologiesShowController::class)->name('technologies.show'); Route::get('open-source-contributions', OpenSourceIndexController::class)->name('open-source.index'); - Route::get('open-source-contributions/{locale}/{openSource}', OpenSoruceShowController::class)->name('open-source.show'); + Route::get('open-source-contributions/{locale}/{githubRepository}', OpenSourceShowController::class)->name('open-source.show'); + + Route::get('ai', AiIndexController::class)->name('ai.index'); + Route::get('ai/{slug}', AiShowController::class)->name('ai.show'); Route::get('legal/privacy', PrivacyIndexController::class)->name('legal.privacy.index'); Route::get('legal/imprint', ImprintIndexController::class)->name('legal.imprint.index'); @@ -73,7 +78,10 @@ Route::get('technologien/{locale}/{technology}', TechnologiesShowController::class)->name('technologies.show'); Route::get('open-source-beitraege', OpenSourceIndexController::class)->name('open-source.index'); - Route::get('open-source-beitraege/{locale}/{openSource}', OpenSoruceShowController::class)->name('open-source.show'); + Route::get('open-source-beitraege/{locale}/{githubRepository}', OpenSourceShowController::class)->name('open-source.show'); + + Route::get('ki', AiIndexController::class)->name('ai.index'); + Route::get('ki/{slug}', AiShowController::class)->name('ai.show'); Route::get('rechtlichtes/datenschutz', PrivacyIndexController::class)->name('legal.privacy.index'); Route::get('rechtlichtes/impressum', ImprintIndexController::class)->name('legal.imprint.index'); diff --git a/tests/Feature/Controllers/RouteStatusTest.php b/tests/Feature/Controllers/RouteStatusTest.php index f5bc2b6..712ab29 100644 --- a/tests/Feature/Controllers/RouteStatusTest.php +++ b/tests/Feature/Controllers/RouteStatusTest.php @@ -17,7 +17,13 @@ [LocaleEnum::EN->value, 'products.index'], // [LocaleEnum::EN->value, 'products.show', ['product' => 1]], [LocaleEnum::EN->value, 'legal.imprint.index'], + [LocaleEnum::EN->value, 'legal.privacy.index'], + [LocaleEnum::EN->value, 'legal.terms.index'], [LocaleEnum::EN->value, 'contact.index'], + [LocaleEnum::EN->value, 'ai.index'], + [LocaleEnum::EN->value, 'ai.show', ['slug' => 'gki-strategy']], + [LocaleEnum::EN->value, 'ai.show', ['slug' => 'gki-sprint']], + [LocaleEnum::EN->value, 'ai.show', ['slug' => 'gki-build']], // DE-CH [LocaleEnum::DE->value, 'start.index'], @@ -28,7 +34,13 @@ [LocaleEnum::DE->value, 'products.index'], // [LocaleEnum::DE->value, 'products.show', ['product' => 1]], [LocaleEnum::DE->value, 'legal.imprint.index'], + [LocaleEnum::DE->value, 'legal.privacy.index'], + [LocaleEnum::DE->value, 'legal.terms.index'], [LocaleEnum::DE->value, 'contact.index'], + [LocaleEnum::DE->value, 'ai.index'], + [LocaleEnum::DE->value, 'ai.show', ['slug' => 'gki-strategy']], + [LocaleEnum::DE->value, 'ai.show', ['slug' => 'gki-sprint']], + [LocaleEnum::DE->value, 'ai.show', ['slug' => 'gki-build']], ]; }); diff --git a/tests/Pest.php b/tests/Pest.php index a19c738..43ee68d 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -1,6 +1,6 @@