diff --git a/app/Filament/Clusters/Administration/AdministrationCluster.php b/app/Filament/Clusters/Administration/AdministrationCluster.php index 9aa250c..3f59f96 100644 --- a/app/Filament/Clusters/Administration/AdministrationCluster.php +++ b/app/Filament/Clusters/Administration/AdministrationCluster.php @@ -3,12 +3,15 @@ namespace App\Filament\Clusters\Administration; use BackedEnum; +use BezhanSalleh\FilamentShield\Traits\HasPageShield; use Filament\Clusters\Cluster; use Filament\Pages\Enums\SubNavigationPosition; use Filament\Support\Icons\Heroicon; class AdministrationCluster extends Cluster { + use HasPageShield; + protected static string|BackedEnum|null $navigationIcon = Heroicon::AdjustmentsHorizontal; protected static ?SubNavigationPosition $subNavigationPosition = SubNavigationPosition::Start; diff --git a/app/Filament/Clusters/Newsletter/NewsletterCluster.php b/app/Filament/Clusters/Newsletter/NewsletterCluster.php index 8bdf0a8..c4e47da 100644 --- a/app/Filament/Clusters/Newsletter/NewsletterCluster.php +++ b/app/Filament/Clusters/Newsletter/NewsletterCluster.php @@ -3,12 +3,15 @@ namespace App\Filament\Clusters\Newsletter; use BackedEnum; +use BezhanSalleh\FilamentShield\Traits\HasPageShield; use Filament\Clusters\Cluster; use Filament\Pages\Enums\SubNavigationPosition; use Filament\Support\Icons\Heroicon; class NewsletterCluster extends Cluster { + use HasPageShield; + protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedEnvelope; protected static ?SubNavigationPosition $subNavigationPosition = SubNavigationPosition::Top; diff --git a/app/Filament/Resources/Users/Schemas/UserForm.php b/app/Filament/Resources/Users/Schemas/UserForm.php index 5be9bbe..efc5039 100644 --- a/app/Filament/Resources/Users/Schemas/UserForm.php +++ b/app/Filament/Resources/Users/Schemas/UserForm.php @@ -8,6 +8,7 @@ use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Schemas\Components\Section; use Filament\Schemas\Schema; +use Illuminate\Support\Facades\Hash; use Illuminate\Validation\Rules\Password; class UserForm @@ -39,20 +40,26 @@ class UserForm ->prefixIcon('phosphor-envelope') ->label('E-Mail'), TextInput::make('password') - ->prefixIcon('phosphor-lock') ->label('Passwort') - ->password() // Masks the input - ->required() + ->password() ->revealable() - ->rule(Password::min(8)->mixedCase()->numbers()->symbols()->uncompromised()) // Enforces strong password policies - ->dehydrateStateUsing(fn ($state) => bcrypt($state)) // Hashes the password before saving + ->prefixIcon('phosphor-lock') + ->dehydrated(fn ($state): bool => filled($state)) + ->dehydrateStateUsing(fn ($state): string => Hash::make($state)) + ->same('password_confirmation') + ->rule(Password::min(8) + ->mixedCase() + ->numbers() + ->symbols() + ->uncompromised()) ->label('Password'), TextInput::make('password_confirmation') + ->label('Passwort Bestätigen') ->prefixIcon('phosphor-lock') - ->password() // Masks the input - ->required() - ->same('password') // Validates that this matches the 'password' field - ->label('Passwort Bestätigen'), + ->password() + ->dehydrated(false) + ->same('password') + ->revealable(), Checkbox::make('agb_akzeptiert') ->default(false) ->label('Allgemeinen Geschäftsbedinnungen akzeptieren') diff --git a/app/Policies/MailAddressePolicy.php b/app/Policies/MailAddressePolicy.php new file mode 100644 index 0000000..7f15771 --- /dev/null +++ b/app/Policies/MailAddressePolicy.php @@ -0,0 +1,66 @@ +setCompiledRoutes( 6 => NULL, ), ), - '/app/newsletter/mail-adressens/create' => - array ( - 0 => - array ( - 0 => - array ( - '_route' => 'filament.admin.newsletter.resources.mail-adressens.create', - ), - 1 => NULL, - 2 => - array ( - 'GET' => 0, - 'HEAD' => 1, - ), - 3 => NULL, - 4 => false, - 5 => false, - 6 => NULL, - ), - ), '/app/administration/methodes' => array ( 0 => @@ -591,7 +571,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::c8Aa0gB5BhsyJxz2', + '_route' => 'generated::8l1m08IaydGHoZtQ', ), 1 => NULL, 2 => @@ -611,7 +591,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::1gix3NM8CNsYg1oM', + '_route' => 'generated::L25UX9GUf5zsHcYU', ), 1 => NULL, 2 => @@ -669,7 +649,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::4ALnCKgsRg5pNXr4', + '_route' => 'generated::JWu4k2FoAsQpyWbW', ), 1 => NULL, 2 => @@ -689,7 +669,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::9tM0beuDkUZJcW3v', + '_route' => 'generated::dInoVqs5Ir3lVauw', ), 1 => NULL, 2 => @@ -709,7 +689,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::TggslUndiRqH7lMm', + '_route' => 'generated::Kz1ziyKTJqxvCjeu', ), 1 => NULL, 2 => @@ -729,7 +709,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::8pknM1HUqBZ8CD0A', + '_route' => 'generated::GtSXZzHMv2panaHd', ), 1 => NULL, 2 => @@ -749,7 +729,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::fsCBG8FQNzd5aUQx', + '_route' => 'generated::D2w2sRT8mFiPFAUv', ), 1 => NULL, 2 => @@ -766,7 +746,7 @@ app('router')->setCompiledRoutes( ), 2 => array ( - 0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/app/(?|e(?|mail\\-(?|verification/verify/([^/]++)/([^/]++)(*:156)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:212)|/block(*:226)))|xcel(?|nutzwerte/([^/]++)(*:261)|aufstellung/([^/]++)(*:289)))|newsletter/mail\\-adressens/([^/]++)/edit(*:339)|p(?|rojektes/([^/]++)/edit(*:373)|df/([^/]++)/([^/]++)(*:401))|administration/shield/roles/([^/]++)(?|(*:449)|/edit(*:462)))|/livewire/preview\\-file/([^/]++)(*:504)|/storage/(.*)(?|(*:528)))/?$}sDu', + 0 => '{^(?|/filament/(?|exports/([^/]++)/download(*:45)|imports/([^/]++)/failed\\-rows/download(*:90))|/app/(?|e(?|mail\\-(?|verification/verify/([^/]++)/([^/]++)(*:156)|change\\-verification/verify/([^/]++)/([^/]++)(?|(*:212)|/block(*:226)))|xcel(?|nutzwerte/([^/]++)(*:261)|aufstellung/([^/]++)(*:289)))|p(?|rojektes/([^/]++)/edit(*:325)|df/([^/]++)/([^/]++)(*:353))|administration/shield/roles/([^/]++)(?|(*:401)|/edit(*:414)))|/livewire/preview\\-file/([^/]++)(*:456)|/storage/(.*)(?|(*:480)))/?$}sDu', ), 3 => array ( @@ -934,30 +914,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 339 => - array ( - 0 => - array ( - 0 => - array ( - '_route' => 'filament.admin.newsletter.resources.mail-adressens.edit', - ), - 1 => - array ( - 0 => 'record', - ), - 2 => - array ( - 'GET' => 0, - 'HEAD' => 1, - ), - 3 => NULL, - 4 => false, - 5 => false, - 6 => NULL, - ), - ), - 373 => + 325 => array ( 0 => array ( @@ -980,7 +937,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 401 => + 353 => array ( 0 => array ( @@ -1004,7 +961,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 449 => + 401 => array ( 0 => array ( @@ -1027,7 +984,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 462 => + 414 => array ( 0 => array ( @@ -1050,7 +1007,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 504 => + 456 => array ( 0 => array ( @@ -1073,7 +1030,7 @@ app('router')->setCompiledRoutes( 6 => NULL, ), ), - 528 => + 480 => array ( 0 => array ( @@ -2332,112 +2289,6 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'filament.admin.newsletter.resources.mail-adressens.create' => - array ( - 'methods' => - array ( - 0 => 'GET', - 1 => 'HEAD', - ), - 'uri' => 'app/newsletter/mail-adressens/create', - 'action' => - array ( - 'domain' => NULL, - 'middleware' => - array ( - 0 => 'panel:admin', - 1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies', - 2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse', - 3 => 'Illuminate\\Session\\Middleware\\StartSession', - 4 => 'Filament\\Http\\Middleware\\AuthenticateSession', - 5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession', - 6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken', - 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', - 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', - 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', - 11 => 'Filament\\Http\\Middleware\\Authenticate', - 12 => 'verified:filament.admin.auth.email-verification.prompt', - ), - 'excluded_middleware' => - array ( - ), - 'uses' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\CreateMailAdressen@__invoke', - 'controller' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\CreateMailAdressen', - 'as' => 'filament.admin.newsletter.resources.mail-adressens.create', - 'namespace' => NULL, - 'prefix' => 'app/newsletter/mail-adressens', - 'where' => - array ( - ), - ), - 'fallback' => false, - 'defaults' => - array ( - ), - 'wheres' => - array ( - ), - 'bindingFields' => - array ( - ), - 'lockSeconds' => NULL, - 'waitSeconds' => NULL, - 'withTrashed' => false, - ), - 'filament.admin.newsletter.resources.mail-adressens.edit' => - array ( - 'methods' => - array ( - 0 => 'GET', - 1 => 'HEAD', - ), - 'uri' => 'app/newsletter/mail-adressens/{record}/edit', - 'action' => - array ( - 'domain' => NULL, - 'middleware' => - array ( - 0 => 'panel:admin', - 1 => 'Illuminate\\Cookie\\Middleware\\EncryptCookies', - 2 => 'Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse', - 3 => 'Illuminate\\Session\\Middleware\\StartSession', - 4 => 'Filament\\Http\\Middleware\\AuthenticateSession', - 5 => 'Illuminate\\View\\Middleware\\ShareErrorsFromSession', - 6 => 'Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken', - 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', - 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', - 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', - 11 => 'Filament\\Http\\Middleware\\Authenticate', - 12 => 'verified:filament.admin.auth.email-verification.prompt', - ), - 'excluded_middleware' => - array ( - ), - 'uses' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\EditMailAdressen@__invoke', - 'controller' => 'App\\Filament\\Resources\\MailAdressens\\Pages\\EditMailAdressen', - 'as' => 'filament.admin.newsletter.resources.mail-adressens.edit', - 'namespace' => NULL, - 'prefix' => 'app/newsletter/mail-adressens', - 'where' => - array ( - ), - ), - 'fallback' => false, - 'defaults' => - array ( - ), - 'wheres' => - array ( - ), - 'bindingFields' => - array ( - ), - 'lockSeconds' => NULL, - 'waitSeconds' => NULL, - 'withTrashed' => false, - ), 'filament.admin.administration.resources.methodes.index' => array ( 'methods' => @@ -3052,7 +2903,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::c8Aa0gB5BhsyJxz2' => + 'generated::8l1m08IaydGHoZtQ' => array ( 'methods' => array ( @@ -3064,7 +2915,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', - 'as' => 'generated::c8Aa0gB5BhsyJxz2', + 'as' => 'generated::8l1m08IaydGHoZtQ', ), 'fallback' => false, 'defaults' => @@ -3080,7 +2931,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::1gix3NM8CNsYg1oM' => + 'generated::L25UX9GUf5zsHcYU' => array ( 'methods' => array ( @@ -3092,7 +2943,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', - 'as' => 'generated::1gix3NM8CNsYg1oM', + 'as' => 'generated::L25UX9GUf5zsHcYU', ), 'fallback' => false, 'defaults' => @@ -3194,7 +3045,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::4ALnCKgsRg5pNXr4' => + 'generated::JWu4k2FoAsQpyWbW' => array ( 'methods' => array ( @@ -3222,8 +3073,8 @@ app('router')->setCompiledRoutes( return response(\\Illuminate\\Support\\Facades\\View::file(\'/Users/hermanntelser/Sites/nutzwerte_fi4/vendor/laravel/framework/src/Illuminate/Foundation/Configuration\'.\'/../resources/health-up.blade.php\', [ \'exception\' => $exception, ]), status: $exception ? 500 : 200); - }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f390000000000000000";}}', - 'as' => 'generated::4ALnCKgsRg5pNXr4', + }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000faa0000000000000000";}}', + 'as' => 'generated::JWu4k2FoAsQpyWbW', ), 'fallback' => false, 'defaults' => @@ -3239,7 +3090,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::9tM0beuDkUZJcW3v' => + 'generated::dInoVqs5Ir3lVauw' => array ( 'methods' => array ( @@ -3255,13 +3106,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:50:"function () { return \\view(\'pages.welcome\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f3e0000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000faf0000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::9tM0beuDkUZJcW3v', + 'as' => 'generated::dInoVqs5Ir3lVauw', ), 'fallback' => false, 'defaults' => @@ -3277,7 +3128,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::TggslUndiRqH7lMm' => + 'generated::Kz1ziyKTJqxvCjeu' => array ( 'methods' => array ( @@ -3293,13 +3144,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"function () { return \\view(\'pages.nutzwerte\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f420000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000fb30000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::TggslUndiRqH7lMm', + 'as' => 'generated::Kz1ziyKTJqxvCjeu', ), 'fallback' => false, 'defaults' => @@ -3315,7 +3166,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::8pknM1HUqBZ8CD0A' => + 'generated::GtSXZzHMv2panaHd' => array ( 'methods' => array ( @@ -3331,13 +3182,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:51:"function () { return \\view(\'pages.programm\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f440000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000fb50000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::8pknM1HUqBZ8CD0A', + 'as' => 'generated::GtSXZzHMv2panaHd', ), 'fallback' => false, 'defaults' => @@ -3353,7 +3204,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::fsCBG8FQNzd5aUQx' => + 'generated::D2w2sRT8mFiPFAUv' => array ( 'methods' => array ( @@ -3369,13 +3220,13 @@ app('router')->setCompiledRoutes( ), 'uses' => 'O:55:"Laravel\\SerializableClosure\\UnsignedSerializableClosure":1:{s:12:"serializable";O:46:"Laravel\\SerializableClosure\\Serializers\\Native":5:{s:3:"use";a:0:{}s:8:"function";s:52:"function () { return \\view(\'pages.impressum\'); -}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000f460000000000000000";}}', +}";s:5:"scope";s:37:"Illuminate\\Routing\\RouteFileRegistrar";s:4:"this";N;s:4:"self";s:32:"0000000000000fb70000000000000000";}}', 'namespace' => NULL, 'prefix' => '', 'where' => array ( ), - 'as' => 'generated::fsCBG8FQNzd5aUQx', + 'as' => 'generated::D2w2sRT8mFiPFAUv', ), 'fallback' => false, 'defaults' => @@ -3521,7 +3372,7 @@ app('router')->setCompiledRoutes( $config, $isProduction ))($request, $path); - }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f520000000000000000";}}', + }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000fc30000000000000000";}}', 'as' => 'storage.local', ), 'fallback' => false, @@ -3554,7 +3405,7 @@ app('router')->setCompiledRoutes( $config, $isProduction ))($request, $path); - }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000f530000000000000000";}}', + }";s:5:"scope";s:47:"Illuminate\\Filesystem\\FilesystemServiceProvider";s:4:"this";N;s:4:"self";s:32:"0000000000000fc40000000000000000";}}', 'as' => 'storage.local.upload', ), 'fallback' => false, diff --git a/composer.lock b/composer.lock index 3a95a01..a6e849b 100644 --- a/composer.lock +++ b/composer.lock @@ -10004,6 +10004,72 @@ ], "time": "2026-03-29T15:46:14+00:00" }, + { + "name": "composer/xdebug-handler", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-06T16:37:16+00:00" + }, { "name": "doctrine/deprecations", "version": "1.1.6", @@ -10750,38 +10816,39 @@ }, { "name": "pestphp/pest", - "version": "v4.6.3", + "version": "v4.7.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "bff44562a99d30aa37573995566051b0344f9f8e" + "reference": "2fc75cfcf03c041c804778fa894282234adc3c66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/bff44562a99d30aa37573995566051b0344f9f8e", - "reference": "bff44562a99d30aa37573995566051b0344f9f8e", + "url": "https://api.github.com/repos/pestphp/pest/zipball/2fc75cfcf03c041c804778fa894282234adc3c66", + "reference": "2fc75cfcf03c041c804778fa894282234adc3c66", "shasum": "" }, "require": { "brianium/paratest": "^7.20.0", - "nunomaduro/collision": "^8.9.3", + "composer/xdebug-handler": "^3.0.5", + "nunomaduro/collision": "^8.9.4", "nunomaduro/termwind": "^2.4.0", "pestphp/pest-plugin": "^4.0.0", "pestphp/pest-plugin-arch": "^4.0.2", "pestphp/pest-plugin-mutate": "^4.0.1", "pestphp/pest-plugin-profanity": "^4.2.1", "php": "^8.3.0", - "phpunit/phpunit": "^12.5.23", + "phpunit/phpunit": "^12.5.24", "symfony/process": "^7.4.8|^8.0.8" }, "conflict": { "filp/whoops": "<2.18.3", - "phpunit/phpunit": ">12.5.23", + "phpunit/phpunit": ">12.5.24", "sebastian/exporter": "<7.0.0", "webmozart/assert": "<1.11.0" }, "require-dev": { - "mrpunyapal/peststan": "^0.2.5", + "mrpunyapal/peststan": "^0.2.9", "pestphp/pest-dev-tools": "^4.1.0", "pestphp/pest-plugin-browser": "^4.3.1", "pestphp/pest-plugin-type-coverage": "^4.0.4", @@ -10812,6 +10879,7 @@ "Pest\\Plugins\\Verbose", "Pest\\Plugins\\Version", "Pest\\Plugins\\Shard", + "Pest\\Plugins\\Tia", "Pest\\Plugins\\Parallel" ] }, @@ -10851,7 +10919,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v4.6.3" + "source": "https://github.com/pestphp/pest/tree/v4.7.0" }, "funding": [ { @@ -10863,7 +10931,7 @@ "type": "github" } ], - "time": "2026-04-18T13:51:25+00:00" + "time": "2026-05-03T16:09:32+00:00" }, { "name": "pestphp/pest-plugin", @@ -11899,16 +11967,16 @@ }, { "name": "phpunit/phpunit", - "version": "12.5.23", + "version": "12.5.24", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c54fcf3d6bcb6e96ac2f7e40097dc37b5f139969" + "reference": "d75dd30597caa80e72fad2ef7904601a30ef1046" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c54fcf3d6bcb6e96ac2f7e40097dc37b5f139969", - "reference": "c54fcf3d6bcb6e96ac2f7e40097dc37b5f139969", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d75dd30597caa80e72fad2ef7904601a30ef1046", + "reference": "d75dd30597caa80e72fad2ef7904601a30ef1046", "shasum": "" }, "require": { @@ -11977,7 +12045,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.23" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.24" }, "funding": [ { @@ -11985,7 +12053,7 @@ "type": "other" } ], - "time": "2026-04-18T06:12:49+00:00" + "time": "2026-05-01T04:21:04+00:00" }, { "name": "sebastian/cli-parser",