From 8318e83d0ba6855aed23b71192ae73ab03d92f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Fri, 22 Dec 2023 11:23:25 +0100 Subject: [PATCH 1/5] Update secure header with vite config form base project --- app/Http/Middleware/SecureHeaders.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Http/Middleware/SecureHeaders.php b/app/Http/Middleware/SecureHeaders.php index cc17112..48b78a4 100644 --- a/app/Http/Middleware/SecureHeaders.php +++ b/app/Http/Middleware/SecureHeaders.php @@ -59,7 +59,10 @@ class SecureHeaders config('app.debug') ? "https://{$host}:4443" : '', 'https://yl.s-web.fr', ]) . ';', - "img-src * https://yl.s-web.fr data: blob:;", + "img-src 'self' data: blob: " . implode(' ', [ + // * VITE DEV + config('app.debug') ? "https://{$host}:4443" : '' + ]) . ';', 'frame-src ' . implode(' ', [ 'https://www.google.com/recaptcha/', 'https://recaptcha.google.com/recaptcha/', From a952ea6ac62e6a45baaa5caec43b6677e267c4ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Fri, 22 Dec 2023 11:44:57 +0100 Subject: [PATCH 2/5] Fixes #48 Add style to ck-content + fix all front WYSIWYG taht where missing ck-content --- resources/sass/fo/fo.scss | 2 +- resources/sass/fo/vendor/_ckEditorContent.scss | 14 ++++++++++++++ resources/views/fo/pages/home.blade.php | 8 ++++++-- resources/views/fo/pages/news/show.blade.php | 4 +++- .../views/fo/pages/products/show.blade.php | 18 +++++++++++++++--- resources/views/fo/pages/ranges/show.blade.php | 4 +++- 6 files changed, 42 insertions(+), 8 deletions(-) diff --git a/resources/sass/fo/fo.scss b/resources/sass/fo/fo.scss index 05df477..327f7b8 100644 --- a/resources/sass/fo/fo.scss +++ b/resources/sass/fo/fo.scss @@ -4,8 +4,8 @@ @import './utilities/variables'; // * VENDOR -@import './vendor/ckEditorContent'; @import './vendor/bootstrap'; +@import './vendor/ckEditorContent'; @import "./vendor/cookie-notice"; @import "./vendor/swiper"; diff --git a/resources/sass/fo/vendor/_ckEditorContent.scss b/resources/sass/fo/vendor/_ckEditorContent.scss index 1b9bc53..747f52e 100644 --- a/resources/sass/fo/vendor/_ckEditorContent.scss +++ b/resources/sass/fo/vendor/_ckEditorContent.scss @@ -13,6 +13,20 @@ @import "bootstrap/scss/mixins"; @import "bootstrap/scss/root"; @import "bootstrap/scss/reboot"; + + + // * CK CONTENT overload pour créa + h2 { + width: fit-content; + padding: 0.2rem 1.5rem; + margin-top: 0.5rem; + color: $body-bg; + font-family: 'Readex Pro', sans-serif !important; + hyphens: auto; + overflow-wrap: break-word; + + @include input-shape($body-color); + } } /* diff --git a/resources/views/fo/pages/home.blade.php b/resources/views/fo/pages/home.blade.php index bfc474e..e28bf85 100644 --- a/resources/views/fo/pages/home.blade.php +++ b/resources/views/fo/pages/home.blade.php @@ -36,7 +36,9 @@ {{ __('au fil de l\'année') }} {{ $seasonalSectionsModel->title }} - {!! clean($seasonalSectionsModel->text) !!} +
+ {!! clean($seasonalSectionsModel->text) !!} +
@@ -61,7 +63,9 @@
- {!! clean($homepageModel->presentation_content) !!} +
+ {!! clean($homepageModel->presentation_content) !!} +
{{ __('> En savoir +') }}
diff --git a/resources/views/fo/pages/news/show.blade.php b/resources/views/fo/pages/news/show.blade.php index 08a44a2..99b2e9a 100644 --- a/resources/views/fo/pages/news/show.blade.php +++ b/resources/views/fo/pages/news/show.blade.php @@ -34,7 +34,9 @@

{{ $newsModel->subtitle }}


- {!! clean($newsModel->content) !!} +
+ {!! clean($newsModel->content) !!} +
diff --git a/resources/views/fo/pages/products/show.blade.php b/resources/views/fo/pages/products/show.blade.php index 59d7934..7cfe1cf 100644 --- a/resources/views/fo/pages/products/show.blade.php +++ b/resources/views/fo/pages/products/show.blade.php @@ -57,7 +57,11 @@
{{-- DESCRIPTION --}} -
{!! clean($productModel->description) !!}
+
+
+ {!! clean($productModel->description) !!} +
+
{{-- PICTOS --}} @if (!empty($productModel->commitments)) @@ -89,14 +93,22 @@
{{ $productModel->cooking_mode->alt() }} -
{!! clean($productModel->cooking_advice) !!}
+
+
+ {!! clean($productModel->cooking_advice) !!} +
+
{{-- INGREDIENTS --}}

{{ __('Ingrédients') }}

-
{!! clean($productModel->ingredients) !!}
+
+
+ {!! clean($productModel->ingredients) !!} +
+
diff --git a/resources/views/fo/pages/ranges/show.blade.php b/resources/views/fo/pages/ranges/show.blade.php index 51eae47..cc39a31 100644 --- a/resources/views/fo/pages/ranges/show.blade.php +++ b/resources/views/fo/pages/ranges/show.blade.php @@ -23,7 +23,9 @@

{{ Str::of($rangeModel->tagline)->ucFirst() }}

- {!! clean($rangeModel->description) !!} +
+ {!! clean($rangeModel->description) !!} +
From d162f87f3ec6470f75d3e86b6e6a4c75af77d412 Mon Sep 17 00:00:00 2001 From: Noah Lancien Date: Mon, 22 Jan 2024 09:55:27 +0000 Subject: [PATCH 3/5] Some wording in the contact form --- app/Http/Requests/Fo/ContactRequest.php | 6 +- resources/lang/en/validation.php | 129 +++++++++++---------- resources/lang/fr/validation.php | 129 +++++++++++---------- resources/views/fo/pages/contact.blade.php | 18 +-- 4 files changed, 143 insertions(+), 139 deletions(-) diff --git a/app/Http/Requests/Fo/ContactRequest.php b/app/Http/Requests/Fo/ContactRequest.php index ff5aa32..32b9375 100644 --- a/app/Http/Requests/Fo/ContactRequest.php +++ b/app/Http/Requests/Fo/ContactRequest.php @@ -45,9 +45,9 @@ class ContactRequest extends FormRequest 'society' => 'sometimes|nullable|string|between:3,255', 'email' => 'required|email:rfc,strict,dns,spoof,filter|max:255', 'phone' => 'sometimes|nullable|numeric|min:0', - 'address' => 'sometimes|nullable|string|between:3,255', - 'postal_code' => 'sometimes|nullable|numeric|min:0', - 'city' => 'sometimes|nullable|string|between:3,255', + 'address' => 'required|string|between:3,255', + 'postal_code' => 'required|numeric|min:0', + 'city' => 'required|string|between:3,255', 'object' => ['required', new Enum(ObjectEnum::class)], 'message' => 'required|string|between:3,500', 'accept_rules' => 'required|boolean', diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index dfe075d..1f45819 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -221,69 +221,70 @@ return [ 'female' => 'of the ', 'vowel' => 'of the ' ], - 'accept_rules' => 'acceptation of rules', - 'activated' => 'activated', - 'attribute_alt' => 'alt attribute', - 'attribute_title' => 'title attribute', - 'background' => 'background', - 'category' => 'category', - 'category' => 'category', - 'civility' => 'civility', - 'cooking_advice' => 'cooking advice', - 'description' => 'description', - 'direction' => 'direction', - 'event' => 'event', - 'file' => 'file', - 'ingredients' => 'ingredients', - 'job' => 'job', - 'key_earth_1' => 'key number for "respect the earth" 1', - 'key_earth_2' => 'key number for "respect the earth" 2', - 'key_feed' => 'key number for "feed well"', - 'key_territory' => 'key number for "integrate its territory"', - 'key_together_1' => 'key number for "live together" 1', - 'key_together_2' => 'key number for "live together" 2', - 'key_together_3' => 'key number for "live together" 3', - 'key_together_4' => 'key number for "live together" 4', - 'model' => 'target element', - 'nutritionnal_values' => 'nutritionnal values', - 'object' => 'object', - 'order' => 'order', - 'picture_1' => 'picture one', - 'picture_2' => 'picture two', - 'picture_3' => 'picture three', - 'picture_alt' => 'attribut alt of the :field', - 'picture_ambiance' => 'ambiance picture', - 'picture_packshot' => 'packshot picture', - 'picture_productsheet' => 'productsheet picture', - 'picture_thumbnail' => 'thumbnail', - 'picture_title' => 'attribut title of the :field', - 'picture' => 'picture', - 'presentation_content' => 'presentation content', - 'presentation_title' => 'presentation title', - 'product_barcode' => 'product barcode', - 'product_date_consumption' => 'product date consumption', - 'product_date_limit' => 'product date limit', - 'product_location' => 'product location', - 'product_lot' => 'product lot', - 'product_name' => 'product name', - 'publication' => 'publication', - 'publish_at' => 'publication date', - 'publish_at' => 'publication date', - 'send_data' => 'autorization to send data', - 'seo_description' => 'SEO description', - 'seo_title' => 'SEO title', - 'seo' => 'SEO', - 'society' => 'society', - 'static_page_type' => 'static page type', - 'statut' => 'statut', - 'subtitle' => 'subtitle', - 'tagline' => 'tagline', - 'target' => 'target', - 'title_part1' => 'title part one', - 'title_part2' => 'title part two', - 'title_part3' => 'title part three', - 'unpublish_at' => 'end of publication date', - 'unpublish_at' => 'end of publication date', - 'video_id' => 'ID of the video', + 'accept_rules' => 'acceptation of rules', + 'activated' => 'activated', + 'attribute_alt' => 'alt attribute', + 'attribute_title' => 'title attribute', + 'background' => 'background', + 'category' => 'category', + 'category' => 'category', + 'civility' => 'civility', + 'cooking_advice' => 'cooking advice', + 'description' => 'description', + 'direction' => 'direction', + 'event' => 'event', + 'file' => 'file', + 'ingredients' => 'ingredients', + 'job' => 'job', + 'key_earth_1' => 'key number for "respect the earth" 1', + 'key_earth_2' => 'key number for "respect the earth" 2', + 'key_feed' => 'key number for "feed well"', + 'key_territory' => 'key number for "integrate its territory"', + 'key_together_1' => 'key number for "live together" 1', + 'key_together_2' => 'key number for "live together" 2', + 'key_together_3' => 'key number for "live together" 3', + 'key_together_4' => 'key number for "live together" 4', + 'model' => 'target element', + 'nutritionnal_values' => 'nutritionnal values', + 'object' => 'object', + 'order' => 'order', + 'picture_1' => 'picture one', + 'picture_2' => 'picture two', + 'picture_3' => 'picture three', + 'picture_alt' => 'attribut alt of the :field', + 'picture_ambiance' => 'ambiance picture', + 'picture_packshot' => 'packshot picture', + 'picture_productsheet' => 'productsheet picture', + 'picture_thumbnail' => 'thumbnail', + 'picture_title' => 'attribut title of the :field', + 'picture' => 'picture', + 'presentation_content' => 'presentation content', + 'presentation_title' => 'presentation title', + 'product_barcode' => 'product barcode', + 'product_barcode_detail' => '(13 digits)', + 'product_date_consumption' => 'product date consumption', + 'product_date_limit' => 'product date limit', + 'product_location' => 'product location', + 'product_lot' => 'product lot', + 'product_name' => 'product name', + 'publication' => 'publication', + 'publish_at' => 'publication date', + 'publish_at' => 'publication date', + 'send_data' => 'autorization to send data', + 'seo_description' => 'SEO description', + 'seo_title' => 'SEO title', + 'seo' => 'SEO', + 'society' => 'society', + 'static_page_type' => 'static page type', + 'statut' => 'statut', + 'subtitle' => 'subtitle', + 'tagline' => 'tagline', + 'target' => 'target', + 'title_part1' => 'title part one', + 'title_part2' => 'title part two', + 'title_part3' => 'title part three', + 'unpublish_at' => 'end of publication date', + 'unpublish_at' => 'end of publication date', + 'video_id' => 'ID of the video', ], ]; diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php index bc9cd54..42eddd1 100644 --- a/resources/lang/fr/validation.php +++ b/resources/lang/fr/validation.php @@ -223,69 +223,70 @@ return [ 'female' => 'de la ', 'vowel' => 'de l\'' ], - 'accept_rules' => 'acceptation des règles', - 'activated' => 'activé', - 'attribute_alt' => 'attribut alt', - 'attribute_title' => 'attribut title', - 'background' => 'fond', - 'category' => 'catégorie', - 'category' => 'catégorie', - 'civility' => 'civilité', - 'cooking_advice' => 'conseil de réchauffage', - 'description' => 'description', - 'direction' => 'direction', - 'event' => 'évènement', - 'file' => 'fichier', - 'ingredients' => 'ingrédients', - 'job' => 'métier', - 'key_earth_1' => 'Chiffre clé "respecter la terre" 1', - 'key_earth_2' => 'Chiffre clé "respecter la terre" 2', - 'key_feed' => 'chiffre clé "bien nourrir"', - 'key_territory' => 'Chiffre clé "intégrer son territoire"', - 'key_together_1' => 'Chiffre clé "vivre ensemble" 1', - 'key_together_2' => 'Chiffre clé "vivre ensemble" 2', - 'key_together_3' => 'Chiffre clé "vivre ensemble" 3', - 'key_together_4' => 'Chiffre clé "vivre ensemble" 4', - 'model' => 'élément ciblé', - 'nutritionnal_values' => 'valeurs nutritionnelles', - 'object' => 'objet', - 'order' => 'ordre', - 'picture_1' => 'image une', - 'picture_2' => 'image deux', - 'picture_3' => 'image trois', - 'picture_alt' => 'attribut alt de l\':field', - 'picture_ambiance' => 'image d\'ambiance', - 'picture_packshot' => 'image du packshot', - 'picture_productsheet' => 'image de la fiche produit', - 'picture_thumbnail' => 'vignette', - 'picture_title' => 'attribut title de l\':field', - 'picture' => 'image', - 'presentation_content' => 'contenu de présentation', - 'presentation_title' => 'titre de présentation', - 'product_barcode' => 'le code barre du produit', - 'product_date_consumption' => 'date de consommation', - 'product_date_limit' => 'date de limite de consommation', - 'product_location' => 'le lieu de l\'achat', - 'product_lot' => 'numéro du lot figurant à côté de la date', - 'product_name' => 'nom du produit', - 'publication' => 'publication', - 'publish_at' => 'date de publication', - 'publish_at' => 'date de publication', - 'send_data' => 'autorisation d\'enregistrer des données', - 'seo_description' => 'description SEO', - 'seo_title' => 'titre SEO', - 'seo' => 'référencement SEO', - 'society' => 'société', - 'static_page_type' => 'type de page', - 'statut' => 'statut', - 'subtitle' => 'sous-titre', - 'tagline' => 'phrase d\'accroche', - 'target' => 'cible', - 'title_part1' => 'première partie du titre', - 'title_part2' => 'seconde partie du titre', - 'title_part3' => 'dernière partie du titre', - 'unpublish_at' => 'date de fin de publication', - 'unpublish_at' => 'date de fin de publication', - 'video_id' => 'ID de la vidéo', + 'accept_rules' => 'acceptation des règles', + 'activated' => 'activé', + 'attribute_alt' => 'attribut alt', + 'attribute_title' => 'attribut title', + 'background' => 'fond', + 'category' => 'catégorie', + 'category' => 'catégorie', + 'civility' => 'civilité', + 'cooking_advice' => 'conseil de réchauffage', + 'description' => 'description', + 'direction' => 'direction', + 'event' => 'évènement', + 'file' => 'fichier', + 'ingredients' => 'ingrédients', + 'job' => 'métier', + 'key_earth_1' => 'Chiffre clé "respecter la terre" 1', + 'key_earth_2' => 'Chiffre clé "respecter la terre" 2', + 'key_feed' => 'chiffre clé "bien nourrir"', + 'key_territory' => 'Chiffre clé "intégrer son territoire"', + 'key_together_1' => 'Chiffre clé "vivre ensemble" 1', + 'key_together_2' => 'Chiffre clé "vivre ensemble" 2', + 'key_together_3' => 'Chiffre clé "vivre ensemble" 3', + 'key_together_4' => 'Chiffre clé "vivre ensemble" 4', + 'model' => 'élément ciblé', + 'nutritionnal_values' => 'valeurs nutritionnelles', + 'object' => 'objet', + 'order' => 'ordre', + 'picture_1' => 'image une', + 'picture_2' => 'image deux', + 'picture_3' => 'image trois', + 'picture_alt' => 'attribut alt de l\':field', + 'picture_ambiance' => 'image d\'ambiance', + 'picture_packshot' => 'image du packshot', + 'picture_productsheet' => 'image de la fiche produit', + 'picture_thumbnail' => 'vignette', + 'picture_title' => 'attribut title de l\':field', + 'picture' => 'image', + 'presentation_content' => 'contenu de présentation', + 'presentation_title' => 'titre de présentation', + 'product_barcode' => 'code barre du produit', + 'product_barcode_detail' => '(13 chiffres)', + 'product_date_consumption' => 'date de consommation', + 'product_date_limit' => 'date de limite de consommation', + 'product_location' => 'le lieu de l\'achat', + 'product_lot' => 'numéro du lot figurant à côté de la date', + 'product_name' => 'nom du produit', + 'publication' => 'publication', + 'publish_at' => 'date de publication', + 'publish_at' => 'date de publication', + 'send_data' => 'autorisation d\'enregistrer des données', + 'seo_description' => 'description SEO', + 'seo_title' => 'titre SEO', + 'seo' => 'référencement SEO', + 'society' => 'société', + 'static_page_type' => 'type de page', + 'statut' => 'statut', + 'subtitle' => 'sous-titre', + 'tagline' => 'phrase d\'accroche', + 'target' => 'cible', + 'title_part1' => 'première partie du titre', + 'title_part2' => 'seconde partie du titre', + 'title_part3' => 'dernière partie du titre', + 'unpublish_at' => 'date de fin de publication', + 'unpublish_at' => 'date de fin de publication', + 'video_id' => 'ID de la vidéo', ], ]; diff --git a/resources/views/fo/pages/contact.blade.php b/resources/views/fo/pages/contact.blade.php index 61e62c4..283d892 100644 --- a/resources/views/fo/pages/contact.blade.php +++ b/resources/views/fo/pages/contact.blade.php @@ -79,20 +79,20 @@
- - + +
- - + +
- - + +
@@ -126,6 +126,7 @@
@@ -134,7 +135,8 @@
@@ -189,7 +191,7 @@

- {{ __('Laissez nous votre message, le service consommateurs vous répondra par mail dans les plus brefs délais.') }} + {{ __('Laissez nous votre message, le service consommateurs vous répondra dans les plus brefs délais.') }}

From 54e501cd03e023a3ff10e419dc3d1e32d72be3ea Mon Sep 17 00:00:00 2001 From: Noah Lancien Date: Mon, 22 Jan 2024 09:56:19 +0000 Subject: [PATCH 4/5] In contact form, dates are now dates inpiuts instead of string --- app/Http/Requests/Fo/ContactRequest.php | 4 ++-- resources/views/emails/send-contact-form.blade.php | 4 ++-- resources/views/fo/pages/contact.blade.php | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Http/Requests/Fo/ContactRequest.php b/app/Http/Requests/Fo/ContactRequest.php index 32b9375..5671d5d 100644 --- a/app/Http/Requests/Fo/ContactRequest.php +++ b/app/Http/Requests/Fo/ContactRequest.php @@ -69,7 +69,7 @@ class ContactRequest extends FormRequest } ], 'product_date_limit' => [ - 'string', 'between:3,255', 'required', + 'required', 'date', // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed function ($attribute, $value, $fail) { if ($this->get("object") != ObjectEnum::customerService->value()) { @@ -108,7 +108,7 @@ class ContactRequest extends FormRequest } ], 'product_date_consumption' => [ - 'string', 'between:3,255', 'required', + 'required', 'date', // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed function ($attribute, $value, $fail) { if ($this->get("object") != ObjectEnum::customerService->value()) { diff --git a/resources/views/emails/send-contact-form.blade.php b/resources/views/emails/send-contact-form.blade.php index 20bdc59..08060ef 100644 --- a/resources/views/emails/send-contact-form.blade.php +++ b/resources/views/emails/send-contact-form.blade.php @@ -28,10 +28,10 @@ ### Information sur le produit: @component('mail::panel') - **{{ __('validation.custom.product_name') }}:** {{ $data->product_name ?? '' }} -- **{{ __('validation.custom.product_date_limit') }}:** {{ $data->product_date_limit ?? '' }} +- **{{ __('validation.custom.product_date_limit') }}:** {{ \Carbon\Carbon::make($data->product_date_limit)->format('d/m/Y') ?? '' }} - **{{ __('validation.custom.product_barcode') }}:** {{ $data->product_barcode ?? '' }} - **{{ __('validation.custom.product_lot') }}:** {{ $data->product_lot ?? '' }} -- **{{ __('validation.custom.product_date_consumption') }}:** {{ $data->product_date_consumption ?? '' }} +- **{{ __('validation.custom.product_date_consumption') }}:** {{ \Carbon\Carbon::make($data->product_date_consumption)->format('d/m/Y') ?? '' }} - **{{ __('validation.custom.product_location') }}:** {{ $data->product_location ?? '' }} @endcomponent @endif diff --git a/resources/views/fo/pages/contact.blade.php b/resources/views/fo/pages/contact.blade.php index 283d892..938f2a7 100644 --- a/resources/views/fo/pages/contact.blade.php +++ b/resources/views/fo/pages/contact.blade.php @@ -128,7 +128,7 @@ {{ Str::of(__('validation.custom.product_date_limit'))->ucFirst()->value() }}* : {{ __('Ex : 25/08/2028') }} -
@@ -158,7 +158,7 @@ {{ __('Ex : 25/08/2028') }} + type="date" value="{{ old('product_date_consumption') }}">
From bed9d9dde62368725624d6feed874f1b8da6f032 Mon Sep 17 00:00:00 2001 From: Noah Lancien Date: Fri, 26 Jan 2024 16:08:12 +0100 Subject: [PATCH 5/5] phpstan --- app/Console/Commands/UserCreate.php | 12 +- .../ActivityLogs/ActivityLogsEventEnum.php | 2 + app/Enums/Contact/CivilityEnum.php | 2 + app/Enums/Contact/ObjectEnum.php | 2 + app/Enums/Country.php | 2 + app/Enums/News/CategoryEnum.php | 2 + app/Enums/Products/CookingModeEnum.php | 2 + app/Enums/SeasonalSections/BackgroundEnum.php | 2 + app/Enums/StaticPageType.php | 2 + app/Enums/Theme/BootstrapThemeEnum.php | 2 + app/Enums/Users/RoleEnum.php | 2 + .../Controllers/Bo/ActivityLogsController.php | 2 +- .../Controllers/Bo/CommitmentController.php | 2 +- .../Controllers/Bo/JoinuspageController.php | 2 +- app/Http/Controllers/Bo/NewsController.php | 2 +- app/Http/Controllers/Bo/ProductController.php | 2 +- app/Http/Controllers/Bo/RangeController.php | 6 +- .../Bo/SeasonalSectionController.php | 2 +- app/Http/Controllers/Bo/StampController.php | 2 +- .../Controllers/Bo/StaticPageController.php | 2 +- .../Controllers/Bo/TestimonialController.php | 2 +- app/Http/Controllers/Bo/UsersController.php | 2 +- app/Http/Controllers/Controller.php | 35 +- .../StaticPages/UpdateStaticPageRequest.php | 4 +- .../Requests/Bo/UpdateMiniCrudRequest.php | 2 +- .../Requests/Bo/Users/StoreUserRequest.php | 8 +- .../Requests/Bo/Users/UpdateUserRequest.php | 28 +- app/Http/Requests/Fo/ContactRequest.php | 20 +- app/Jobs/SeasonalSectionStatusUpdate.php | 4 +- app/Lib/Helpers/ExceptionsHelper.php | 2 +- app/Lib/Helpers/FileStorageHelper.php | 5 +- app/Lib/Helpers/ToolboxHelper.php | 64 +- app/Mail/SendContactMail.php | 8 +- app/Mail/SendJoinusMail.php | 3 +- app/Models/ActivityLog.php | 29 +- app/Models/Homepage.php | 2 +- app/Models/News.php | 2 +- app/Models/Product.php | 2 +- app/Models/Range.php | 2 +- app/Models/StaticPage.php | 4 +- app/Models/User.php | 5 +- app/Providers/TranslationServiceProvider.php | 2 +- app/Traits/Controllers/ChangesModelOrder.php | 10 +- .../Controllers/UpdateModelPublished.php | 3 +- app/Traits/Enums/BaseEnum.php | 6 +- app/Traits/Models/IsCachedAsCollection.php | 3 +- app/Traits/Requests/HasPicture.php | 4 +- composer.json | 1 + composer.lock | 1868 ++++++++++++----- database/factories/UserFactory.php | 2 +- phpstan.neon | 10 + 51 files changed, 1513 insertions(+), 683 deletions(-) create mode 100644 phpstan.neon diff --git a/app/Console/Commands/UserCreate.php b/app/Console/Commands/UserCreate.php index 90c2dbb..12f2434 100644 --- a/app/Console/Commands/UserCreate.php +++ b/app/Console/Commands/UserCreate.php @@ -28,35 +28,35 @@ class UserCreate extends Command /** * The first name of the new user. * - * @var string + * @var string|null */ protected $first_name; /** * The last name of the new user. * - * @var string + * @var string|null */ protected $last_name; /** * The email of the new user. * - * @var string + * @var string|null */ protected $email; /** * The password of the new user. * - * @var string + * @var string|null */ protected $password; /** * The role of the new user. * - * @var string + * @var string|null */ protected $role; @@ -219,7 +219,7 @@ class UserCreate extends Command $this->role = $tmp; } catch (ValidationException $e) { $this->error(sprintf( - 'Please choose from the selection', + 'Please choose from the selection %s', \implode(',', collect($e->errors())->flatten()->all()) )); continue; diff --git a/app/Enums/ActivityLogs/ActivityLogsEventEnum.php b/app/Enums/ActivityLogs/ActivityLogsEventEnum.php index 658641c..864edae 100644 --- a/app/Enums/ActivityLogs/ActivityLogsEventEnum.php +++ b/app/Enums/ActivityLogs/ActivityLogsEventEnum.php @@ -15,6 +15,8 @@ enum ActivityLogsEventEnum: int /** * Optionnal labels definition + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::created->name => 'Création', diff --git a/app/Enums/Contact/CivilityEnum.php b/app/Enums/Contact/CivilityEnum.php index 104df17..d79211e 100644 --- a/app/Enums/Contact/CivilityEnum.php +++ b/app/Enums/Contact/CivilityEnum.php @@ -13,6 +13,8 @@ enum CivilityEnum: int /** * Optionnal labels definition + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::man->name => 'Monsieur', diff --git a/app/Enums/Contact/ObjectEnum.php b/app/Enums/Contact/ObjectEnum.php index cb0590c..440f623 100644 --- a/app/Enums/Contact/ObjectEnum.php +++ b/app/Enums/Contact/ObjectEnum.php @@ -15,6 +15,8 @@ enum ObjectEnum: int /** * Optionnal labels definition + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::customerService->name => 'Service consommateurs', diff --git a/app/Enums/Country.php b/app/Enums/Country.php index 7d0c40b..4a09295 100644 --- a/app/Enums/Country.php +++ b/app/Enums/Country.php @@ -260,6 +260,8 @@ enum Country: int /** * Optionnal labels definition + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::afghanistan->name => 'Afghanistan', diff --git a/app/Enums/News/CategoryEnum.php b/app/Enums/News/CategoryEnum.php index a5f8190..b2be36f 100644 --- a/app/Enums/News/CategoryEnum.php +++ b/app/Enums/News/CategoryEnum.php @@ -16,6 +16,8 @@ enum CategoryEnum: int /** * Optionnal labels definition. + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::enterprise->name => 'La vie d\'Entreprise', diff --git a/app/Enums/Products/CookingModeEnum.php b/app/Enums/Products/CookingModeEnum.php index 48135ca..920283b 100644 --- a/app/Enums/Products/CookingModeEnum.php +++ b/app/Enums/Products/CookingModeEnum.php @@ -16,6 +16,8 @@ enum CookingModeEnum: int /** * Optionnal labels definition. + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::microwave->name => 'Micro-ondes', diff --git a/app/Enums/SeasonalSections/BackgroundEnum.php b/app/Enums/SeasonalSections/BackgroundEnum.php index b0bbc50..14035c2 100644 --- a/app/Enums/SeasonalSections/BackgroundEnum.php +++ b/app/Enums/SeasonalSections/BackgroundEnum.php @@ -14,6 +14,8 @@ enum BackgroundEnum: int /** * Optionnal labels definition. + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::candlemas->name => 'Chandeleur', diff --git a/app/Enums/StaticPageType.php b/app/Enums/StaticPageType.php index c4be146..3b96818 100644 --- a/app/Enums/StaticPageType.php +++ b/app/Enums/StaticPageType.php @@ -21,6 +21,8 @@ enum StaticPageType: int /** * Optionnal labels definition. + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::contact->name => 'Contact', diff --git a/app/Enums/Theme/BootstrapThemeEnum.php b/app/Enums/Theme/BootstrapThemeEnum.php index f1f3725..0df73eb 100644 --- a/app/Enums/Theme/BootstrapThemeEnum.php +++ b/app/Enums/Theme/BootstrapThemeEnum.php @@ -13,6 +13,8 @@ enum BootstrapThemeEnum: int /** * Optionnal labels definition + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::light->name => 'Light', diff --git a/app/Enums/Users/RoleEnum.php b/app/Enums/Users/RoleEnum.php index 53b5ada..5fefb71 100644 --- a/app/Enums/Users/RoleEnum.php +++ b/app/Enums/Users/RoleEnum.php @@ -14,6 +14,8 @@ enum RoleEnum: int /** * Optionnal labels definition. + * + * @phpstan-ignore-next-line */ private const LABELS = [ self::conceptor->name => 'Concepteur', diff --git a/app/Http/Controllers/Bo/ActivityLogsController.php b/app/Http/Controllers/Bo/ActivityLogsController.php index 7dbf191..6f6dd91 100644 --- a/app/Http/Controllers/Bo/ActivityLogsController.php +++ b/app/Http/Controllers/Bo/ActivityLogsController.php @@ -51,7 +51,7 @@ class ActivityLogsController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\ActivityLog $activity_log + * @param \App\Models\ActivityLog $activity_log * @return \Illuminate\Contracts\View\View */ public function show(ActivityLog $activity_log): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Bo/CommitmentController.php b/app/Http/Controllers/Bo/CommitmentController.php index aa52037..1443c80 100644 --- a/app/Http/Controllers/Bo/CommitmentController.php +++ b/app/Http/Controllers/Bo/CommitmentController.php @@ -98,7 +98,7 @@ class CommitmentController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\Commitment $commitment + * @param \App\Models\Commitment $commitment * @return \Illuminate\Contracts\View\View */ public function edit(Commitment $commitment): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Bo/JoinuspageController.php b/app/Http/Controllers/Bo/JoinuspageController.php index 8348ff4..71d791b 100644 --- a/app/Http/Controllers/Bo/JoinuspageController.php +++ b/app/Http/Controllers/Bo/JoinuspageController.php @@ -28,7 +28,7 @@ class JoinuspageController extends Controller /** * Update the specified resource in storage. * - * @param \App\Http\Requests\Bo\Joinuspages\UpdateJoinuspageRequest $request + * @param \App\Http\Requests\Bo\Joinuspage\UpdateJoinuspageRequest $request * @return \Illuminate\Http\RedirectResponse */ public function update(UpdateJoinuspageRequest $request): \Illuminate\Http\RedirectResponse diff --git a/app/Http/Controllers/Bo/NewsController.php b/app/Http/Controllers/Bo/NewsController.php index a8a3130..a6d3052 100644 --- a/app/Http/Controllers/Bo/NewsController.php +++ b/app/Http/Controllers/Bo/NewsController.php @@ -104,7 +104,7 @@ class NewsController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\News $news + * @param \App\Models\News $news * @return \Illuminate\Contracts\View\View */ public function edit(News $news): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Bo/ProductController.php b/app/Http/Controllers/Bo/ProductController.php index c948c2a..f7c1a7b 100644 --- a/app/Http/Controllers/Bo/ProductController.php +++ b/app/Http/Controllers/Bo/ProductController.php @@ -115,7 +115,7 @@ class ProductController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\Product $product + * @param \App\Models\Product $product * @return \Illuminate\Contracts\View\View */ public function edit(Product $product): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Bo/RangeController.php b/app/Http/Controllers/Bo/RangeController.php index 2001029..38adb4d 100644 --- a/app/Http/Controllers/Bo/RangeController.php +++ b/app/Http/Controllers/Bo/RangeController.php @@ -104,7 +104,7 @@ class RangeController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\Range $range + * @param \App\Models\Range $range * @return \Illuminate\Contracts\View\View */ public function edit(Range $range): \Illuminate\Contracts\View\View @@ -143,7 +143,9 @@ class RangeController extends Controller */ public function destroy(Range $range): \Illuminate\Http\RedirectResponse { - if (!$range->products->isEmpty()) { + /** @var \Illuminate\Database\Eloquent\Collection $products*/ + $products = $range->products; + if (!$products->isEmpty()) { return redirect()->back() ->with('error', __('crud.messages.cannot_be_deleted_relation', [ 'model' => Str::ucfirst(__('models.classes.range')), diff --git a/app/Http/Controllers/Bo/SeasonalSectionController.php b/app/Http/Controllers/Bo/SeasonalSectionController.php index dbd625c..5731887 100644 --- a/app/Http/Controllers/Bo/SeasonalSectionController.php +++ b/app/Http/Controllers/Bo/SeasonalSectionController.php @@ -98,7 +98,7 @@ class SeasonalSectionController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\SeasonalSection $seasonalSection + * @param \App\Models\SeasonalSection $seasonalSection * @return \Illuminate\Contracts\View\View */ public function edit(SeasonalSection $seasonalSection): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Bo/StampController.php b/app/Http/Controllers/Bo/StampController.php index a68e0fa..29a1520 100644 --- a/app/Http/Controllers/Bo/StampController.php +++ b/app/Http/Controllers/Bo/StampController.php @@ -98,7 +98,7 @@ class StampController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\Stamp $stamp + * @param \App\Models\Stamp $stamp * @return \Illuminate\Contracts\View\View */ public function edit(Stamp $stamp): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Bo/StaticPageController.php b/app/Http/Controllers/Bo/StaticPageController.php index c2c8022..4b5f6d8 100644 --- a/app/Http/Controllers/Bo/StaticPageController.php +++ b/app/Http/Controllers/Bo/StaticPageController.php @@ -56,7 +56,7 @@ class StaticPageController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\StaticPage $static_page + * @param \App\Models\StaticPage $static_page * @return \Illuminate\Contracts\View\View */ public function edit(StaticPage $static_page): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Bo/TestimonialController.php b/app/Http/Controllers/Bo/TestimonialController.php index 54a7461..30fc788 100644 --- a/app/Http/Controllers/Bo/TestimonialController.php +++ b/app/Http/Controllers/Bo/TestimonialController.php @@ -100,7 +100,7 @@ class TestimonialController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\Testimonial $testimonial + * @param \App\Models\Testimonial $testimonial * @return \Illuminate\Contracts\View\View */ public function edit(Testimonial $testimonial): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Bo/UsersController.php b/app/Http/Controllers/Bo/UsersController.php index b44fbfe..7509741 100644 --- a/app/Http/Controllers/Bo/UsersController.php +++ b/app/Http/Controllers/Bo/UsersController.php @@ -102,7 +102,7 @@ class UsersController extends Controller /** * Show the form for editing the specified resource. * - * @param App\Models\User $user + * @param \App\Models\User $user * @return \Illuminate\Contracts\View\View */ public function edit(User $user): \Illuminate\Contracts\View\View diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 768c25f..2ae462d 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -94,7 +94,7 @@ class Controller extends BaseController return $query; } // Get models with relation's name/label. - if (Str::endsWith($field, '_id') && $query->getModel()->has(Str::remove('_id', $field))) { + if (Str::endsWith($field, '_id')) { $query->orWhereHas(Str::remove('_id', $field), function ($queryRelation) use ($field, $search) { if (Schema::hasColumn(Str::remove('_id', $field) . 's', 'name')) { $queryRelation->where('name', 'like', '%' . $search . '%'); @@ -122,12 +122,15 @@ class Controller extends BaseController */ protected function getSearchValue(Builder $query, string $search, string $field): string|array { + $cast = $query->getModel()->getCasts()[$field] ?? null; if ( count($query->getModel()->getCasts()) and // Check if the model has casts. - isset($query->getModel()->getCasts()[$field]) and // Check if there is cast about specific field. - enum_exists($query->getModel()->getCasts()[$field]) // Check if the cast is an enum. + $cast and // Check if there is cast about specific field. + enum_exists($cast) // Check if the cast is an enum. ) { - $cases = collect($query->getModel()->getCasts()[$field]::toArray()); + /** @var \App\Traits\Enums $cast */ + // @phpstan-ignore-next-line + $cases = collect($cast::toArray()); $enum = $cases->filter(function ($item) use ($search) { return preg_match('/' . Str::lower($search) . '/', Str::lower($item->label)); }); @@ -148,12 +151,12 @@ class Controller extends BaseController { $rName = request()->route()->getName(); $table = $query->getModel()->getTable(); - if (request()->sort_col) { - Session::put("$rName.sort_col", request()->sort_col); + if (request()->input('sort_col')) { + Session::put("$rName.sort_col", request()->input('sort_col')); Session::put("$rName.sorted", true); } - if (request()->sort_way) { - Session::put("$rName.sort_way", request()->sort_way); + if (request()->input('sort_way')) { + Session::put("$rName.sort_way", request()->input('sort_way')); Session::put("$rName.sorted", true); } if (request()->rst) { @@ -161,12 +164,16 @@ class Controller extends BaseController Session::remove("$rName.sort_col"); Session::remove("$rName.sort_way"); } - if (request()->sort_col and request()->sort_way and Schema::hasColumn($table, request()->sort_col)) { - if ( - !isset($ignore) or - (isset($ignore) and !in_array(request()->sort_col, $ignore)) - ) { - $query = $query->orderBy(\sprintf("$table.%s", request()->sort_col), request()->sort_way); + if ( + request()->input('sort_col') and + request()->input('sort_way') and + Schema::hasColumn($table, request()->input('sort_col')) + ) { + if (!in_array(request()->input('sort_col'), $ignore)) { + $query = $query->orderBy( + \sprintf("$table.%s", request()->input('sort_col')), + request()->input('sort_way') + ); } } elseif (Schema::hasColumn($table, 'order')) { $query = $query->orderBy('order', 'ASC'); diff --git a/app/Http/Requests/Bo/StaticPages/UpdateStaticPageRequest.php b/app/Http/Requests/Bo/StaticPages/UpdateStaticPageRequest.php index 31f80f1..84263fd 100644 --- a/app/Http/Requests/Bo/StaticPages/UpdateStaticPageRequest.php +++ b/app/Http/Requests/Bo/StaticPages/UpdateStaticPageRequest.php @@ -24,8 +24,10 @@ class UpdateStaticPageRequest extends FormRequest */ public function prepareForValidation(): void { + /** @var \App\Models\StaticPage $staticPageModel */ + $staticPageModel = $this->route('static_page'); if ( - \in_array($this->route('static_page')->type, [ + \in_array($staticPageModel->type, [ \App\Enums\StaticPageType::confidentiality, \App\Enums\StaticPageType::legals ]) diff --git a/app/Http/Requests/Bo/UpdateMiniCrudRequest.php b/app/Http/Requests/Bo/UpdateMiniCrudRequest.php index f845c96..19b187a 100644 --- a/app/Http/Requests/Bo/UpdateMiniCrudRequest.php +++ b/app/Http/Requests/Bo/UpdateMiniCrudRequest.php @@ -109,7 +109,7 @@ abstract class UpdateMiniCrudRequest extends FormRequest $rules = array_merge($rules, [ "data.$iptName.value" => [ function (string $attribute, $value, callable $fail) use ($sizes) { - return ToolboxHelper::validatePicture($attribute, $value, $fail, $sizes); + ToolboxHelper::validatePicture($attribute, $value, $fail, $sizes); } ], $this->compileValidate( diff --git a/app/Http/Requests/Bo/Users/StoreUserRequest.php b/app/Http/Requests/Bo/Users/StoreUserRequest.php index eb68d84..0a9b323 100644 --- a/app/Http/Requests/Bo/Users/StoreUserRequest.php +++ b/app/Http/Requests/Bo/Users/StoreUserRequest.php @@ -3,7 +3,9 @@ namespace App\Http\Requests\Bo\Users; use App\Enums\Users\RoleEnum; +use App\Models\User; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Support\Facades\Gate; use Illuminate\Validation\Rules\Enum; use Illuminate\Validation\Rules\Password; @@ -16,7 +18,7 @@ class StoreUserRequest extends FormRequest */ public function authorize(): bool { - return auth('backend')->check(); + return Gate::check('create', User::class); } /** @@ -24,10 +26,10 @@ class StoreUserRequest extends FormRequest * * @return void */ - protected function prepareForValidation() + protected function prepareForValidation(): void { $this->merge([ - 'published' => $this->published ? true : false + 'published' => $this->boolean('published') ]); } diff --git a/app/Http/Requests/Bo/Users/UpdateUserRequest.php b/app/Http/Requests/Bo/Users/UpdateUserRequest.php index 6ee448b..6c587c9 100644 --- a/app/Http/Requests/Bo/Users/UpdateUserRequest.php +++ b/app/Http/Requests/Bo/Users/UpdateUserRequest.php @@ -2,23 +2,35 @@ namespace App\Http\Requests\Bo\Users; +use Illuminate\Support\Facades\Gate; +use Illuminate\Validation\Rule; use Illuminate\Validation\Rules\Password; class UpdateUserRequest extends StoreUserRequest { + /** + * Determine if the user is authorized to make this request. + * + * @return boolean + */ + public function authorize(): bool + { + return Gate::check('update', $this->route('user')); + } + /** * Prepare the data for validation. * * @return void */ - protected function prepareForValidation() + protected function prepareForValidation(): void { $this->merge([ - 'published' => $this->published ? true : false, - 'password' => $this->password ? $this->password : $this->route('user')->password, - 'password_confirmation' => $this->password_confirmation ? - $this->password_confirmation : - $this->route('user')->password + 'published' => $this->boolean('published'), + 'password' => $this->input('password') ?? + \optional($this->route('user'))->password, + 'password_confirmation' => $this->input('password_confirmation') ?? + \optional($this->route('user'))->password ]); } @@ -30,10 +42,10 @@ class UpdateUserRequest extends StoreUserRequest public function rules(): array { return array_merge(parent::rules(), [ - 'email' => [ + 'email' => [ 'required', 'email:rfc,strict,dns,spoof,filter', - 'unique:users,email,' . $this->route('user')->getKey() . ',id', + Rule::unique('users', 'email')->ignore(\optional($this->route('user'))->getRouteKey()) ], 'password' => [ 'required', 'required_with:password_confirmation', 'confirmed', 'max:255', Password::min(8) diff --git a/app/Http/Requests/Fo/ContactRequest.php b/app/Http/Requests/Fo/ContactRequest.php index 5671d5d..15b0005 100644 --- a/app/Http/Requests/Fo/ContactRequest.php +++ b/app/Http/Requests/Fo/ContactRequest.php @@ -21,8 +21,8 @@ class ContactRequest extends FormRequest protected function prepareForValidation() { $this->merge([ - 'accept_rules' => $this->accept_rules ? true : false, - 'send_data' => $this->send_data ? true : false, + 'accept_rules' => $this->boolean('accept_rules'), + 'send_data' => $this->boolean('send_data'), ]); $this->mergePicture('file'); } @@ -57,7 +57,7 @@ class ContactRequest extends FormRequest $rules = \array_merge($rules, [ 'product_name' => [ 'string', 'between:3,255', 'required', - // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed function ($attribute, $value, $fail) { if ($this->get("object") != ObjectEnum::customerService->value()) { $fail(\trans('le Champs :field doit être vide lorsque le champs objet @@ -70,7 +70,7 @@ class ContactRequest extends FormRequest ], 'product_date_limit' => [ 'required', 'date', - // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed function ($attribute, $value, $fail) { if ($this->get("object") != ObjectEnum::customerService->value()) { $fail(\trans('le Champs :field doit être vide lorsque le champs objet @@ -83,7 +83,7 @@ class ContactRequest extends FormRequest ], 'product_barcode' => [ 'numeric', 'min:0', 'required', - // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed function ($attribute, $value, $fail) { if ($this->get("object") != ObjectEnum::customerService->value()) { $fail(\trans('le Champs :field doit être vide lorsque le champs objet @@ -96,7 +96,7 @@ class ContactRequest extends FormRequest ], 'product_lot' => [ 'numeric', 'min:0', 'required', - // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed function ($attribute, $value, $fail) { if ($this->get("object") != ObjectEnum::customerService->value()) { $fail(\trans('le Champs :field doit être vide lorsque le champs objet @@ -109,7 +109,7 @@ class ContactRequest extends FormRequest ], 'product_date_consumption' => [ 'required', 'date', - // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed function ($attribute, $value, $fail) { if ($this->get("object") != ObjectEnum::customerService->value()) { $fail(\trans('le Champs :field doit être vide lorsque le champs objet @@ -122,7 +122,7 @@ class ContactRequest extends FormRequest ], 'product_location' => [ 'string', 'between:3,255', 'required', - // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed function ($attribute, $value, $fail) { if ($this->get("object") != ObjectEnum::customerService->value()) { $fail(\trans('le Champs :field doit être vide lorsque le champs objet @@ -146,8 +146,8 @@ class ContactRequest extends FormRequest 0, 1920, 1080, - 3000, true, + 3000, 'product_name,product_date_limit,product_barcode,product_lot,product_date_consumption,product_location' )); } elseif (isset(request()->file) and (request()->file->getClientMimeType() === "application/pdf")) { @@ -163,7 +163,7 @@ class ContactRequest extends FormRequest ) { $rules = \array_merge($rules, [ 'file' => [ - // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed function ($attribute, $value, $fail) { $fail(\trans('Le format du fichier doit être .jpg, .png ou .pdf')); } diff --git a/app/Jobs/SeasonalSectionStatusUpdate.php b/app/Jobs/SeasonalSectionStatusUpdate.php index 22ca262..95982df 100644 --- a/app/Jobs/SeasonalSectionStatusUpdate.php +++ b/app/Jobs/SeasonalSectionStatusUpdate.php @@ -19,7 +19,7 @@ class SeasonalSectionStatusUpdate */ public function handle() { - /** @var \Illuminate\Database\Eloquent\Collection */ + /** @var \Illuminate\Database\Eloquent\Collection */ $seasonalsectionsListToPublish = SeasonalSection::query() ->where('publish_at', '<=', Carbon::now()->toDateTime()) ->whereNotNull('publish_at') @@ -30,7 +30,7 @@ class SeasonalSectionStatusUpdate $seasonalsections->published = true; $seasonalsections->saveOrFail(); } - /** @var \Illuminate\Database\Eloquent\Collection */ + /** @var \Illuminate\Database\Eloquent\Collection */ $seasonalsectionsListToUnPublish = SeasonalSection::query() ->where('unpublish_at', '<=', Carbon::now()->toDateTime()) ->whereNotNull('unpublish_at') diff --git a/app/Lib/Helpers/ExceptionsHelper.php b/app/Lib/Helpers/ExceptionsHelper.php index 4813275..30deb54 100644 --- a/app/Lib/Helpers/ExceptionsHelper.php +++ b/app/Lib/Helpers/ExceptionsHelper.php @@ -145,7 +145,7 @@ class ExceptionsHelper $traceStr .= self::handleArgs($stack); } $traceStr .= ")\n"; - } elseif (isset($stack['function'])) { + } else { $traceStr .= "{$stack['function']}("; if (isset($stack['args'])) { $traceStr .= self::handleArgs($stack); diff --git a/app/Lib/Helpers/FileStorageHelper.php b/app/Lib/Helpers/FileStorageHelper.php index f5b864b..6d87992 100644 --- a/app/Lib/Helpers/FileStorageHelper.php +++ b/app/Lib/Helpers/FileStorageHelper.php @@ -118,7 +118,7 @@ class FileStorageHelper ); return str_replace('/private/', '', $newPath); - }//end if + } //end if if (\is_object($file) and $file instanceof \SplFileInfo) { /** @var \SplFileInfo $file */ $filename = $filename ?: $file->getBaseName(); @@ -309,7 +309,6 @@ class FileStorageHelper $private ? 'app/private/modelfiles' : 'app/public/modelfiles', $tableName, $filename, - $private ); $filename = self::getFileUniqueName($folderPath, $filename); return "{$folderPath}/{$filename}"; @@ -404,7 +403,7 @@ class FileStorageHelper $filename = Str::of($filename)->ltrim('.-'); // * Optional beautification if ($beautify) { - $filename = static::beautifyFilename($filename); + $filename = self::beautifyFilename($filename); } // * Maximize filename length to 255 bytes http://serverfault.com/a/9548/44086 /** @var string */ diff --git a/app/Lib/Helpers/ToolboxHelper.php b/app/Lib/Helpers/ToolboxHelper.php index de1c040..575e95d 100644 --- a/app/Lib/Helpers/ToolboxHelper.php +++ b/app/Lib/Helpers/ToolboxHelper.php @@ -175,11 +175,10 @@ class ToolboxHelper $url = $match; try { $request = Request::create($url); - // If a route is match then it do not throws exception. - if ( - \parse_url(config('app.url'), \PHP_URL_HOST) === \parse_url($url, \PHP_URL_HOST) && - $routes->match($request) - ) { + // Assert route matches existing routes. + $routes->match($request); + // ? Is url internal ? + if (\parse_url(config('app.url'), \PHP_URL_HOST) === \parse_url($url, \PHP_URL_HOST)) { // Removes the matched url. throw ValidationException::withMessages([ $field => trans( @@ -205,14 +204,14 @@ class ToolboxHelper * @param array|string $replace * @param array|string $subject * @param integer $count - * @return array|string + * @return array|string|false */ public static function mbReplace( array|string $search, array|string $replace, array|string $subject, int &$count = 0 - ): array|string { + ): array|string|false { if (!is_array($search) && is_array($replace)) { return false; } @@ -289,9 +288,12 @@ class ToolboxHelper public static function getOriginal(Model $model, string $attribute): mixed { if (\in_array('Spatie\Translatable\HasTranslations', \class_uses_recursive($model))) { + // @phpstan-ignore-next-line return $model->getTranslation( $attribute, + // @phpstan-ignore-next-line $model->getLocale(), + // @phpstan-ignore-next-line $model->useFallbackLocale() ); } @@ -361,47 +363,45 @@ class ToolboxHelper /** * Convert deeply an object to array * - * @param array|object $input + * @param mixed $input * @return array * @throws \RuntimeException If $input var is a scalar value. */ - public static function objectToArray($input): array + public static function objectToArray(mixed $input): array { // Only process if it's an object or array being passed to the function. - if (is_object($input) or is_array($input)) { - $ret = (array)$input; - foreach ($ret as &$item) { - // Recursively process EACH element only if not scalar. - $item = (is_object($item) or is_array($item)) ? - self::objectToArray($item) : $item; - } - return $ret; - } else { + if (!(is_object($input) or is_array($input))) { throw new \RuntimeException('Cannot handle $input of type ' . \gettype($input)); } + $ret = (array)$input; + foreach ($ret as &$item) { + // Recursively process EACH element only if not scalar. + $item = (is_object($item) or is_array($item)) ? + self::objectToArray($item) : $item; + } + return $ret; } /** * Convert deeply an array to object * - * @param array|object $input + * @param mixed $input * @return object * @throws \RuntimeException If $input var is a scalar value. */ - public static function arrayToObject($input): object + public static function arrayToObject(mixed $input): object { // Only process if it's an object or array being passed to the function. - if (is_object($input) or is_array($input)) { - $ret = (object)$input; - foreach ($ret as &$item) { - // Recursively process EACH element only if not scalar. - $item = (is_object($item) or is_array($item)) ? - self::arrayToObject($item) : $item; - } - return $ret; - } else { + if (!(is_object($input) or is_array($input))) { throw new \RuntimeException('Cannot handle $input of type ' . \gettype($input)); } + $ret = (object)$input; + foreach ($ret as &$item) { + // Recursively process EACH element only if not scalar. + $item = (is_object($item) or is_array($item)) ? + self::arrayToObject($item) : $item; + } + return $ret; } /** @@ -409,11 +409,11 @@ class ToolboxHelper * * @param string $attribute * @param string|null $value - * @param callback $fail + * @param callable $fail * @param object $sizes * @return void */ - public static function validatePicture(string $attribute, string|null $value, callable $fail, object $sizes) + public static function validatePicture(string $attribute, string|null $value, callable $fail, object $sizes): void { if (!($useStorage = Storage::exists($value)) and !File::exists($value)) { $fail(trans(':attribute n\'existe pas dans le système de fichier', [ @@ -432,7 +432,7 @@ class ToolboxHelper 'attribute' => $attribute ])); } - if (!($dimensions = \getimagesize($fileFullPath)) or !isset($dimensions[0]) or !isset($dimensions[1])) { + if (!($dimensions = \getimagesize($fileFullPath))) { $fail(trans(':attribute impossible de valider les dimensions', [ 'attribute' => $attribute ])); diff --git a/app/Mail/SendContactMail.php b/app/Mail/SendContactMail.php index cc7e5ed..b6982cb 100644 --- a/app/Mail/SendContactMail.php +++ b/app/Mail/SendContactMail.php @@ -16,7 +16,7 @@ class SendContactMail extends Mailable use SerializesModels; /** - * @var \App\Mail\Contact + * @var \stdClass */ private \stdClass $data; @@ -39,9 +39,11 @@ class SendContactMail extends Mailable */ public function envelope(): \Illuminate\Mail\Mailables\Envelope { + $subject = ObjectEnum::make($this->data->object) ? + ObjectEnum::make($this->data->object)->label() : + __('Nouveau message'); return new Envelope( - subject: sprintf('%s - %s', ObjectEnum::make($this->data->object)->label() ?? - __('Nouveau message'), config('app.name')), + subject: sprintf('%s - %s', $subject, config('app.name')), ); } diff --git a/app/Mail/SendJoinusMail.php b/app/Mail/SendJoinusMail.php index 3788f50..446f9a7 100644 --- a/app/Mail/SendJoinusMail.php +++ b/app/Mail/SendJoinusMail.php @@ -15,7 +15,7 @@ class SendJoinusMail extends Mailable use SerializesModels; /** - * @var \App\Mail\Joinus + * @var \stdClass */ private \stdClass $data; @@ -24,7 +24,6 @@ class SendJoinusMail extends Mailable * * @param \stdClass $data * @return void - * @phpcs:disable Generic.Metrics.CyclomaticComplexity.TooHigh */ public function __construct(\stdClass $data) { diff --git a/app/Models/ActivityLog.php b/app/Models/ActivityLog.php index 0eca06b..0f333d0 100644 --- a/app/Models/ActivityLog.php +++ b/app/Models/ActivityLog.php @@ -3,18 +3,17 @@ namespace App\Models; use App\Enums\ActivityLogs\ActivityLogsEventEnum; -use Carbon\Carbon; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Notifications\Notifiable; use Illuminate\Support\Facades\Schema; /** - * @property string $model Target model. - * @property string $model_id Id of the target model. - * @property string $event Event of this activity (ActivityLogsEventEnum). - * @property string $data Changes. - * @property-read \Illuminate\Support\Carbon $created_at Created date. + * @property string $model Target model. + * @property string $model_id Id of the target model. + * @property \App\Enums\ActivityLogs\ActivityLogsEventEnum $event Event of this activity (ActivityLogsEventEnum). + * @property array $data Changes. + * @property-read \Illuminate\Support\Carbon $created_at Created date. * * @property-read \App\Models\User $user User BelongsTo relation. */ @@ -82,19 +81,20 @@ class ActivityLog extends Model $activity->model_id = $model->getKey(); $activity->event = $eventEnum; $activity->data = static::getChangedColumns($activity, $model, $eventEnum); - $activity->created_at = Carbon::now(); + // @phpstan-ignore-next-line + $activity->created_at = now(); $activity->saveOrFail(); } /** * Get old, new columns that has changed. * - * @param \self $activity + * @param self $activity * @param \Illuminate\Database\Eloquent\Model $model * @param \App\Enums\ActivityLogs\ActivityLogsEventEnum $eventEnum - * @return array|null + * @return array */ - public static function getChangedColumns(self $activity, Model $model, ActivityLogsEventEnum $eventEnum): array|null + public static function getChangedColumns(self $activity, Model $model, ActivityLogsEventEnum $eventEnum): array { $modelClassName = $activity->model_class; /** Get type of each fields of the target model */ @@ -103,16 +103,17 @@ class ActivityLog extends Model $activity->model_id )->first(); if ($targetModel != null) { - // phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed $targetModelTypes = collect($targetModel->toArray()) + // phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed ->map(function ($field, $fieldIndex) use ($targetModel) { return Schema::getColumnType($targetModel->getTable(), $fieldIndex); })->toArray(); // phpcs:enable + /** Return old, new and type of values changed */ + return ($eventEnum === ActivityLogsEventEnum::updated) ? + array_intersect_key($targetModelTypes, $model->getChanges()) : []; } - /** Return old, new and type of values changed */ - return ($eventEnum === ActivityLogsEventEnum::updated) ? - array_intersect_key($targetModelTypes, $model->getChanges()) : null; + return []; } // * RELATIONS diff --git a/app/Models/Homepage.php b/app/Models/Homepage.php index 1f05782..7f92c7a 100644 --- a/app/Models/Homepage.php +++ b/app/Models/Homepage.php @@ -47,7 +47,7 @@ class Homepage extends Model /** * The attributes that should be cast. * - * @var string[] + * @var array */ protected $casts = [ 'display_video' => 'bool' diff --git a/app/Models/News.php b/app/Models/News.php index 7a51e3a..e4a7084 100644 --- a/app/Models/News.php +++ b/app/Models/News.php @@ -207,7 +207,7 @@ class News extends Model implements SeoInterface /** * Transform to seoModel * - * @return \App\Objects\SeoItem + * @return \Uwil\Seo\Laravel\Objects\SeoItem */ public function toSeoItem(): SeoItem { diff --git a/app/Models/Product.php b/app/Models/Product.php index 7148469..2640349 100644 --- a/app/Models/Product.php +++ b/app/Models/Product.php @@ -198,7 +198,7 @@ class Product extends Model implements SeoInterface /** * Transform to seoModel * - * @return \App\Objects\SeoItem + * @return \Uwil\Seo\Laravel\Objects\SeoItem */ public function toSeoItem(): SeoItem { diff --git a/app/Models/Range.php b/app/Models/Range.php index 08564cb..5eb11a1 100644 --- a/app/Models/Range.php +++ b/app/Models/Range.php @@ -179,7 +179,7 @@ class Range extends Model implements SeoInterface /** * Transform to seoModel * - * @return \App\Objects\SeoItem + * @return \Uwil\Seo\Laravel\Objects\SeoItem */ public function toSeoItem(): SeoItem { diff --git a/app/Models/StaticPage.php b/app/Models/StaticPage.php index f764527..051884c 100644 --- a/app/Models/StaticPage.php +++ b/app/Models/StaticPage.php @@ -61,7 +61,7 @@ class StaticPage extends Model implements SeoInterface }); static::updating(function (self $model) { // * ASSERTIONS - static::assertTitleIsUnique($model->title, $model->id); + self::assertTitleIsUnique($model->title, $model->id); // * CHANGES $model->slug = Str::slug($model->title); @@ -92,7 +92,7 @@ class StaticPage extends Model implements SeoInterface /** * Transform to seoModel * - * @return \App\Objects\SeoItem + * @return \Uwil\Seo\Laravel\Objects\SeoItem */ public function toSeoItem(): SeoItem { diff --git a/app/Models/User.php b/app/Models/User.php index 5e56271..8fde677 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -4,6 +4,7 @@ namespace App\Models; use App\Enums\Users\RoleEnum; use App\Traits\Models\ActivityLog; +use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; @@ -72,7 +73,7 @@ class User extends Authenticatable protected static function booted(): void { static::creating(function (self $model) { - static::updatePassword($model); + self::updatePassword($model); // * Prevent user elevation privileges throw_if( auth('backend')->user() and auth('backend')->user()->role->value() > $model->role->value(), @@ -80,7 +81,7 @@ class User extends Authenticatable ); }); static::updating(function (self $model) { - static::updatePassword($model); + self::updatePassword($model); if (optional(auth('backend')->user())->getKey() === $model->getKey()) { \validator( ['published' => $model->published], diff --git a/app/Providers/TranslationServiceProvider.php b/app/Providers/TranslationServiceProvider.php index b3e3f4b..4849099 100644 --- a/app/Providers/TranslationServiceProvider.php +++ b/app/Providers/TranslationServiceProvider.php @@ -32,7 +32,7 @@ class TranslationServiceProvider extends ServiceProvider /** * Gather provided langs checking from files * - * @return \Illuminate\Support\Collection + * @return \Illuminate\Support\Collection */ private function collectLocalesStrings(): Collection { diff --git a/app/Traits/Controllers/ChangesModelOrder.php b/app/Traits/Controllers/ChangesModelOrder.php index 51af5ba..1797d90 100644 --- a/app/Traits/Controllers/ChangesModelOrder.php +++ b/app/Traits/Controllers/ChangesModelOrder.php @@ -37,18 +37,16 @@ trait ChangesModelOrder return DB::transaction(function () use ($request, $className, $model) { /** @var \Illuminate\Database\Eloquent\Model|null */ - $tmp = $className::where('order', $request->direction ? '<' : '>', $model->order) + $tmp = $className::where('order', $request->direction ? '<' : '>', $model->getOriginal('order')) ->orderBy('order', $request->direction ? 'DESC' : 'ASC')->first(); if (!$tmp) { return back()->with('error', trans('crud.messages.order_not_changed')); } - $newOrder = $tmp->order; - $tmp->order = $model->order; - $model->order = $newOrder; - $tmp->saveOrFail(); - $model->saveOrFail(); + $newOrder = $tmp->getOriginal('order'); + $tmp->update(['order' => $model->getOriginal('order')]); + $model->update(['order' => $newOrder]); Session::flash('success', trans('crud.messages.order_changed')); return back(); diff --git a/app/Traits/Controllers/UpdateModelPublished.php b/app/Traits/Controllers/UpdateModelPublished.php index 4ca47df..05691b1 100644 --- a/app/Traits/Controllers/UpdateModelPublished.php +++ b/app/Traits/Controllers/UpdateModelPublished.php @@ -19,8 +19,7 @@ trait UpdateModelPublished */ public function changePublished(Model $model) { - $model->published = !$model->published; - $model->saveOrFail(); + $model->update(['published' => !$model->getOriginal('published')]); return redirect()->back()->with('success', trans(__('crud.messages.publish_status_saved'))); } } diff --git a/app/Traits/Enums/BaseEnum.php b/app/Traits/Enums/BaseEnum.php index 48962f4..a34855a 100644 --- a/app/Traits/Enums/BaseEnum.php +++ b/app/Traits/Enums/BaseEnum.php @@ -118,9 +118,9 @@ trait BaseEnum /** * Fetch enum using value. * - * @param \App\Traits\Enums\BaseEnum|integer|string $value - * @param string $field - * @return \App\Traits\Enums\BaseEnum|null + * @param self|integer|string $value + * @param string $field + * @return self|null */ public static function make(self|int|string $value, string $field = 'value'): self|null { diff --git a/app/Traits/Models/IsCachedAsCollection.php b/app/Traits/Models/IsCachedAsCollection.php index f8ede85..b1f3f36 100644 --- a/app/Traits/Models/IsCachedAsCollection.php +++ b/app/Traits/Models/IsCachedAsCollection.php @@ -10,7 +10,8 @@ use Illuminate\Support\Facades\Cache; /** * ! Use this only on limited elements, (not on tags, or products, or posts for ex.) * - * @property private static array $cacheConditions Eloquent condition to cache elements (to be used in where statement). + * @property array $cacheConditions + * Eloquent condition to cache elements (to be used in where statement). */ trait IsCachedAsCollection { diff --git a/app/Traits/Requests/HasPicture.php b/app/Traits/Requests/HasPicture.php index a7635e3..8a4f268 100644 --- a/app/Traits/Requests/HasPicture.php +++ b/app/Traits/Requests/HasPicture.php @@ -78,7 +78,7 @@ trait HasPicture (!empty($requiredIf)) ? "required_if:{$requiredIf}" : '', ($size) ? "max:{$size}" : '', function (string $attribute, $value, callable $fail) use ($dimensions) { - return ToolboxHelper::validatePicture($attribute, $value, $fail, $dimensions); + ToolboxHelper::validatePicture($attribute, $value, $fail, $dimensions); } ] ]; @@ -113,7 +113,7 @@ trait HasPicture "{$name}Validate.*" => [ 'required', function (string $attribute, $value, callable $fail) use ($sizes) { - return $this->validatePicture($attribute, $value, $fail, $sizes); + ToolboxHelper::validatePicture($attribute, $value, $fail, $sizes); } ] ]; diff --git a/composer.json b/composer.json index 70e0439..5023afd 100644 --- a/composer.json +++ b/composer.json @@ -20,6 +20,7 @@ }, "require-dev": { "fakerphp/faker": "^1.9.1", + "larastan/larastan": "^2.8", "laravel-lang/common": "^4.0", "laravel/pint": "^1.0", "laravel/sail": "^1.18", diff --git a/composer.lock b/composer.lock index 72a84d9..051150b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9e1490aea9d5c6f581ccaaafbba3e052", + "content-hash": "0634be7008488e5bec77d3f02d4a6190", "packages": [ { "name": "brick/math", @@ -371,16 +371,16 @@ }, { "name": "doctrine/dbal", - "version": "3.7.2", + "version": "3.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2" + "reference": "d244f2e6e6bf32bff5174e6729b57214923ecec9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/0ac3c270590e54910715e9a1a044cc368df282b2", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/d244f2e6e6bf32bff5174e6729b57214923ecec9", + "reference": "d244f2e6e6bf32bff5174e6729b57214923ecec9", "shasum": "" }, "require": { @@ -396,14 +396,14 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.42", + "phpstan/phpstan": "1.10.56", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.13", + "phpunit/phpunit": "9.6.15", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", + "squizlabs/php_codesniffer": "3.8.1", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" }, "suggest": { @@ -464,7 +464,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.7.2" + "source": "https://github.com/doctrine/dbal/tree/3.8.0" }, "funding": [ { @@ -480,7 +480,7 @@ "type": "tidelift" } ], - "time": "2023-11-19T08:06:58+00:00" + "time": "2024-01-25T21:44:02+00:00" }, { "name": "doctrine/deprecations", @@ -622,16 +622,16 @@ }, { "name": "doctrine/inflector", - "version": "2.0.8", + "version": "2.0.9", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" + "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/2930cd5ef353871c821d5c43ed030d39ac8cfe65", + "reference": "2930cd5ef353871c821d5c43ed030d39ac8cfe65", "shasum": "" }, "require": { @@ -693,7 +693,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.8" + "source": "https://github.com/doctrine/inflector/tree/2.0.9" }, "funding": [ { @@ -709,7 +709,7 @@ "type": "tidelift" } ], - "time": "2023-06-16T13:40:37+00:00" + "time": "2024-01-15T18:05:13+00:00" }, { "name": "doctrine/lexer", @@ -1668,41 +1668,53 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:19:19+00:00" + "time": "2023-12-03T19:50:20+00:00" }, { - "name": "http-interop/http-factory-guzzle", - "version": "1.2.0", + "name": "intervention/image", + "version": "2.7.2", "source": { "type": "git", - "url": "https://github.com/http-interop/http-factory-guzzle.git", - "reference": "8f06e92b95405216b237521cc64c804dd44c4a81" + "url": "https://github.com/Intervention/image.git", + "reference": "04be355f8d6734c826045d02a1079ad658322dad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/8f06e92b95405216b237521cc64c804dd44c4a81", - "reference": "8f06e92b95405216b237521cc64c804dd44c4a81", + "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", + "reference": "04be355f8d6734c826045d02a1079ad658322dad", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.7||^2.0", - "php": ">=7.3", - "psr/http-factory": "^1.0" - }, - "provide": { - "psr/http-factory-implementation": "^1.0" + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1 || ^2.0", + "php": ">=5.4.0" }, "require-dev": { - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^9.5" + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" }, "suggest": { - "guzzlehttp/psr7": "Includes an HTTP factory starting in version 2.0" + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, "autoload": { "psr-4": { - "Http\\Factory\\Guzzle\\": "src/" + "Intervention\\Image\\": "src/Intervention/Image" } }, "notification-url": "https://packagist.org/downloads/", @@ -1711,22 +1723,36 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" } ], - "description": "An HTTP Factory using Guzzle PSR7", + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", "keywords": [ - "factory", - "http", - "psr-17", - "psr-7" + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" ], "support": { - "issues": "https://github.com/http-interop/http-factory-guzzle/issues", - "source": "https://github.com/http-interop/http-factory-guzzle/tree/1.2.0" + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/2.7.2" }, - "time": "2021-07-21T13:50:14+00:00" + "funding": [ + { + "url": "https://paypal.me/interventionio", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + } + ], + "time": "2022-05-21T17:30:32+00:00" }, { "name": "jean85/pretty-package-versions", @@ -1789,16 +1815,16 @@ }, { "name": "laravel/framework", - "version": "v10.38.1", + "version": "v10.42.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "ced4689f495213e9d23995b36098f12a802cc15b" + "reference": "fef1aff874a6749c44f8e142e5764eab8cb96890" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/ced4689f495213e9d23995b36098f12a802cc15b", - "reference": "ced4689f495213e9d23995b36098f12a802cc15b", + "url": "https://api.github.com/repos/laravel/framework/zipball/fef1aff874a6749c44f8e142e5764eab8cb96890", + "reference": "fef1aff874a6749c44f8e142e5764eab8cb96890", "shasum": "" }, "require": { @@ -1901,7 +1927,7 @@ "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^8.15.1", + "orchestra/testbench-core": "^8.18", "pda/pheanstalk": "^4.0", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^10.0.7", @@ -1990,20 +2016,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2023-12-20T14:52:12+00:00" + "time": "2024-01-23T15:07:56+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.13", + "version": "v0.1.15", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "e1379d8ead15edd6cc4369c22274345982edc95a" + "reference": "d814a27514d99b03c85aa42b22cfd946568636c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/e1379d8ead15edd6cc4369c22274345982edc95a", - "reference": "e1379d8ead15edd6cc4369c22274345982edc95a", + "url": "https://api.github.com/repos/laravel/prompts/zipball/d814a27514d99b03c85aa42b22cfd946568636c1", + "reference": "d814a27514d99b03c85aa42b22cfd946568636c1", "shasum": "" }, "require": { @@ -2019,7 +2045,7 @@ "require-dev": { "mockery/mockery": "^1.5", "pestphp/pest": "^2.3", - "phpstan/phpstan": "^1.10", + "phpstan/phpstan": "^1.11", "phpstan/phpstan-mockery": "^1.1" }, "suggest": { @@ -2045,9 +2071,9 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.13" + "source": "https://github.com/laravel/prompts/tree/v0.1.15" }, - "time": "2023-10-27T13:53:59+00:00" + "time": "2023-12-29T22:37:42+00:00" }, { "name": "laravel/serializable-closure", @@ -2111,25 +2137,25 @@ }, { "name": "laravel/tinker", - "version": "v2.8.2", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3" + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4|^0.11.1", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", @@ -2137,13 +2163,10 @@ "phpunit/phpunit": "^8.5.8|^9.3.3" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" @@ -2174,34 +2197,34 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.8.2" + "source": "https://github.com/laravel/tinker/tree/v2.9.0" }, - "time": "2023-08-15T14:27:00+00:00" + "time": "2024-01-04T16:10:04+00:00" }, { "name": "laravel/ui", - "version": "v4.3.0", + "version": "v4.4.0", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "d166e09cdcb2e23836f694774cba77a32edb6007" + "reference": "7335d7049b2cde345c029e9d2de839b80af62bc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/d166e09cdcb2e23836f694774cba77a32edb6007", - "reference": "d166e09cdcb2e23836f694774cba77a32edb6007", + "url": "https://api.github.com/repos/laravel/ui/zipball/7335d7049b2cde345c029e9d2de839b80af62bc0", + "reference": "7335d7049b2cde345c029e9d2de839b80af62bc0", "shasum": "" }, "require": { - "illuminate/console": "^9.21|^10.0", - "illuminate/filesystem": "^9.21|^10.0", - "illuminate/support": "^9.21|^10.0", - "illuminate/validation": "^9.21|^10.0", + "illuminate/console": "^9.21|^10.0|^11.0", + "illuminate/filesystem": "^9.21|^10.0|^11.0", + "illuminate/support": "^9.21|^10.0|^11.0", + "illuminate/validation": "^9.21|^10.0|^11.0", "php": "^8.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0", - "phpunit/phpunit": "^9.3" + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.3|^10.4" }, "type": "library", "extra": { @@ -2236,9 +2259,60 @@ "ui" ], "support": { - "source": "https://github.com/laravel/ui/tree/v4.3.0" + "source": "https://github.com/laravel/ui/tree/v4.4.0" }, - "time": "2023-05-09T19:47:28+00:00" + "time": "2024-01-12T15:56:45+00:00" + }, + { + "name": "ldc/sitemap-generator", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://lab.s-web.fr/ldc-web/projets/sitemap-generator.git", + "reference": "289502502bd63d02f3261e0f4e335e8eb33f5462" + }, + "dist": { + "type": "zip", + "url": "https://lab.s-web.fr/api/v4/projects/108/packages/composer/archives/ldc/sitemap-generator.zip?sha=289502502bd63d02f3261e0f4e335e8eb33f5462", + "reference": "289502502bd63d02f3261e0f4e335e8eb33f5462", + "shasum": "" + }, + "require": { + "illuminate/support": "~10", + "laravel/framework": "~10", + "spatie/laravel-sitemap": "^6.3.1" + }, + "require-dev": { + "slevomat/coding-standard": "^8.14" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LDC\\SitemapGenerator\\SitemapGeneratorServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LDC\\SitemapGenerator\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jérémy Munsch", + "email": "github@jeremydev.ovh", + "homepage": "https://jeremydev.ovh" + } + ], + "description": "Create sitemap.xml", + "keywords": [ + "Laravel", + "Sitemap" + ] }, { "name": "ldc/web-admin-secure-laravel", @@ -2642,7 +2716,72 @@ "type": "github" } ], - "time": "2023-08-30T10:23:59+00:00" + "time": "2023-12-04T10:14:46+00:00" + }, + { + "name": "league/glide", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/glide.git", + "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/glide/zipball/2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", + "reference": "2ff92c8f1edc80b74e2d3c5efccfc7223f74d407", + "shasum": "" + }, + "require": { + "intervention/image": "^2.7", + "league/flysystem": "^2.0|^3.0", + "php": "^7.2|^8.0", + "psr/http-message": "^1.0|^2.0" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "phpunit/php-token-stream": "^3.1|^4.0", + "phpunit/phpunit": "^8.5|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Glide\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Reinink", + "email": "jonathan@reinink.ca", + "homepage": "http://reinink.ca" + }, + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com", + "homepage": "https://titouangalopin.com" + } + ], + "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.", + "homepage": "http://glide.thephpleague.com", + "keywords": [ + "ImageMagick", + "editing", + "gd", + "image", + "imagick", + "league", + "manipulation", + "processing" + ], + "support": { + "issues": "https://github.com/thephpleague/glide/issues", + "source": "https://github.com/thephpleague/glide/tree/2.3.0" + }, + "time": "2023-07-08T06:26:07+00:00" }, { "name": "league/mime-type-detection", @@ -2948,16 +3087,16 @@ }, { "name": "nesbot/carbon", - "version": "2.72.1", + "version": "2.72.2", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78" + "reference": "3e7edc41b58d65509baeb0d4a14c8fa41d627130" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2b3b3db0a2d0556a177392ff1a3bf5608fa09f78", - "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/3e7edc41b58d65509baeb0d4a14c8fa41d627130", + "reference": "3e7edc41b58d65509baeb0d4a14c8fa41d627130", "shasum": "" }, "require": { @@ -3051,35 +3190,35 @@ "type": "tidelift" } ], - "time": "2023-12-08T23:47:49+00:00" + "time": "2024-01-19T00:21:53+00:00" }, { "name": "nette/schema", - "version": "v1.2.5", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": "7.1 - 8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.3" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", + "nette/tester": "^2.4", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -3111,22 +3250,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.5" + "source": "https://github.com/nette/schema/tree/v1.3.0" }, - "time": "2023-10-05T20:37:59+00:00" + "time": "2023-12-11T11:54:22+00:00" }, { "name": "nette/utils", - "version": "v4.0.3", + "version": "v4.0.4", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { @@ -3197,31 +3336,79 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.2" + "source": "https://github.com/nette/utils/tree/v4.0.4" }, - "time": "2023-09-19T11:58:07+00:00" + "time": "2024-01-17T16:50:36+00:00" }, { - "name": "nikic/php-parser", - "version": "v4.18.0", + "name": "nicmart/tree", + "version": "0.3.1", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + "url": "https://github.com/nicmart/Tree.git", + "reference": "c55ba47c64a3cb7454c22e6d630729fc2aab23ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "url": "https://api.github.com/repos/nicmart/Tree/zipball/c55ba47c64a3cb7454c22e6d630729fc2aab23ff", + "reference": "c55ba47c64a3cb7454c22e6d630729fc2aab23ff", "shasum": "" }, "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.8.0", + "ergebnis/license": "^1.0.0", + "ergebnis/php-cs-fixer-config": "^2.2.1", + "phpunit/phpunit": "^7.5.20" + }, + "type": "library", + "autoload": { + "psr-4": { + "Tree\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolò Martini", + "email": "nicmartnic@gmail.com" + } + ], + "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.3.1" + }, + "time": "2020-11-27T09:02:17+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.0.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -3229,7 +3416,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -3253,9 +3440,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" }, - "time": "2023-12-10T21:03:43+00:00" + "time": "2024-01-07T17:17:35+00:00" }, { "name": "nunomaduro/termwind", @@ -3498,16 +3685,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "2.0.45", + "version": "2.0.46", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "28d8f438a0064c9de80857e3270d071495544640" + "reference": "498e67a0c82bd5791fda9b0dd0f4ec8e8aebb02d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/28d8f438a0064c9de80857e3270d071495544640", - "reference": "28d8f438a0064c9de80857e3270d071495544640", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/498e67a0c82bd5791fda9b0dd0f4ec8e8aebb02d", + "reference": "498e67a0c82bd5791fda9b0dd0f4ec8e8aebb02d", "shasum": "" }, "require": { @@ -3588,7 +3775,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/2.0.45" + "source": "https://github.com/phpseclib/phpseclib/tree/2.0.46" }, "funding": [ { @@ -3604,7 +3791,7 @@ "type": "tidelift" } ], - "time": "2023-09-15T20:55:47+00:00" + "time": "2023-12-29T01:52:43+00:00" }, { "name": "psr/cache", @@ -4069,25 +4256,25 @@ }, { "name": "psy/psysh", - "version": "v0.11.22", + "version": "v0.12.0", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b" + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", "shasum": "" }, "require": { "ext-json": "*", "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + "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" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" @@ -4098,8 +4285,7 @@ "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ "bin/psysh" @@ -4107,7 +4293,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-0.11": "0.11.x-dev" + "dev-main": "0.12.x-dev" }, "bamarni-bin": { "bin-links": false, @@ -4143,9 +4329,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.22" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" }, - "time": "2023-10-14T21:56:36+00:00" + "time": "2023-12-20T15:28:09+00:00" }, { "name": "ralouphie/getallheaders", @@ -4374,16 +4560,16 @@ }, { "name": "sentry/sentry", - "version": "4.2.0", + "version": "4.4.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "d858b32e0f9733f41dab847a0dc8c8198ba17d8b" + "reference": "95a428a59ebddf786a27f09d19ec395a32f62082" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/d858b32e0f9733f41dab847a0dc8c8198ba17d8b", - "reference": "d858b32e0f9733f41dab847a0dc8c8198ba17d8b", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/95a428a59ebddf786a27f09d19ec395a32f62082", + "reference": "95a428a59ebddf786a27f09d19ec395a32f62082", "shasum": "" }, "require": { @@ -4447,7 +4633,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.2.0" + "source": "https://github.com/getsentry/sentry-php/tree/4.4.0" }, "funding": [ { @@ -4459,28 +4645,28 @@ "type": "custom" } ], - "time": "2023-12-19T16:43:17+00:00" + "time": "2024-01-23T09:49:55+00:00" }, { "name": "sentry/sentry-laravel", - "version": "4.1.1", + "version": "4.1.2", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-laravel.git", - "reference": "792944c1d0b7342d1635ac6d72fbdc2f32486310" + "reference": "fa38767be2f14505fd93bfa5acadb9dfec1fdeee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/792944c1d0b7342d1635ac6d72fbdc2f32486310", - "reference": "792944c1d0b7342d1635ac6d72fbdc2f32486310", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/fa38767be2f14505fd93bfa5acadb9dfec1fdeee", + "reference": "fa38767be2f14505fd93bfa5acadb9dfec1fdeee", "shasum": "" }, "require": { "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0", "nyholm/psr7": "^1.0", "php": "^7.2 | ^8.0", - "sentry/sentry": "^4.0", - "symfony/psr-http-message-bridge": "^1.0 | ^2.0" + "sentry/sentry": "^4.3", + "symfony/psr-http-message-bridge": "^1.0 | ^2.0 | ^6.0 | ^7.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.11", @@ -4536,7 +4722,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-laravel/issues", - "source": "https://github.com/getsentry/sentry-laravel/tree/4.1.1" + "source": "https://github.com/getsentry/sentry-laravel/tree/4.1.2" }, "funding": [ { @@ -4548,20 +4734,534 @@ "type": "custom" } ], - "time": "2023-10-12T14:38:46+00:00" + "time": "2024-01-16T12:46:27+00:00" }, { - "name": "symfony/console", - "version": "v6.3.4", + "name": "spatie/browsershot", + "version": "3.61.0", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" + "url": "https://github.com/spatie/browsershot.git", + "reference": "14d75679390b8b84a71b3a17dc5905928deeb887" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", - "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", + "url": "https://api.github.com/repos/spatie/browsershot/zipball/14d75679390b8b84a71b3a17dc5905928deeb887", + "reference": "14d75679390b8b84a71b3a17dc5905928deeb887", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^8.0", + "spatie/image": "^1.5.3|^2.0", + "spatie/temporary-directory": "^1.1|^2.0", + "symfony/process": "^4.2|^5.0|^6.0|^7.0" + }, + "require-dev": { + "pestphp/pest": "^1.20", + "spatie/phpunit-snapshot-assertions": "^4.2.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Browsershot\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://github.com/freekmurze", + "role": "Developer" + } + ], + "description": "Convert a webpage to an image or pdf using headless Chrome", + "homepage": "https://github.com/spatie/browsershot", + "keywords": [ + "chrome", + "convert", + "headless", + "image", + "pdf", + "puppeteer", + "screenshot", + "webpage" + ], + "support": { + "source": "https://github.com/spatie/browsershot/tree/3.61.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-12-21T10:00:28+00:00" + }, + { + "name": "spatie/crawler", + "version": "7.1.3", + "source": { + "type": "git", + "url": "https://github.com/spatie/crawler.git", + "reference": "f0f73947fdfaf68efdc68b73c4dbb28dfc785113" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/crawler/zipball/f0f73947fdfaf68efdc68b73c4dbb28dfc785113", + "reference": "f0f73947fdfaf68efdc68b73c4dbb28dfc785113", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^7.3", + "guzzlehttp/psr7": "^2.0", + "illuminate/collections": "^8.38|^9.0|^10.0", + "nicmart/tree": "^0.3.0", + "php": "^8.0", + "spatie/browsershot": "^3.45", + "spatie/robots-txt": "^2.0", + "symfony/dom-crawler": "^5.2|^6.0" + }, + "require-dev": { + "pestphp/pest": "^1.21", + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Crawler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be" + } + ], + "description": "Crawl all internal links found on a website", + "homepage": "https://github.com/spatie/crawler", + "keywords": [ + "crawler", + "link", + "spatie", + "website" + ], + "support": { + "issues": "https://github.com/spatie/crawler/issues", + "source": "https://github.com/spatie/crawler/tree/7.1.3" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-01-24T07:47:06+00:00" + }, + { + "name": "spatie/image", + "version": "2.2.7", + "source": { + "type": "git", + "url": "https://github.com/spatie/image.git", + "reference": "2f802853aab017aa615224daae1588054b5ab20e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image/zipball/2f802853aab017aa615224daae1588054b5ab20e", + "reference": "2f802853aab017aa615224daae1588054b5ab20e", + "shasum": "" + }, + "require": { + "ext-exif": "*", + "ext-json": "*", + "ext-mbstring": "*", + "league/glide": "^2.2.2", + "php": "^8.0", + "spatie/image-optimizer": "^1.7", + "spatie/temporary-directory": "^1.0|^2.0", + "symfony/process": "^3.0|^4.0|^5.0|^6.0" + }, + "require-dev": { + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5", + "symfony/var-dumper": "^4.0|^5.0|^6.0", + "vimeo/psalm": "^4.6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Image\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Manipulate images with an expressive API", + "homepage": "https://github.com/spatie/image", + "keywords": [ + "image", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/image/tree/2.2.7" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-07-24T13:54:13+00:00" + }, + { + "name": "spatie/image-optimizer", + "version": "1.7.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/image-optimizer.git", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/62f7463483d1bd975f6f06025d89d42a29608fe1", + "reference": "62f7463483d1bd975f6f06025d89d42a29608fe1", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.3|^8.0", + "psr/log": "^1.0 | ^2.0 | ^3.0", + "symfony/process": "^4.2|^5.0|^6.0|^7.0" + }, + "require-dev": { + "pestphp/pest": "^1.21", + "phpunit/phpunit": "^8.5.21|^9.4.4", + "symfony/var-dumper": "^4.2|^5.0|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ImageOptimizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily optimize images using PHP", + "homepage": "https://github.com/spatie/image-optimizer", + "keywords": [ + "image-optimizer", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/image-optimizer/issues", + "source": "https://github.com/spatie/image-optimizer/tree/1.7.2" + }, + "time": "2023-11-03T10:08:02+00:00" + }, + { + "name": "spatie/laravel-package-tools", + "version": "1.16.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", + "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5.24", + "spatie/pest-plugin-test-time": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.2" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-01-11T08:43:00+00:00" + }, + { + "name": "spatie/laravel-sitemap", + "version": "6.4.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-sitemap.git", + "reference": "d5115b430de517aaa29a6410f4cd6f1561766579" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-sitemap/zipball/d5115b430de517aaa29a6410f4cd6f1561766579", + "reference": "d5115b430de517aaa29a6410f4cd6f1561766579", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^7.2", + "illuminate/support": "^8.0|^9.0|^10.0", + "nesbot/carbon": "^2.63", + "php": "^8.0", + "spatie/crawler": "^7.0", + "spatie/laravel-package-tools": "^1.5", + "symfony/dom-crawler": "^5.1.14|^6.0" + }, + "require-dev": { + "mockery/mockery": "^1.4", + "orchestra/testbench": "^6.23|^7.0|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5", + "spatie/pest-plugin-snapshots": "^1.1", + "spatie/phpunit-snapshot-assertions": "^4.0", + "spatie/temporary-directory": "^2.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Sitemap\\SitemapServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\Sitemap\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Create and generate sitemaps with ease", + "homepage": "https://github.com/spatie/laravel-sitemap", + "keywords": [ + "laravel-sitemap", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-sitemap/tree/6.4.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + } + ], + "time": "2023-10-18T14:38:11+00:00" + }, + { + "name": "spatie/robots-txt", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/spatie/robots-txt.git", + "reference": "dacba2ba159364987392aa1b0002e196c5923970" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/robots-txt/zipball/dacba2ba159364987392aa1b0002e196c5923970", + "reference": "dacba2ba159364987392aa1b0002e196c5923970", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "larapack/dd": "^1.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Robots\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brent Roose", + "email": "brent@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Determine if a page may be crawled from robots.txt and robots meta tags", + "homepage": "https://github.com/spatie/robots-txt", + "keywords": [ + "robots-txt", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/robots-txt/issues", + "source": "https://github.com/spatie/robots-txt/tree/2.0.3" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-11-22T12:57:35+00:00" + }, + { + "name": "spatie/temporary-directory", + "version": "2.2.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TemporaryDirectory\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily create, use and destroy temporary directories", + "homepage": "https://github.com/spatie/temporary-directory", + "keywords": [ + "php", + "spatie", + "temporary-directory" + ], + "support": { + "issues": "https://github.com/spatie/temporary-directory/issues", + "source": "https://github.com/spatie/temporary-directory/tree/2.2.1" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2023-12-25T11:46:58+00:00" + }, + { + "name": "symfony/console", + "version": "v6.4.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/0254811a143e6bc6c8deea08b589a7e68a37f625", + "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625", "shasum": "" }, "require": { @@ -4569,7 +5269,7 @@ "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^5.4|^6.0" + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { "symfony/dependency-injection": "<5.4", @@ -4583,12 +5283,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^5.4|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/event-dispatcher": "^5.4|^6.0", - "symfony/lock": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/var-dumper": "^5.4|^6.0" + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -4622,7 +5326,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.3.4" + "source": "https://github.com/symfony/console/tree/v6.4.2" }, "funding": [ { @@ -4638,7 +5342,7 @@ "type": "tidelift" } ], - "time": "2023-08-16T10:10:12+00:00" + "time": "2023-12-10T16:15:48+00:00" }, { "name": "symfony/css-selector", @@ -4916,16 +5620,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v7.0.0", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e" + "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c459b40ffe67c49af6fd392aac374c9edf8a027e", - "reference": "c459b40ffe67c49af6fd392aac374c9edf8a027e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/098b62ae81fdd6cbf941f355059f617db28f4f9a", + "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a", "shasum": "" }, "require": { @@ -4976,7 +5680,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.0.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.2" }, "funding": [ { @@ -4992,7 +5696,7 @@ "type": "tidelift" } ], - "time": "2023-07-27T16:29:09+00:00" + "time": "2023-12-27T22:24:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -5116,7 +5820,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.3.5" + "source": "https://github.com/symfony/finder/tree/v6.4.0" }, "funding": [ { @@ -5132,190 +5836,20 @@ "type": "tidelift" } ], - "time": "2023-09-26T12:56:25+00:00" - }, - { - "name": "symfony/http-client", - "version": "v6.3.5", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client.git", - "reference": "213e564da4cbf61acc9728d97e666bcdb868c10d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/213e564da4cbf61acc9728d97e666bcdb868c10d", - "reference": "213e564da4cbf61acc9728d97e666bcdb868c10d", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/log": "^1|^2|^3", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/http-client-contracts": "^3", - "symfony/service-contracts": "^2.5|^3" - }, - "conflict": { - "php-http/discovery": "<1.15", - "symfony/http-foundation": "<6.3" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "1.0", - "symfony/http-client-implementation": "3.0" - }, - "require-dev": { - "amphp/amp": "^2.5", - "amphp/http-client": "^4.2.1", - "amphp/http-tunnel": "^1.0", - "amphp/socket": "^1.1", - "guzzlehttp/promises": "^1.4", - "nyholm/psr7": "^1.0", - "php-http/httplug": "^1.0|^2.0", - "psr/http-client": "^1.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/http-kernel": "^5.4|^6.0", - "symfony/process": "^5.4|^6.0", - "symfony/stopwatch": "^5.4|^6.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", - "homepage": "https://symfony.com", - "keywords": [ - "http" - ], - "support": { - "source": "https://github.com/symfony/http-client/tree/v6.3.5" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-09-29T15:57:12+00:00" - }, - { - "name": "symfony/http-client-contracts", - "version": "v3.3.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb", - "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "/Test/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2023-10-31T17:30:12+00:00" }, { "name": "symfony/http-foundation", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "44a6d39a9cc11e154547d882d5aac1e014440771" + "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/44a6d39a9cc11e154547d882d5aac1e014440771", - "reference": "44a6d39a9cc11e154547d882d5aac1e014440771", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/172d807f9ef3fc3fbed8377cc57c20d389269271", + "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271", "shasum": "" }, "require": { @@ -5363,7 +5897,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.0" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.2" }, "funding": [ { @@ -5379,20 +5913,20 @@ "type": "tidelift" } ], - "time": "2023-11-20T16:41:16+00:00" + "time": "2023-12-27T22:16:42+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.1", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "2953274c16a229b3933ef73a6898e18388e12e1b" + "reference": "13e8387320b5942d0dc408440c888e2d526efef4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2953274c16a229b3933ef73a6898e18388e12e1b", - "reference": "2953274c16a229b3933ef73a6898e18388e12e1b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/13e8387320b5942d0dc408440c888e2d526efef4", + "reference": "13e8387320b5942d0dc408440c888e2d526efef4", "shasum": "" }, "require": { @@ -5476,7 +6010,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/v6.4.1" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.2" }, "funding": [ { @@ -5492,20 +6026,20 @@ "type": "tidelift" } ], - "time": "2023-12-01T17:02:02+00:00" + "time": "2023-12-30T15:31:44+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba" + "reference": "6da89e5c9202f129717a770a03183fb140720168" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba", - "reference": "ca8dcf8892cdc5b4358ecf2528429bb5e706f7ba", + "url": "https://api.github.com/repos/symfony/mailer/zipball/6da89e5c9202f129717a770a03183fb140720168", + "reference": "6da89e5c9202f129717a770a03183fb140720168", "shasum": "" }, "require": { @@ -5556,7 +6090,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.0" + "source": "https://github.com/symfony/mailer/tree/v6.4.2" }, "funding": [ { @@ -5572,7 +6106,7 @@ "type": "tidelift" } ], - "time": "2023-11-12T18:02:22+00:00" + "time": "2023-12-19T09:12:31+00:00" }, { "name": "symfony/mime", @@ -6465,16 +6999,16 @@ }, { "name": "symfony/process", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa" + "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/191703b1566d97a5425dc969e4350d32b8ef17aa", - "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa", + "url": "https://api.github.com/repos/symfony/process/zipball/c4b1ef0bc80533d87a2e969806172f1c2a980241", + "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241", "shasum": "" }, "require": { @@ -6506,7 +7040,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.0" + "source": "https://github.com/symfony/process/tree/v6.4.2" }, "funding": [ { @@ -6522,47 +7056,42 @@ "type": "tidelift" } ], - "time": "2023-11-17T21:06:49+00:00" + "time": "2023-12-22T16:42:54+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v2.3.1", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e" + "reference": "c5e973032e9a32c6f1bfa87d7832853b84cbaf22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e", - "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/c5e973032e9a32c6f1bfa87d7832853b84cbaf22", + "reference": "c5e973032e9a32c6f1bfa87d7832853b84cbaf22", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/http-message": "^1.0 || ^2.0", - "symfony/deprecation-contracts": "^2.5 || ^3.0", - "symfony/http-foundation": "^5.4 || ^6.0" + "php": ">=8.2", + "psr/http-message": "^1.0|^2.0", + "symfony/http-foundation": "^6.4|^7.0" + }, + "conflict": { + "php-http/discovery": "<1.15", + "symfony/http-kernel": "<6.4" }, "require-dev": { "nyholm/psr7": "^1.1", - "psr/log": "^1.1 || ^2 || ^3", - "symfony/browser-kit": "^5.4 || ^6.0", - "symfony/config": "^5.4 || ^6.0", - "symfony/event-dispatcher": "^5.4 || ^6.0", - "symfony/framework-bundle": "^5.4 || ^6.0", - "symfony/http-kernel": "^5.4 || ^6.0", - "symfony/phpunit-bridge": "^6.2" - }, - "suggest": { - "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" + "php-http/discovery": "^1.15", + "psr/log": "^1.1.4|^2|^3", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/framework-bundle": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0" }, "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-main": "2.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\PsrHttpMessage\\": "" @@ -6582,11 +7111,11 @@ }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "PSR HTTP message bridge", - "homepage": "http://symfony.com", + "homepage": "https://symfony.com", "keywords": [ "http", "http-message", @@ -6594,8 +7123,7 @@ "psr-7" ], "support": { - "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.0.2" }, "funding": [ { @@ -6611,20 +7139,20 @@ "type": "tidelift" } ], - "time": "2023-07-26T11:53:26+00:00" + "time": "2023-12-28T19:18:20+00:00" }, { "name": "symfony/routing", - "version": "v6.4.1", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "0c95c164fdba18b12523b75e64199ca3503e6d40" + "reference": "98eab13a07fddc85766f1756129c69f207ffbc21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/0c95c164fdba18b12523b75e64199ca3503e6d40", - "reference": "0c95c164fdba18b12523b75e64199ca3503e6d40", + "url": "https://api.github.com/repos/symfony/routing/zipball/98eab13a07fddc85766f1756129c69f207ffbc21", + "reference": "98eab13a07fddc85766f1756129c69f207ffbc21", "shasum": "" }, "require": { @@ -6678,7 +7206,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.1" + "source": "https://github.com/symfony/routing/tree/v6.4.2" }, "funding": [ { @@ -6694,25 +7222,25 @@ "type": "tidelift" } ], - "time": "2023-12-01T14:54:37+00:00" + "time": "2023-12-29T15:34:34+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", - "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", + "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^2.0" + "psr/container": "^1.1|^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -6760,7 +7288,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" }, "funding": [ { @@ -6776,20 +7304,20 @@ "type": "tidelift" } ], - "time": "2023-07-30T20:28:31+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/string", - "version": "v7.0.0", + "version": "v7.0.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620" + "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92bd2bfbba476d4a1838e5e12168bef2fd1e6620", - "reference": "92bd2bfbba476d4a1838e5e12168bef2fd1e6620", + "url": "https://api.github.com/repos/symfony/string/zipball/cc78f14f91f5e53b42044d0620961c48028ff9f5", + "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5", "shasum": "" }, "require": { @@ -6846,7 +7374,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.0" + "source": "https://github.com/symfony/string/tree/v7.0.2" }, "funding": [ { @@ -6862,20 +7390,20 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:40:23+00:00" + "time": "2023-12-10T16:54:46+00:00" }, { "name": "symfony/translation", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37" + "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37", - "reference": "b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37", + "url": "https://api.github.com/repos/symfony/translation/zipball/a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", + "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", "shasum": "" }, "require": { @@ -6941,7 +7469,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.0" + "source": "https://github.com/symfony/translation/tree/v6.4.2" }, "funding": [ { @@ -6957,20 +7485,20 @@ "type": "tidelift" } ], - "time": "2023-11-29T08:14:36+00:00" + "time": "2023-12-18T09:25:29+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.4.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5" + "reference": "06450585bf65e978026bda220cdebca3f867fde7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/dee0c6e5b4c07ce851b462530088e64b255ac9c5", - "reference": "dee0c6e5b4c07ce851b462530088e64b255ac9c5", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", + "reference": "06450585bf65e978026bda220cdebca3f867fde7", "shasum": "" }, "require": { @@ -7019,7 +7547,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" }, "funding": [ { @@ -7035,7 +7563,7 @@ "type": "tidelift" } ], - "time": "2023-07-25T15:08:44+00:00" + "time": "2023-12-26T14:02:43+00:00" }, { "name": "symfony/uid", @@ -7113,16 +7641,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.4.0", + "version": "v6.4.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c40f7d17e91d8b407582ed51a2bbf83c52c367f6" + "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c40f7d17e91d8b407582ed51a2bbf83c52c367f6", - "reference": "c40f7d17e91d8b407582ed51a2bbf83c52c367f6", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/68d6573ec98715ddcae5a0a85bee3c1c27a4c33f", + "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f", "shasum": "" }, "require": { @@ -7178,7 +7706,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.0" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.2" }, "funding": [ { @@ -7194,7 +7722,7 @@ "type": "tidelift" } ], - "time": "2023-11-09T08:28:32+00:00" + "time": "2023-12-28T19:16:56+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -8029,16 +8557,16 @@ }, { "name": "fakerphp/faker", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01" + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", "shasum": "" }, "require": { @@ -8064,11 +8592,6 @@ "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.21-dev" - } - }, "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -8091,9 +8614,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" }, - "time": "2023-06-12T08:44:38+00:00" + "time": "2024-01-02T13:46:09+00:00" }, { "name": "filp/whoops", @@ -8218,17 +8741,118 @@ "time": "2020-07-09T08:09:16+00:00" }, { - "name": "laravel-lang/attributes", - "version": "2.7.0", + "name": "larastan/larastan", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/Laravel-Lang/attributes.git", - "reference": "a171cd492d29c4aa385bdd7e0f5785d9032e9067" + "url": "https://github.com/larastan/larastan.git", + "reference": "b7cc6a29c457a7d4f3de90466392ae9ad3e17022" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/attributes/zipball/a171cd492d29c4aa385bdd7e0f5785d9032e9067", - "reference": "a171cd492d29c4aa385bdd7e0f5785d9032e9067", + "url": "https://api.github.com/repos/larastan/larastan/zipball/b7cc6a29c457a7d4f3de90466392ae9ad3e17022", + "reference": "b7cc6a29c457a7d4f3de90466392ae9ad3e17022", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/console": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/container": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/contracts": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/database": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/http": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/pipeline": "^9.52.16 || ^10.28.0 || ^11.0", + "illuminate/support": "^9.52.16 || ^10.28.0 || ^11.0", + "php": "^8.0.2", + "phpmyadmin/sql-parser": "^5.8.2", + "phpstan/phpstan": "^1.10.50" + }, + "require-dev": { + "nikic/php-parser": "^4.17.1", + "orchestra/canvas": "^7.11.1 || ^8.11.0 || ^9.0.0", + "orchestra/testbench": "^7.33.0 || ^8.13.0 || ^9.0.0", + "phpunit/phpunit": "^9.6.13 || ^10.5" + }, + "suggest": { + "orchestra/testbench": "Using Larastan for analysing a package needs Testbench" + }, + "type": "phpstan-extension", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Larastan\\Larastan\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Can Vural", + "email": "can9119@gmail.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Larastan - Discover bugs in your code without running it. A phpstan/phpstan wrapper for Laravel", + "keywords": [ + "PHPStan", + "code analyse", + "code analysis", + "larastan", + "laravel", + "package", + "php", + "static analysis" + ], + "support": { + "issues": "https://github.com/larastan/larastan/issues", + "source": "https://github.com/larastan/larastan/tree/v2.8.1" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/canvural", + "type": "github" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2024-01-08T09:11:17+00:00" + }, + { + "name": "laravel-lang/attributes", + "version": "2.9.4", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/attributes.git", + "reference": "398008ea9df5f568a7195c47f9853d983161e478" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/attributes/zipball/398008ea9df5f568a7195c47f9853d983161e478", + "reference": "398008ea9df5f568a7195c47f9853d983161e478", "shasum": "" }, "require": { @@ -8268,7 +8892,7 @@ "homepage": "https://github.com/Laravel-Lang" } ], - "description": "List of 78 languages for form field names", + "description": "List of 126 languages for form field names", "keywords": [ "attributes", "fields", @@ -8282,9 +8906,9 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/attributes/issues", - "source": "https://github.com/Laravel-Lang/attributes/tree/2.7.0" + "source": "https://github.com/Laravel-Lang/attributes/tree/2.9.4" }, - "time": "2023-12-16T16:42:51+00:00" + "time": "2024-01-25T00:41:17+00:00" }, { "name": "laravel-lang/common", @@ -8372,16 +8996,16 @@ }, { "name": "laravel-lang/http-statuses", - "version": "3.7.0", + "version": "3.8.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/http-statuses.git", - "reference": "4f2c0e3adb49df365b31558916c76155bb9a4b15" + "reference": "beb0ee5943bf7a0b811d55851729876d883288a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/http-statuses/zipball/4f2c0e3adb49df365b31558916c76155bb9a4b15", - "reference": "4f2c0e3adb49df365b31558916c76155bb9a4b15", + "url": "https://api.github.com/repos/Laravel-Lang/http-statuses/zipball/beb0ee5943bf7a0b811d55851729876d883288a8", + "reference": "beb0ee5943bf7a0b811d55851729876d883288a8", "shasum": "" }, "require": { @@ -8421,7 +9045,7 @@ "homepage": "https://github.com/Laravel-Lang" } ], - "description": "List of 78 languages for HTTP statuses", + "description": "List of 126 languages for HTTP statuses", "keywords": [ "http", "lang", @@ -8433,9 +9057,9 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/http-statuses/issues", - "source": "https://github.com/Laravel-Lang/http-statuses/tree/3.7.0" + "source": "https://github.com/Laravel-Lang/http-statuses/tree/3.8.0" }, - "time": "2023-12-16T16:53:47+00:00" + "time": "2023-12-30T09:28:20+00:00" }, { "name": "laravel-lang/lang", @@ -8742,16 +9366,16 @@ }, { "name": "laravel/pint", - "version": "v1.13.7", + "version": "v1.13.10", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "4157768980dbd977f1c4b4cc94997416d8b30ece" + "reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/4157768980dbd977f1c4b4cc94997416d8b30ece", - "reference": "4157768980dbd977f1c4b4cc94997416d8b30ece", + "url": "https://api.github.com/repos/laravel/pint/zipball/e2b5060885694ca30ac008c05dc9d47f10ed1abf", + "reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf", "shasum": "" }, "require": { @@ -8762,13 +9386,13 @@ "php": "^8.1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.38.0", - "illuminate/view": "^10.30.1", + "friendsofphp/php-cs-fixer": "^3.47.1", + "illuminate/view": "^10.41.0", + "larastan/larastan": "^2.8.1", "laravel-zero/framework": "^10.3.0", - "mockery/mockery": "^1.6.6", - "nunomaduro/larastan": "^2.6.4", + "mockery/mockery": "^1.6.7", "nunomaduro/termwind": "^1.15.1", - "pestphp/pest": "^2.24.2" + "pestphp/pest": "^2.31.0" }, "bin": [ "builds/pint" @@ -8804,20 +9428,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2023-12-05T19:43:12+00:00" + "time": "2024-01-22T09:04:15+00:00" }, { "name": "laravel/sail", - "version": "v1.26.3", + "version": "v1.27.2", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "fa1ad5fbb03686dfc752bfd1861d86091cc1c32d" + "reference": "2276a8d9d6cfdcaad98bf67a34331d100149d5b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/fa1ad5fbb03686dfc752bfd1861d86091cc1c32d", - "reference": "fa1ad5fbb03686dfc752bfd1861d86091cc1c32d", + "url": "https://api.github.com/repos/laravel/sail/zipball/2276a8d9d6cfdcaad98bf67a34331d100149d5b6", + "reference": "2276a8d9d6cfdcaad98bf67a34331d100149d5b6", "shasum": "" }, "require": { @@ -8869,7 +9493,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-12-02T18:26:39+00:00" + "time": "2024-01-21T17:13:42+00:00" }, { "name": "mockery/mockery", @@ -9221,17 +9845,105 @@ "time": "2022-02-21T01:04:05+00:00" }, { - "name": "phpstan/phpdoc-parser", - "version": "1.24.5", + "name": "phpmyadmin/sql-parser", + "version": "5.9.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc" + "url": "https://github.com/phpmyadmin/sql-parser.git", + "reference": "011fa18a4e55591fac6545a821921dd1d61c6984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fedf211ff14ec8381c9bf5714e33a7a552dd1acc", - "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/011fa18a4e55591fac6545a821921dd1d61c6984", + "reference": "011fa18a4e55591fac6545a821921dd1d61c6984", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpmyadmin/motranslator": "<3.0" + }, + "require-dev": { + "phpbench/phpbench": "^1.1", + "phpmyadmin/coding-standard": "^3.0", + "phpmyadmin/motranslator": "^4.0 || ^5.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.9.12", + "phpstan/phpstan-phpunit": "^1.3.3", + "phpunit/php-code-coverage": "*", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "^0.16.1", + "vimeo/psalm": "^4.11", + "zumba/json-serializer": "~3.0.2" + }, + "suggest": { + "ext-mbstring": "For best performance", + "phpmyadmin/motranslator": "Translate messages to your favorite locale" + }, + "bin": [ + "bin/highlight-query", + "bin/lint-query", + "bin/sql-parser", + "bin/tokenize-query" + ], + "type": "library", + "autoload": { + "psr-4": { + "PhpMyAdmin\\SqlParser\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "The phpMyAdmin Team", + "email": "developers@phpmyadmin.net", + "homepage": "https://www.phpmyadmin.net/team/" + } + ], + "description": "A validating SQL lexer and parser with a focus on MySQL dialect.", + "homepage": "https://github.com/phpmyadmin/sql-parser", + "keywords": [ + "analysis", + "lexer", + "parser", + "query linter", + "sql", + "sql lexer", + "sql linter", + "sql parser", + "sql syntax highlighter", + "sql tokenizer" + ], + "support": { + "issues": "https://github.com/phpmyadmin/sql-parser/issues", + "source": "https://github.com/phpmyadmin/sql-parser" + }, + "funding": [ + { + "url": "https://www.phpmyadmin.net/donate/", + "type": "other" + } + ], + "time": "2024-01-20T20:34:02+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.25.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", "shasum": "" }, "require": { @@ -9263,29 +9975,91 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.5" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" }, - "time": "2023-12-16T09:33:33+00:00" + "time": "2024-01-04T17:06:16+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "10.1.10", + "name": "phpstan/phpstan", + "version": "1.10.57", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "599109c8ca6bae97b23482d557d2874c25a65e59" + "url": "https://github.com/phpstan/phpstan.git", + "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/599109c8ca6bae97b23482d557d2874c25a65e59", - "reference": "599109c8ca6bae97b23482d557d2874c25a65e59", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e", + "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" + }, + "bin": [ + "phpstan", + "phpstan.phar" + ], + "type": "library", + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], + "support": { + "docs": "https://phpstan.org/user-guide/getting-started", + "forum": "https://github.com/phpstan/phpstan/discussions", + "issues": "https://github.com/phpstan/phpstan/issues", + "security": "https://github.com/phpstan/phpstan/security/policy", + "source": "https://github.com/phpstan/phpstan-src" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://github.com/phpstan", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" + } + ], + "time": "2024-01-24T11:51:34+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "10.1.11", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "78c3b7625965c2513ee96569a4dbb62601784145" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145", + "reference": "78c3b7625965c2513ee96569a4dbb62601784145", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1", "phpunit/php-file-iterator": "^4.0", "phpunit/php-text-template": "^3.0", @@ -9335,7 +10109,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.10" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11" }, "funding": [ { @@ -9343,7 +10117,7 @@ "type": "github" } ], - "time": "2023-12-11T06:28:43+00:00" + "time": "2023-12-21T15:38:30+00:00" }, { "name": "phpunit/php-file-iterator", @@ -9590,16 +10364,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.3", + "version": "10.5.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "6fce887c71076a73f32fd3e0774a6833fc5c7f19" + "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6fce887c71076a73f32fd3e0774a6833fc5c7f19", - "reference": "6fce887c71076a73f32fd3e0774a6833fc5c7f19", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe", + "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe", "shasum": "" }, "require": { @@ -9671,7 +10445,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.3" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9" }, "funding": [ { @@ -9687,7 +10461,7 @@ "type": "tidelift" } ], - "time": "2023-12-13T07:25:23+00:00" + "time": "2024-01-22T14:35:40+00:00" }, { "name": "sebastian/cli-parser", @@ -9935,20 +10709,20 @@ }, { "name": "sebastian/complexity", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -9957,7 +10731,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -9981,7 +10755,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, "funding": [ { @@ -9989,20 +10763,20 @@ "type": "github" } ], - "time": "2023-09-28T11:50:59+00:00" + "time": "2023-12-21T08:37:17+00:00" }, { "name": "sebastian/diff", - "version": "5.0.3", + "version": "5.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b" + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", "shasum": "" }, "require": { @@ -10015,7 +10789,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -10048,7 +10822,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0" }, "funding": [ { @@ -10056,7 +10830,7 @@ "type": "github" } ], - "time": "2023-05-01T07:48:21+00:00" + "time": "2023-12-22T10:55:06+00:00" }, { "name": "sebastian/environment", @@ -10264,20 +11038,20 @@ }, { "name": "sebastian/lines-of-code", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d" + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -10310,7 +11084,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -10318,7 +11092,7 @@ "type": "github" } ], - "time": "2023-08-31T09:25:50+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { "name": "sebastian/object-enumerator", @@ -10803,16 +11577,16 @@ }, { "name": "spatie/ignition", - "version": "1.11.3", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044" + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", + "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d", + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d", "shasum": "" }, "require": { @@ -10882,39 +11656,39 @@ "type": "github" } ], - "time": "2023-10-18T14:09:40+00:00" + "time": "2024-01-03T15:49:39+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.3.2", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "4800661a195e15783477d99f7f8f669a49793996" + "reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/4800661a195e15783477d99f7f8f669a49793996", - "reference": "4800661a195e15783477d99f7f8f669a49793996", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/005e1e7b1232f3b22d7e7be3f602693efc7dba67", + "reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^10.0", + "illuminate/support": "^10.0|^11.0", "php": "^8.1", "spatie/flare-client-php": "^1.3.5", "spatie/ignition": "^1.9", - "symfony/console": "^6.2.3", - "symfony/var-dumper": "^6.2.3" + "symfony/console": "^6.2.3|^7.0", + "symfony/var-dumper": "^6.2.3|^7.0" }, "require-dev": { - "livewire/livewire": "^2.11", + "livewire/livewire": "^2.11|^3.3.5", "mockery/mockery": "^1.5.1", - "openai-php/client": "^0.3.4", - "orchestra/testbench": "^8.0", - "pestphp/pest": "^1.22.3", + "openai-php/client": "^0.8.1", + "orchestra/testbench": "^8.0|^9.0", + "pestphp/pest": "^2.30", "phpstan/extension-installer": "^1.2", "phpstan/phpstan-deprecation-rules": "^1.1.1", "phpstan/phpstan-phpunit": "^1.3.3", @@ -10974,20 +11748,20 @@ "type": "github" } ], - "time": "2023-12-15T13:44:49+00:00" + "time": "2024-01-12T13:14:58+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.8.0", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "5805f7a4e4958dbb5e944ef1e6edae0a303765e7" + "reference": "14f5fff1e64118595db5408e946f3a22c75807f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5805f7a4e4958dbb5e944ef1e6edae0a303765e7", - "reference": "5805f7a4e4958dbb5e944ef1e6edae0a303765e7", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7", + "reference": "14f5fff1e64118595db5408e946f3a22c75807f7", "shasum": "" }, "require": { @@ -10997,11 +11771,11 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, "bin": [ - "bin/phpcs", - "bin/phpcbf" + "bin/phpcbf", + "bin/phpcs" ], "type": "library", "extra": { @@ -11054,7 +11828,7 @@ "type": "open_collective" } ], - "time": "2023-12-08T12:32:31+00:00" + "time": "2024-01-11T20:47:48+00:00" }, { "name": "symfony/polyfill-php81", @@ -11267,4 +12041,4 @@ }, "platform-dev": [], "plugin-api-version": "2.3.0" -} \ No newline at end of file +} diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 8a8bc99..78b3567 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -36,7 +36,7 @@ class UserFactory extends Factory */ public function unverified(): static { - // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass + // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found return $this->state(fn (array $attributes) => [ 'email_verified_at' => null, ]); diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 0000000..df74d87 --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,10 @@ +includes: + - vendor/larastan/larastan/extension.neon + +parameters: + + paths: + - app/ + + # Level 9 is the highest level + level: 5