From b0f659fdfd5cf79d54f15c5aa0615adb4a2a7ddc Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:23 +0000 Subject: [PATCH 01/19] Apply Laravel coding style Shift automatically applies the Laravel coding style - which uses the PSR-12 coding style as a base with some minor additions. You may customize the code style applied by configuring [Pint](https://laravel.com/docs/pint), [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer), or [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) for your project root. For more information on customizing the code style applied by Shift, [watch this short video](https://laravelshift.com/videos/shift-code-style). --- app/Console/Commands/FetchLatestReleaseNumbers.php | 10 +++++----- app/Exceptions/FixableInvalidVersionException.php | 2 +- app/Http/Controllers/LaravelVersionsController.php | 4 ++-- app/Models/LaravelVersion.php | 4 ++-- app/Providers/AppServiceProvider.php | 2 +- bootstrap/app.php | 4 ++-- config/database.php | 2 +- config/filesystems.php | 2 +- config/logging.php | 2 +- database/seeders/LaravelVersionSeeder.php | 2 +- public/index.php | 6 +++--- 11 files changed, 20 insertions(+), 20 deletions(-) diff --git a/app/Console/Commands/FetchLatestReleaseNumbers.php b/app/Console/Commands/FetchLatestReleaseNumbers.php index d9b8b69..3c8ddd6 100644 --- a/app/Console/Commands/FetchLatestReleaseNumbers.php +++ b/app/Console/Commands/FetchLatestReleaseNumbers.php @@ -89,7 +89,7 @@ public function handle(): int $this->fetchVersionsFromGitHub() ->each(function ($item) use ($manualData) { $semver = new Version($item['name']); - $manualMajor = $manualData[$semver->major > 5 ? $semver->major : $semver->major . '.' . $semver->minor]; + $manualMajor = $manualData[$semver->major > 5 ? $semver->major : $semver->major.'.'.$semver->minor]; $versionMeta = [ 'changelog' => $item['changelog'], @@ -110,11 +110,11 @@ public function handle(): int if ($version->isDirty()) { $version->save(); - $this->info('Updated Laravel version ' . $semver); + $this->info('Updated Laravel version '.$semver); } if ($version->wasRecentlyCreated) { - $this->info('Created Laravel version ' . $semver); + $this->info('Created Laravel version '.$semver); } }); @@ -143,7 +143,7 @@ private function fetchVersionsFromGitHub() $responseJson = $response->json(); if (! $response->ok()) { - abort($response->getStatusCode(), 'Error connecting to GitHub: ' . $responseJson['message']); + abort($response->getStatusCode(), 'Error connecting to GitHub: '.$responseJson['message']); } $carry = $carry->merge( @@ -160,7 +160,7 @@ private function fetchVersionsFromGitHub() $nextPage = data_get($responseJson, "data.repository.{$key}.pageInfo")['endCursor']; if ($nextPage) { - $query['filters']['after'] = '"' . $nextPage . '"'; + $query['filters']['after'] = '"'.$nextPage.'"'; } } while ($nextPage); diff --git a/app/Exceptions/FixableInvalidVersionException.php b/app/Exceptions/FixableInvalidVersionException.php index 90eef2a..481f6e7 100644 --- a/app/Exceptions/FixableInvalidVersionException.php +++ b/app/Exceptions/FixableInvalidVersionException.php @@ -18,7 +18,7 @@ public function __construct($message, $code = 0, ?Exception $previous = null, $r public static function toUrl($redirectTo) { return new static( - 'Redirect to ' . $redirectTo, + 'Redirect to '.$redirectTo, 0, null, $redirectTo diff --git a/app/Http/Controllers/LaravelVersionsController.php b/app/Http/Controllers/LaravelVersionsController.php index 8f5c59a..8e11d99 100644 --- a/app/Http/Controllers/LaravelVersionsController.php +++ b/app/Http/Controllers/LaravelVersionsController.php @@ -33,11 +33,11 @@ public function index(): View public function show($path): View { - $version = Cache::remember('laravel-versions-' . $path, 3600, function () use ($path) { + $version = Cache::remember('laravel-versions-'.$path, 3600, function () use ($path) { return (new LaravelVersionFromPath)($path); }); - $releases = Cache::remember('laravel-versions-' . $version->majorish . '-releases', 3600, function () use ($version) { + $releases = Cache::remember('laravel-versions-'.$version->majorish.'-releases', 3600, function () use ($version) { return $version->getReleases(); }); diff --git a/app/Models/LaravelVersion.php b/app/Models/LaravelVersion.php index be07073..37f45a8 100644 --- a/app/Models/LaravelVersion.php +++ b/app/Models/LaravelVersion.php @@ -40,7 +40,7 @@ public static function calculateOrder($major, $minor, $patch): int protected static function booted(): void { static::addGlobalScope('first', function (Builder $builder) { - $builder->whereRaw('first_release = ' . DB::concat('major', "'.'", 'minor', "'.'", 'patch')->getValue(DB::connection()->getQueryGrammar())); + $builder->whereRaw('first_release = '.DB::concat('major', "'.'", 'minor', "'.'", 'patch')->getValue(DB::connection()->getQueryGrammar())); }); static::saving(function (self $version) { @@ -118,7 +118,7 @@ public function getStatusAttribute() public function getMajorishAttribute(): string { return $this->pre_semver - ? $this->major . '.' . $this->minor + ? $this->major.'.'.$this->minor : $this->major; } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index d47d947..d8f8581 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -13,7 +13,7 @@ public function boot(): void DB::macro('concat', function (...$parts) { return match (config('database.default')) { 'sqlite' => DB::raw(implode(' || ', $parts)), - default => DB::raw('CONCAT(' . implode(', ', $parts) . ')'), + default => DB::raw('CONCAT('.implode(', ', $parts).')'), }; }); } diff --git a/bootstrap/app.php b/bootstrap/app.php index 6a7fb18..7127de1 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -7,8 +7,8 @@ return Application::configure(basePath: dirname(__DIR__)) ->withRouting( - web: __DIR__ . '/../routes/web.php', - commands: __DIR__ . '/../routes/console.php', + web: __DIR__.'/../routes/web.php', + commands: __DIR__.'/../routes/console.php', health: '/up', then: function () { Route::prefix('api') diff --git a/config/database.php b/config/database.php index 25e064c..125949e 100644 --- a/config/database.php +++ b/config/database.php @@ -147,7 +147,7 @@ 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), - 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), ], 'default' => [ diff --git a/config/filesystems.php b/config/filesystems.php index 8009a25..c5f244d 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -39,7 +39,7 @@ 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), - 'url' => env('APP_URL') . '/storage', + 'url' => env('APP_URL').'/storage', 'visibility' => 'public', 'throw' => false, ], diff --git a/config/logging.php b/config/logging.php index ccd628a..fe3da1b 100644 --- a/config/logging.php +++ b/config/logging.php @@ -93,7 +93,7 @@ 'handler_with' => [ 'host' => env('PAPERTRAIL_URL'), 'port' => env('PAPERTRAIL_PORT'), - 'connectionString' => 'tls://' . env('PAPERTRAIL_URL') . ':' . env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), ], 'processors' => [PsrLogMessageProcessor::class], ], diff --git a/database/seeders/LaravelVersionSeeder.php b/database/seeders/LaravelVersionSeeder.php index 105376d..6854285 100644 --- a/database/seeders/LaravelVersionSeeder.php +++ b/database/seeders/LaravelVersionSeeder.php @@ -19,7 +19,7 @@ public function run(): void public function versions(): Collection { return collect(json_decode(File::get(base_path('manual-version-info.json')), true))->map(function ($version) { - $release = str_contains($version['release'], '.') ? $version['release'] : $version['release'] . '.0'; + $release = str_contains($version['release'], '.') ? $version['release'] : $version['release'].'.0'; [$major, $minor] = explode('.', $release); unset($version['release']); $version['major'] = $major; diff --git a/public/index.php b/public/index.php index 74a0960..947d989 100644 --- a/public/index.php +++ b/public/index.php @@ -5,13 +5,13 @@ define('LARAVEL_START', microtime(true)); // Determine if the application is in maintenance mode... -if (file_exists($maintenance = __DIR__ . '/../storage/framework/maintenance.php')) { +if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) { require $maintenance; } // Register the Composer autoloader... -require __DIR__ . '/../vendor/autoload.php'; +require __DIR__.'/../vendor/autoload.php'; // Bootstrap Laravel and handle the request... -(require_once __DIR__ . '/../bootstrap/app.php') +(require_once __DIR__.'/../bootstrap/app.php') ->handleRequest(Request::capture()); From 815dfb7c3390a6443cdcfadde4ff86827b51ae13 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:26 +0000 Subject: [PATCH 02/19] Slim `lang` files --- lang/en/auth.php | 20 ------ lang/en/pagination.php | 19 ------ lang/en/passwords.php | 22 ------- lang/en/validation.php | 141 +---------------------------------------- 4 files changed, 1 insertion(+), 201 deletions(-) delete mode 100644 lang/en/auth.php delete mode 100644 lang/en/pagination.php delete mode 100644 lang/en/passwords.php diff --git a/lang/en/auth.php b/lang/en/auth.php deleted file mode 100644 index 6598e2c..0000000 --- a/lang/en/auth.php +++ /dev/null @@ -1,20 +0,0 @@ - 'These credentials do not match our records.', - 'password' => 'The provided password is incorrect.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', - -]; diff --git a/lang/en/pagination.php b/lang/en/pagination.php deleted file mode 100644 index d481411..0000000 --- a/lang/en/pagination.php +++ /dev/null @@ -1,19 +0,0 @@ - '« Previous', - 'next' => 'Next »', - -]; diff --git a/lang/en/passwords.php b/lang/en/passwords.php deleted file mode 100644 index 2345a56..0000000 --- a/lang/en/passwords.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Your password has been reset!', - 'sent' => 'We have emailed your password reset link!', - 'throttled' => 'Please wait before retrying.', - 'token' => 'This password reset token is invalid.', - 'user' => "We can't find a user with that email address.", - -]; diff --git a/lang/en/validation.php b/lang/en/validation.php index 4f8f726..6aaa8bc 100644 --- a/lang/en/validation.php +++ b/lang/en/validation.php @@ -13,145 +13,6 @@ | */ - 'accepted' => 'The :attribute field must be accepted.', - 'accepted_if' => 'The :attribute field must be accepted when :other is :value.', - 'active_url' => 'The :attribute field must be a valid URL.', - 'after' => 'The :attribute field must be a date after :date.', - 'after_or_equal' => 'The :attribute field must be a date after or equal to :date.', - 'alpha' => 'The :attribute field must only contain letters.', - 'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.', - 'alpha_num' => 'The :attribute field must only contain letters and numbers.', - 'array' => 'The :attribute field must be an array.', - 'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.', - 'before' => 'The :attribute field must be a date before :date.', - 'before_or_equal' => 'The :attribute field must be a date before or equal to :date.', - 'between' => [ - 'array' => 'The :attribute field must have between :min and :max items.', - 'file' => 'The :attribute field must be between :min and :max kilobytes.', - 'numeric' => 'The :attribute field must be between :min and :max.', - 'string' => 'The :attribute field must be between :min and :max characters.', - ], - 'boolean' => 'The :attribute field must be true or false.', - 'can' => 'The :attribute field contains an unauthorized value.', - 'confirmed' => 'The :attribute field confirmation does not match.', - 'current_password' => 'The password is incorrect.', - 'date' => 'The :attribute field must be a valid date.', - 'date_equals' => 'The :attribute field must be a date equal to :date.', - 'date_format' => 'The :attribute field must match the format :format.', - 'decimal' => 'The :attribute field must have :decimal decimal places.', - 'declined' => 'The :attribute field must be declined.', - 'declined_if' => 'The :attribute field must be declined when :other is :value.', - 'different' => 'The :attribute field and :other must be different.', - 'digits' => 'The :attribute field must be :digits digits.', - 'digits_between' => 'The :attribute field must be between :min and :max digits.', - 'dimensions' => 'The :attribute field has invalid image dimensions.', - 'distinct' => 'The :attribute field has a duplicate value.', - 'doesnt_end_with' => 'The :attribute field must not end with one of the following: :values.', - 'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.', - 'email' => 'The :attribute field must be a valid email address.', - 'ends_with' => 'The :attribute field must end with one of the following: :values.', - 'enum' => 'The selected :attribute is invalid.', - 'exists' => 'The selected :attribute is invalid.', - 'file' => 'The :attribute field must be a file.', - 'filled' => 'The :attribute field must have a value.', - 'gt' => [ - 'array' => 'The :attribute field must have more than :value items.', - 'file' => 'The :attribute field must be greater than :value kilobytes.', - 'numeric' => 'The :attribute field must be greater than :value.', - 'string' => 'The :attribute field must be greater than :value characters.', - ], - 'gte' => [ - 'array' => 'The :attribute field must have :value items or more.', - 'file' => 'The :attribute field must be greater than or equal to :value kilobytes.', - 'numeric' => 'The :attribute field must be greater than or equal to :value.', - 'string' => 'The :attribute field must be greater than or equal to :value characters.', - ], - 'image' => 'The :attribute field must be an image.', - 'in' => 'The selected :attribute is invalid.', - 'in_array' => 'The :attribute field must exist in :other.', - 'integer' => 'The :attribute field must be an integer.', - 'ip' => 'The :attribute field must be a valid IP address.', - 'ipv4' => 'The :attribute field must be a valid IPv4 address.', - 'ipv6' => 'The :attribute field must be a valid IPv6 address.', - 'json' => 'The :attribute field must be a valid JSON string.', - 'lowercase' => 'The :attribute field must be lowercase.', - 'lt' => [ - 'array' => 'The :attribute field must have less than :value items.', - 'file' => 'The :attribute field must be less than :value kilobytes.', - 'numeric' => 'The :attribute field must be less than :value.', - 'string' => 'The :attribute field must be less than :value characters.', - ], - 'lte' => [ - 'array' => 'The :attribute field must not have more than :value items.', - 'file' => 'The :attribute field must be less than or equal to :value kilobytes.', - 'numeric' => 'The :attribute field must be less than or equal to :value.', - 'string' => 'The :attribute field must be less than or equal to :value characters.', - ], - 'mac_address' => 'The :attribute field must be a valid MAC address.', - 'max' => [ - 'array' => 'The :attribute field must not have more than :max items.', - 'file' => 'The :attribute field must not be greater than :max kilobytes.', - 'numeric' => 'The :attribute field must not be greater than :max.', - 'string' => 'The :attribute field must not be greater than :max characters.', - ], - 'max_digits' => 'The :attribute field must not have more than :max digits.', - 'mimes' => 'The :attribute field must be a file of type: :values.', - 'mimetypes' => 'The :attribute field must be a file of type: :values.', - 'min' => [ - 'array' => 'The :attribute field must have at least :min items.', - 'file' => 'The :attribute field must be at least :min kilobytes.', - 'numeric' => 'The :attribute field must be at least :min.', - 'string' => 'The :attribute field must be at least :min characters.', - ], - 'min_digits' => 'The :attribute field must have at least :min digits.', - 'missing' => 'The :attribute field must be missing.', - 'missing_if' => 'The :attribute field must be missing when :other is :value.', - 'missing_unless' => 'The :attribute field must be missing unless :other is :value.', - 'missing_with' => 'The :attribute field must be missing when :values is present.', - 'missing_with_all' => 'The :attribute field must be missing when :values are present.', - 'multiple_of' => 'The :attribute field must be a multiple of :value.', - 'not_in' => 'The selected :attribute is invalid.', - 'not_regex' => 'The :attribute field format is invalid.', - 'numeric' => 'The :attribute field must be a number.', - 'password' => [ - 'letters' => 'The :attribute field must contain at least one letter.', - 'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.', - 'numbers' => 'The :attribute field must contain at least one number.', - 'symbols' => 'The :attribute field must contain at least one symbol.', - 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', - ], - 'present' => 'The :attribute field must be present.', - 'prohibited' => 'The :attribute field is prohibited.', - 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', - 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', - 'prohibits' => 'The :attribute field prohibits :other from being present.', - 'regex' => 'The :attribute field format is invalid.', - 'required' => 'The :attribute field is required.', - 'required_array_keys' => 'The :attribute field must contain entries for: :values.', - 'required_if' => 'The :attribute field is required when :other is :value.', - 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', - 'required_unless' => 'The :attribute field is required unless :other is in :values.', - 'required_with' => 'The :attribute field is required when :values is present.', - 'required_with_all' => 'The :attribute field is required when :values are present.', - 'required_without' => 'The :attribute field is required when :values is not present.', - 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'same' => 'The :attribute field must match :other.', - 'size' => [ - 'array' => 'The :attribute field must contain :size items.', - 'file' => 'The :attribute field must be :size kilobytes.', - 'numeric' => 'The :attribute field must be :size.', - 'string' => 'The :attribute field must be :size characters.', - ], - 'starts_with' => 'The :attribute field must start with one of the following: :values.', - 'string' => 'The :attribute field must be a string.', - 'timezone' => 'The :attribute field must be a valid timezone.', - 'unique' => 'The :attribute has already been taken.', - 'uploaded' => 'The :attribute failed to upload.', - 'uppercase' => 'The :attribute field must be uppercase.', - 'url' => 'The :attribute field must be a valid URL.', - 'ulid' => 'The :attribute field must be a valid ULID.', - 'uuid' => 'The :attribute field must be a valid UUID.', - /* |-------------------------------------------------------------------------- | Custom Validation Language Lines @@ -165,7 +26,7 @@ 'custom' => [ 'attribute-name' => [ - 'rule-name' => 'custom-message', + ], ], From c70e44d23b64a4088002aa9700ef870a288f4cce Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:26 +0000 Subject: [PATCH 03/19] Shift core files --- .gitignore | 2 ++ artisan | 49 +++++++----------------------------------------- public/.htaccess | 4 ++++ public/index.php | 7 +++++-- 4 files changed, 18 insertions(+), 44 deletions(-) diff --git a/.gitignore b/.gitignore index 986c670..bac9737 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /public/build /public/storage /storage/*.key +/storage/pail /vendor .env .env.backup @@ -14,3 +15,4 @@ yarn-error.log storage/debugbar .DS_Store .phpunit.cache +/.nova diff --git a/artisan b/artisan index 5c23e2e..c35e31d 100644 --- a/artisan +++ b/artisan @@ -1,53 +1,18 @@ #!/usr/bin/env php make(Illuminate\Contracts\Console\Kernel::class); - -$status = $kernel->handle( - $input = new Symfony\Component\Console\Input\ArgvInput, - new Symfony\Component\Console\Output\ConsoleOutput -); - -/* -|-------------------------------------------------------------------------- -| Shutdown The Application -|-------------------------------------------------------------------------- -| -| Once Artisan has finished running, we will fire off the shutdown events -| so that any final work may be done by the application before we shut -| down the process. This is the last thing to happen to the request. -| -*/ - -$kernel->terminate($input, $status); +$status = $app->handleCommand(new ArgvInput); exit($status); diff --git a/public/.htaccess b/public/.htaccess index 3aec5e2..b574a59 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -9,6 +9,10 @@ RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + # Handle X-XSRF-Token Header + RewriteCond %{HTTP:x-xsrf-token} . + RewriteRule .* - [E=HTTP_X_XSRF_TOKEN:%{HTTP:X-XSRF-Token}] + # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ diff --git a/public/index.php b/public/index.php index 947d989..ee8f07e 100644 --- a/public/index.php +++ b/public/index.php @@ -1,5 +1,6 @@ handleRequest(Request::capture()); +/** @var Application $app */ +$app = require_once __DIR__.'/../bootstrap/app.php'; + +$app->handleRequest(Request::capture()); From 77f270da1e5baec2950b1f8fe83a894c62ed25ab Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:26 +0000 Subject: [PATCH 04/19] Adopt new PHP attributes in models --- app/Models/LaravelVersion.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Models/LaravelVersion.php b/app/Models/LaravelVersion.php index 37f45a8..4f537db 100644 --- a/app/Models/LaravelVersion.php +++ b/app/Models/LaravelVersion.php @@ -2,6 +2,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -69,7 +70,8 @@ public function last(): HasOne ->ofMany(['order' => 'MAX']); } - public function scopeReleased($query) + #[Scope] + protected function released($query) { $query->where('released_at', '<=', now()); } From 1b2a8e6a2a7bf371f4ec94814f9c9c8d724a29a5 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:27 +0000 Subject: [PATCH 05/19] Remove unused `ValidatesRequests` trait --- app/Http/Controllers/Controller.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index bd3e17e..62f1dd9 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -3,10 +3,9 @@ namespace App\Http\Controllers; use Illuminate\Foundation\Auth\Access\AuthorizesRequests; -use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Routing\Controller as BaseController; abstract class Controller extends BaseController { - use AuthorizesRequests, ValidatesRequests; + use AuthorizesRequests; } From 01e2f82b3e8fbd26cbca3ae7cd4832e2566b6d72 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:27 +0000 Subject: [PATCH 06/19] Remove unused `AuthorizesRequests` trait --- app/Http/Controllers/Controller.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 62f1dd9..0fe932d 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -2,10 +2,8 @@ namespace App\Http\Controllers; -use Illuminate\Foundation\Auth\Access\AuthorizesRequests; use Illuminate\Routing\Controller as BaseController; abstract class Controller extends BaseController { - use AuthorizesRequests; } From 83f161269dc45e35dc55948d6d2c56604f777081 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:27 +0000 Subject: [PATCH 07/19] Remove base controller inheritance --- app/Http/Controllers/Controller.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 0fe932d..23dad80 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -2,8 +2,7 @@ namespace App\Http\Controllers; -use Illuminate\Routing\Controller as BaseController; -abstract class Controller extends BaseController +abstract class Controller { } From 84bfeba75a19e96151616d860cd13308412267b3 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:29 +0000 Subject: [PATCH 08/19] Shift config files --- config/database.php | 1 + config/filesystems.php | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/config/database.php b/config/database.php index 125949e..8910562 100644 --- a/config/database.php +++ b/config/database.php @@ -148,6 +148,7 @@ 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + 'persistent' => env('REDIS_PERSISTENT', false), ], 'default' => [ diff --git a/config/filesystems.php b/config/filesystems.php index c5f244d..3d671bd 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -32,8 +32,10 @@ 'local' => [ 'driver' => 'local', - 'root' => storage_path('app'), + 'root' => storage_path('app/private'), + 'serve' => true, 'throw' => false, + 'report' => false, ], 'public' => [ @@ -42,6 +44,7 @@ 'url' => env('APP_URL').'/storage', 'visibility' => 'public', 'throw' => false, + 'report' => false, ], 's3' => [ @@ -54,6 +57,7 @@ 'endpoint' => env('AWS_ENDPOINT'), 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), 'throw' => false, + 'report' => false, ], ], From 60028e2d6452f125429169f432991a4486f64e7a Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:30 +0000 Subject: [PATCH 09/19] Default config files In an effort to make upgrading the constantly changing config files easier, Shift defaulted them and merged your true customizations - where ENV variables may not be used. --- config/logging.php | 6 +++--- config/mail.php | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/config/logging.php b/config/logging.php index fe3da1b..95cc218 100644 --- a/config/logging.php +++ b/config/logging.php @@ -54,7 +54,7 @@ 'stack' => [ 'driver' => 'stack', - 'channels' => explode(',', env('LOG_STACK', 'single,flare')), + 'channels' => explode(',', env('LOG_STACK', 'single')), 'ignore_exceptions' => false, ], @@ -102,10 +102,10 @@ 'driver' => 'monolog', 'level' => env('LOG_LEVEL', 'debug'), 'handler' => StreamHandler::class, - 'formatter' => env('LOG_STDERR_FORMATTER'), - 'with' => [ + 'handler_with' => [ 'stream' => 'php://stderr', ], + 'formatter' => env('LOG_STDERR_FORMATTER'), 'processors' => [PsrLogMessageProcessor::class], ], diff --git a/config/mail.php b/config/mail.php index 58c3932..7c60f08 100644 --- a/config/mail.php +++ b/config/mail.php @@ -14,7 +14,7 @@ | */ - 'default' => env('MAIL_MAILER', 'smtp'), + 'default' => env('MAIL_MAILER', 'log'), /* |-------------------------------------------------------------------------- @@ -39,10 +39,10 @@ 'smtp' => [ 'transport' => 'smtp', + 'scheme' => env('MAIL_SCHEME'), 'url' => env('MAIL_URL'), - 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), - 'port' => env('MAIL_PORT', 587), - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'host' => env('MAIL_HOST', '127.0.0.1'), + 'port' => env('MAIL_PORT', 2525), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, @@ -92,6 +92,7 @@ 'smtp', 'log', ], + 'retry_after' => 60, ], 'roundrobin' => [ @@ -100,6 +101,7 @@ 'ses', 'postmark', ], + 'retry_after' => 60, ], ], From 07f18cf7efa80554fc4caec0ba55490ea2eab9cc Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:30 +0000 Subject: [PATCH 10/19] Shift `ENV` variables --- .env.example | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 5d38cc3..8c11e03 100644 --- a/.env.example +++ b/.env.example @@ -4,12 +4,13 @@ APP_KEY= APP_DEBUG=true APP_URL=http://laravelversions.test -APP_TIMEZONE=UTC APP_LOCALE=en APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=en_US APP_MAINTENANCE_DRIVER=file APP_MAINTENANCE_STORE=database +PHP_CLI_SERVER_WORKERS=4 + BCRYPT_ROUNDS=12 LOG_CHANNEL=stack,flare @@ -43,7 +44,7 @@ MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null -MAIL_ENCRYPTION=null +MAIL_SCHEME=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME="${APP_NAME}" From c4543bb76343400845639f265c473c02f62427e7 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:30 +0000 Subject: [PATCH 11/19] Add new Laravel `composer run dev` script --- composer.json | 7 ++++++- package.json | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index f6f9f3d..b8cda01 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,8 @@ "mockery/mockery": "^1.6.12", "nunomaduro/collision": "^8.5", "phpunit/phpunit": "^11.5.3", - "tightenco/duster": "^3.1" + "tightenco/duster": "^3.1", + "laravel/pail": "^1.2.2" }, "config": { "optimize-autoloader": true, @@ -74,6 +75,10 @@ ], "fix": [ "vendor/bin/duster fix" + ], + "dev": [ + "Composer\\Config::disableProcessTimeout", + "npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan serve\" \"php artisan queue:listen --tries=1\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite" ] } } diff --git a/package.json b/package.json index 03ee227..88f6721 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "vite": "^4.2.2", "vue": "^3.2.47", "vue-loader": "^17.0.1", - "vue-template-compiler": "^2.6.12" + "vue-template-compiler": "^2.6.12", + "concurrently": "^9.0.1" }, "prettier": { "singleQuote": true, From 82072164676075dbfdf901ed5e190e547ddbdf67 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:30 +0000 Subject: [PATCH 12/19] Add `storage/app/private` folder --- storage/app/.gitignore | 1 + storage/app/private/.gitignore | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 storage/app/private/.gitignore diff --git a/storage/app/.gitignore b/storage/app/.gitignore index 8f4803c..fedb287 100644 --- a/storage/app/.gitignore +++ b/storage/app/.gitignore @@ -1,3 +1,4 @@ * +!private/ !public/ !.gitignore diff --git a/storage/app/private/.gitignore b/storage/app/private/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/app/private/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore From 89eed3989ddb4c650438ae9cf6775f24f9cf6094 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:30 +0000 Subject: [PATCH 13/19] Bump Composer dependencies --- composer.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index b8cda01..2c50e61 100644 --- a/composer.json +++ b/composer.json @@ -10,9 +10,8 @@ "require": { "php": "^8.2", "codezero/laravel-localized-routes": "^4.0.1", - "guzzlehttp/guzzle": "^7.9.2", - "laravel/framework": "^11.45", - "laravel/tinker": "^2.10", + "laravel/framework": "^12.28", + "laravel/tinker": "^2.10.1", "phlak/semver": "^4.1", "silber/page-cache": "^1.1", "spatie/laravel-ignition": "^2.9" @@ -21,9 +20,9 @@ "barryvdh/laravel-debugbar": "^3.16", "brianium/paratest": "^7.7", "fakerphp/faker": "^1.24.1", - "laravel/sail": "^1.40", + "laravel/sail": "^1.41", "mockery/mockery": "^1.6.12", - "nunomaduro/collision": "^8.5", + "nunomaduro/collision": "^8.6", "phpunit/phpunit": "^11.5.3", "tightenco/duster": "^3.1", "laravel/pail": "^1.2.2" From 8ffbd73f3a899bce52c919390a0e24477065ff22 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:30 +0000 Subject: [PATCH 14/19] Adopt anonymous migrations --- database/migrations/2021_01_26_144212_add_change_log.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/database/migrations/2021_01_26_144212_add_change_log.php b/database/migrations/2021_01_26_144212_add_change_log.php index 935598b..fba6596 100644 --- a/database/migrations/2021_01_26_144212_add_change_log.php +++ b/database/migrations/2021_01_26_144212_add_change_log.php @@ -4,7 +4,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -class AddChangeLog extends Migration +return new class extends Migration { public function up() { @@ -23,4 +23,4 @@ public function down() $table->dropColumn('order'); }); } -} +}; From a825b4f0b6dee8a0ad19f2949e8040d903028868 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:31 +0000 Subject: [PATCH 15/19] Adopt Laravel type hints --- database/migrations/2021_01_26_144212_add_change_log.php | 4 ++-- database/migrations/2023_04_18_203851_drop_column_is_lts.php | 4 ++-- tests/Feature/ApiListVersionsTest.php | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/database/migrations/2021_01_26_144212_add_change_log.php b/database/migrations/2021_01_26_144212_add_change_log.php index fba6596..84774f5 100644 --- a/database/migrations/2021_01_26_144212_add_change_log.php +++ b/database/migrations/2021_01_26_144212_add_change_log.php @@ -6,7 +6,7 @@ return new class extends Migration { - public function up() + public function up(): void { Schema::table('laravel_versions', function (Blueprint $table) { $table->string('first_release')->nullable()->after('patch'); @@ -15,7 +15,7 @@ public function up() }); } - public function down() + public function down(): void { Schema::table('laravel_versions', function (Blueprint $table) { $table->dropColumn('first_release'); diff --git a/database/migrations/2023_04_18_203851_drop_column_is_lts.php b/database/migrations/2023_04_18_203851_drop_column_is_lts.php index 4e1403c..3e7c9b9 100644 --- a/database/migrations/2023_04_18_203851_drop_column_is_lts.php +++ b/database/migrations/2023_04_18_203851_drop_column_is_lts.php @@ -6,14 +6,14 @@ return new class extends Migration { - public function up() + public function up(): void { Schema::table('laravel_versions', function (Blueprint $table) { $table->dropColumn('is_lts'); }); } - public function down() + public function down(): void { Schema::table('laravel_versions', function (Blueprint $table) { $table->boolean('is_lts')->default(false); diff --git a/tests/Feature/ApiListVersionsTest.php b/tests/Feature/ApiListVersionsTest.php index d7acdec..d1088f7 100644 --- a/tests/Feature/ApiListVersionsTest.php +++ b/tests/Feature/ApiListVersionsTest.php @@ -49,7 +49,7 @@ public function entries_arent_given_specific_version_key(): void } /** @test */ - public function it_lists_versions_in_expected_format() + public function it_lists_versions_in_expected_format(): void { $versions = $this->seedVersions( majorCount: 10, @@ -63,7 +63,7 @@ public function it_lists_versions_in_expected_format() } /** @test */ - public function it_lists_specific_version_in_expected_format() + public function it_lists_specific_version_in_expected_format(): void { $this->seedVersions( majorCount: 10, From 7fc84b152991be2abd9bec8e3cc13c2d399e4c49 Mon Sep 17 00:00:00 2001 From: Shift Date: Mon, 15 Sep 2025 03:50:32 +0000 Subject: [PATCH 16/19] Shift cleanup --- app/Http/Controllers/Controller.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 23dad80..2e8af07 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -2,7 +2,4 @@ namespace App\Http\Controllers; - -abstract class Controller -{ -} +abstract class Controller {} From df2cdb21eaff2dd68dd5e2b0740288f3aa537656 Mon Sep 17 00:00:00 2001 From: Anthony Clark Date: Sun, 14 Sep 2025 21:35:20 -0700 Subject: [PATCH 17/19] Update dependencies --- .github/workflows/run-tests.yml | 4 +- README.md | 4 +- composer.json | 4 +- composer.lock | 1040 ++++++++++++++++++++----------- 4 files changed, 667 insertions(+), 385 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 60da43d..6b0d2dd 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -12,12 +12,12 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v5 - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.2 + php-version: 8.4 extensions: posix, dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick coverage: none diff --git a/README.md b/README.md index 94a7659..2ec508d 100644 --- a/README.md +++ b/README.md @@ -99,8 +99,8 @@ Potential statuses: ## Instructions for hosting/installing yourself ### Requirements -* PHP >= 8.1 with [the extensions listed in the Laravel docs](https://laravel.com/docs/9.x/deployment#server-requirements) -* A [supported relational database](http://laravel.com/docs/9.x/database#introduction) and corresponding PHP extension +* PHP >= 8.4 with [the extensions listed in the Laravel docs](https://laravel.com/docs/12.x/deployment#server-requirements) +* A [supported relational database](http://laravel.com/docs/12.x/database#introduction) and corresponding PHP extension * [Composer](https://getcomposer.org/download/) * [NPM](https://nodejs.org/) diff --git a/composer.json b/composer.json index 2c50e61..c534b38 100644 --- a/composer.json +++ b/composer.json @@ -8,10 +8,10 @@ ], "license": "MIT", "require": { - "php": "^8.2", - "codezero/laravel-localized-routes": "^4.0.1", + "php": "^8.4", "laravel/framework": "^12.28", "laravel/tinker": "^2.10.1", + "opgginc/codezero-laravel-localized-routes": "^5.1", "phlak/semver": "^4.1", "silber/page-cache": "^1.1", "spatie/laravel-ignition": "^2.9" diff --git a/composer.lock b/composer.lock index b30974d..fddf2f5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,29 +4,29 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "94789936040470ff41e121f5f888ef31", + "content-hash": "a0c4e399eb545dfd249838423f9cd241", "packages": [ { "name": "brick/math", - "version": "0.12.3", + "version": "0.14.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba" + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba", - "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba", + "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.2" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^10.1", - "vimeo/psalm": "6.8.8" + "phpstan/phpstan": "2.1.22", + "phpunit/phpunit": "^11.5" }, "type": "library", "autoload": { @@ -56,7 +56,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.12.3" + "source": "https://github.com/brick/math/tree/0.14.0" }, "funding": [ { @@ -64,7 +64,7 @@ "type": "github" } ], - "time": "2025-02-28T13:11:00+00:00" + "time": "2025-08-29T12:40:03+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -262,163 +262,6 @@ }, "time": "2023-05-24T15:46:41+00:00" }, - { - "name": "codezero/laravel-localized-routes", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/codezero-be/laravel-localized-routes.git", - "reference": "3c8c8bdac753b6b75b4c6f3f7f7b39b962d507cd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/codezero-be/laravel-localized-routes/zipball/3c8c8bdac753b6b75b4c6f3f7f7b39b962d507cd", - "reference": "3c8c8bdac753b6b75b4c6f3f7f7b39b962d507cd", - "shasum": "" - }, - "require": { - "codezero/browser-locale": "^3.0", - "codezero/composer-preload-files": "^1.0", - "codezero/laravel-uri-translator": "^2.0", - "codezero/php-url-builder": "^1.0", - "illuminate/support": "^10.0|^11.0", - "php": "^8.1" - }, - "require-dev": { - "mockery/mockery": "^1.3.3", - "orchestra/testbench": "^8.0|^9.0", - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "LocaleConfig": "CodeZero\\LocalizedRoutes\\Facades\\LocaleConfig" - }, - "providers": [ - "CodeZero\\LocalizedRoutes\\LocalizedRoutesServiceProvider" - ] - }, - "preload-files": [ - "src/helpers.php" - ] - }, - "autoload": { - "psr-4": { - "CodeZero\\LocalizedRoutes\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ivan Vermeyen", - "email": "ivan@codezero.be" - } - ], - "description": "A convenient way to set up, manage and use localized routes in a Laravel app.", - "keywords": [ - "country", - "language", - "laravel", - "locale", - "localization", - "php", - "routes", - "routing", - "translation" - ], - "support": { - "issues": "https://github.com/codezero-be/laravel-localized-routes/issues", - "source": "https://github.com/codezero-be/laravel-localized-routes/tree/4.0.1" - }, - "funding": [ - { - "url": "https://paypal.me/ivanvermeyen", - "type": "custom" - }, - { - "url": "https://ko-fi.com/ivanvermeyen", - "type": "ko_fi" - } - ], - "time": "2024-03-17T22:41:22+00:00" - }, - { - "name": "codezero/laravel-uri-translator", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/codezero-be/laravel-uri-translator.git", - "reference": "9d94312a0f34ce0cdac6c8e7d6e99eec1a21f4c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/codezero-be/laravel-uri-translator/zipball/9d94312a0f34ce0cdac6c8e7d6e99eec1a21f4c7", - "reference": "9d94312a0f34ce0cdac6c8e7d6e99eec1a21f4c7", - "shasum": "" - }, - "require": { - "illuminate/support": "^10.0|^11.0", - "php": "^8.1" - }, - "require-dev": { - "orchestra/testbench": "^8.0|^9.0", - "phpunit/phpunit": "^10.5" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "CodeZero\\UriTranslator\\UriTranslatorServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "CodeZero\\UriTranslator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ivan Vermeyen", - "email": "ivan@codezero.be" - } - ], - "description": "Translate a URI or individual slugs.", - "keywords": [ - "country", - "language", - "laravel", - "locale", - "localization", - "php", - "slugs", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/codezero-be/laravel-uri-translator/issues", - "source": "https://github.com/codezero-be/laravel-uri-translator/tree/2.0.0" - }, - "funding": [ - { - "url": "https://paypal.me/ivanvermeyen", - "type": "custom" - }, - { - "url": "https://ko-fi.com/ivanvermeyen", - "type": "ko_fi" - } - ], - "time": "2024-03-10T12:32:06+00:00" - }, { "name": "codezero/php-url-builder", "version": "1.0.0", @@ -988,22 +831,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.9.3", + "version": "7.10.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", - "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.3", - "guzzlehttp/psr7": "^2.7.0", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -1094,7 +937,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.9.3" + "source": "https://github.com/guzzle/guzzle/tree/7.10.0" }, "funding": [ { @@ -1110,20 +953,20 @@ "type": "tidelift" } ], - "time": "2025-03-27T13:37:11+00:00" + "time": "2025-08-23T22:36:01+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.2.0", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" + "reference": "481557b130ef3790cf82b713667b43030dc9c957" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", - "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", "shasum": "" }, "require": { @@ -1131,7 +974,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "type": "library", "extra": { @@ -1177,7 +1020,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.2.0" + "source": "https://github.com/guzzle/promises/tree/2.3.0" }, "funding": [ { @@ -1193,20 +1036,20 @@ "type": "tidelift" } ], - "time": "2025-03-27T13:27:01+00:00" + "time": "2025-08-22T14:34:08+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.7.1", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" + "reference": "21dc724a0583619cd1652f673303492272778051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", - "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", "shasum": "" }, "require": { @@ -1222,7 +1065,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "0.9.0", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -1293,7 +1136,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.1" + "source": "https://github.com/guzzle/psr7/tree/2.8.0" }, "funding": [ { @@ -1309,20 +1152,20 @@ "type": "tidelift" } ], - "time": "2025-03-27T12:30:47+00:00" + "time": "2025-08-23T21:21:41+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.4", + "version": "v1.0.5", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "30e286560c137526eccd4ce21b2de477ab0676d2" + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/30e286560c137526eccd4ce21b2de477ab0676d2", - "reference": "30e286560c137526eccd4ce21b2de477ab0676d2", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1", "shasum": "" }, "require": { @@ -1331,7 +1174,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.44 || ^9.6.25", "uri-template/tests": "1.0.0" }, "type": "library", @@ -1379,7 +1222,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.4" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.5" }, "funding": [ { @@ -1395,24 +1238,24 @@ "type": "tidelift" } ], - "time": "2025-02-03T10:55:03+00:00" + "time": "2025-08-22T14:27:06+00:00" }, { "name": "laravel/framework", - "version": "v11.45.2", + "version": "v12.28.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "d134bf11e2208c0c5bd488cf19e612ca176b820a" + "reference": "868c1f2d3dba4df6d21e3a8d818479f094cfd942" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/d134bf11e2208c0c5bd488cf19e612ca176b820a", - "reference": "d134bf11e2208c0c5bd488cf19e612ca176b820a", + "url": "https://api.github.com/repos/laravel/framework/zipball/868c1f2d3dba4df6d21e3a8d818479f094cfd942", + "reference": "868c1f2d3dba4df6d21e3a8d818479f094cfd942", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", + "brick/math": "^0.11|^0.12|^0.13|^0.14", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", @@ -1427,32 +1270,34 @@ "fruitcake/php-cors": "^1.3", "guzzlehttp/guzzle": "^7.8.2", "guzzlehttp/uri-template": "^1.0", - "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", + "laravel/prompts": "^0.3.0", "laravel/serializable-closure": "^1.3|^2.0", "league/commonmark": "^2.7", "league/flysystem": "^3.25.1", "league/flysystem-local": "^3.25.1", "league/uri": "^7.5.1", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.72.6|^3.8.4", + "nesbot/carbon": "^3.8.4", "nunomaduro/termwind": "^2.0", "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.7", - "symfony/console": "^7.0.3", - "symfony/error-handler": "^7.0.3", - "symfony/finder": "^7.0.3", + "symfony/console": "^7.2.0", + "symfony/error-handler": "^7.2.0", + "symfony/finder": "^7.2.0", "symfony/http-foundation": "^7.2.0", - "symfony/http-kernel": "^7.0.3", - "symfony/mailer": "^7.0.3", - "symfony/mime": "^7.0.3", - "symfony/polyfill-php83": "^1.31", - "symfony/process": "^7.0.3", - "symfony/routing": "^7.0.3", - "symfony/uid": "^7.0.3", - "symfony/var-dumper": "^7.0.3", + "symfony/http-kernel": "^7.2.0", + "symfony/mailer": "^7.2.0", + "symfony/mime": "^7.2.0", + "symfony/polyfill-php83": "^1.33", + "symfony/polyfill-php84": "^1.33", + "symfony/polyfill-php85": "^1.33", + "symfony/process": "^7.2.0", + "symfony/routing": "^7.2.0", + "symfony/uid": "^7.2.0", + "symfony/var-dumper": "^7.2.0", "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.6.1", "voku/portable-ascii": "^2.0.2" @@ -1484,6 +1329,7 @@ "illuminate/filesystem": "self.version", "illuminate/hashing": "self.version", "illuminate/http": "self.version", + "illuminate/json-schema": "self.version", "illuminate/log": "self.version", "illuminate/macroable": "self.version", "illuminate/mail": "self.version", @@ -1516,17 +1362,18 @@ "league/flysystem-read-only": "^3.25.1", "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", - "orchestra/testbench-core": "^9.16.0", - "pda/pheanstalk": "^5.0.6", + "opis/json-schema": "^2.4.1", + "orchestra/testbench-core": "^10.6.5", + "pda/pheanstalk": "^5.0.6|^7.0.0", "php-http/discovery": "^1.15", "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^10.5.35|^11.3.6|^12.0.1", - "predis/predis": "^2.3", + "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", + "predis/predis": "^2.3|^3.0", "resend/resend-php": "^0.10.0", - "symfony/cache": "^7.0.3", - "symfony/http-client": "^7.0.3", - "symfony/psr-http-message-bridge": "^7.0.3", - "symfony/translation": "^7.0.3" + "symfony/cache": "^7.2.0", + "symfony/http-client": "^7.2.0", + "symfony/psr-http-message-bridge": "^7.2.0", + "symfony/translation": "^7.2.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", @@ -1552,22 +1399,22 @@ "mockery/mockery": "Required to use mocking (^1.6).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", - "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.3.6|^12.0.1).", - "predis/predis": "Required to use the predis connector (^2.3).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", + "predis/predis": "Required to use the predis connector (^2.3|^3.0).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^7.0).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).", - "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.0).", - "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.0).", - "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)." + "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "11.x-dev" + "dev-master": "12.x-dev" } }, "autoload": { @@ -1610,7 +1457,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-08-13T20:28:00+00:00" + "time": "2025-09-04T14:58:12+00:00" }, { "name": "laravel/prompts", @@ -2454,16 +2301,16 @@ }, { "name": "nesbot/carbon", - "version": "3.10.2", + "version": "3.10.3", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24" + "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24", - "reference": "76b5c07b8a9d2025ed1610e14cef1f3fd6ad2c24", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", "shasum": "" }, "require": { @@ -2481,13 +2328,13 @@ "require-dev": { "doctrine/dbal": "^3.6.3 || ^4.0", "doctrine/orm": "^2.15.2 || ^3.0", - "friendsofphp/php-cs-fixer": "^3.75.0", + "friendsofphp/php-cs-fixer": "^v3.87.1", "kylekatarnls/multi-tester": "^2.5.3", "phpmd/phpmd": "^2.15.0", "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^2.1.17", - "phpunit/phpunit": "^10.5.46", - "squizlabs/php_codesniffer": "^3.13.0" + "phpstan/phpstan": "^2.1.22", + "phpunit/phpunit": "^10.5.53", + "squizlabs/php_codesniffer": "^3.13.4" }, "bin": [ "bin/carbon" @@ -2555,7 +2402,7 @@ "type": "tidelift" } ], - "time": "2025-08-02T09:36:06+00:00" + "time": "2025-09-06T13:39:36+00:00" }, { "name": "nette/schema", @@ -2843,15 +2690,170 @@ "type": "custom" }, { - "url": "https://github.com/nunomaduro", - "type": "github" + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2025-05-08T08:14:37+00:00" + }, + { + "name": "opgginc/codezero-laravel-localized-routes", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/opgginc/codezero-laravel-localized-routes.git", + "reference": "8467e58fbb8fa818f8a275c54c93de5d1e622059" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opgginc/codezero-laravel-localized-routes/zipball/8467e58fbb8fa818f8a275c54c93de5d1e622059", + "reference": "8467e58fbb8fa818f8a275c54c93de5d1e622059", + "shasum": "" + }, + "require": { + "codezero/browser-locale": "^3.0", + "codezero/composer-preload-files": "^1.0", + "codezero/php-url-builder": "^1.0", + "illuminate/support": "^10.0|^11.0|^12.0", + "opgginc/codezero-laravel-uri-translator": "^2.0", + "php": "^8.1|^8.2|^8.3" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "orchestra/testbench": "^8.0|^9.0|^10.0", + "phpunit/phpunit": "^10.5|^11.0" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "LocaleConfig": "CodeZero\\LocalizedRoutes\\Facades\\LocaleConfig" + }, + "providers": [ + "CodeZero\\LocalizedRoutes\\LocalizedRoutesServiceProvider" + ] + }, + "preload-files": [ + "src/helpers.php" + ] + }, + "autoload": { + "psr-4": { + "CodeZero\\LocalizedRoutes\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ivan Vermeyen", + "email": "ivan@codezero.be" + } + ], + "description": "A convenient way to set up, manage and use localized routes in a Laravel app.", + "keywords": [ + "country", + "language", + "laravel", + "locale", + "localization", + "php", + "routes", + "routing", + "translation" + ], + "support": { + "source": "https://github.com/opgginc/codezero-laravel-localized-routes/tree/5.1.0" + }, + "funding": [ + { + "url": "https://paypal.me/ivanvermeyen", + "type": "custom" + }, + { + "url": "https://ko-fi.com/ivanvermeyen", + "type": "ko_fi" + } + ], + "time": "2025-04-19T07:49:28+00:00" + }, + { + "name": "opgginc/codezero-laravel-uri-translator", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/opgginc/codezero-laravel-uri-translator.git", + "reference": "3dc32a4ced55ce48f06b7f55e2d910854261cc0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opgginc/codezero-laravel-uri-translator/zipball/3dc32a4ced55ce48f06b7f55e2d910854261cc0c", + "reference": "3dc32a4ced55ce48f06b7f55e2d910854261cc0c", + "shasum": "" + }, + "require": { + "illuminate/support": "^10.0|^11.0|^12.0", + "php": "^8.1|^8.2|^8.3|^8.4" + }, + "require-dev": { + "orchestra/testbench": "^8.0|^9.0|^10.0", + "phpunit/phpunit": "^10.5|^11.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "CodeZero\\UriTranslator\\UriTranslatorServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "CodeZero\\UriTranslator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ivan Vermeyen", + "email": "ivan@codezero.be" + } + ], + "description": "Translate a URI or individual slugs.", + "keywords": [ + "country", + "language", + "laravel", + "locale", + "localization", + "php", + "slugs", + "uri", + "url" + ], + "support": { + "source": "https://github.com/opgginc/codezero-laravel-uri-translator/tree/2.0.1" + }, + "funding": [ + { + "url": "https://paypal.me/ivanvermeyen", + "type": "custom" }, { - "url": "https://github.com/xiCO2k", - "type": "github" + "url": "https://ko-fi.com/ivanvermeyen", + "type": "ko_fi" } ], - "time": "2025-05-08T08:14:37+00:00" + "time": "2025-04-06T12:59:01+00:00" }, { "name": "phlak/semver", @@ -2914,16 +2916,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.9.3", + "version": "1.9.4", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" + "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", - "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", + "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", "shasum": "" }, "require": { @@ -2931,7 +2933,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" }, "type": "library", "extra": { @@ -2973,7 +2975,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.4" }, "funding": [ { @@ -2985,7 +2987,7 @@ "type": "tidelift" } ], - "time": "2024-07-20T21:41:07+00:00" + "time": "2025-08-21T11:53:16+00:00" }, { "name": "psr/clock", @@ -3599,20 +3601,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.0", + "version": "4.9.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0" + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -3671,9 +3673,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.0" + "source": "https://github.com/ramsey/uuid/tree/4.9.1" }, - "time": "2025-06-25T14:20:11+00:00" + "time": "2025-09-04T20:59:21+00:00" }, { "name": "silber/page-cache", @@ -3742,16 +3744,16 @@ }, { "name": "spatie/backtrace", - "version": "1.7.4", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "cd37a49fce7137359ac30ecc44ef3e16404cccbe" + "reference": "8c0f16a59ae35ec8c62d85c3c17585158f430110" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/cd37a49fce7137359ac30ecc44ef3e16404cccbe", - "reference": "cd37a49fce7137359ac30ecc44ef3e16404cccbe", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/8c0f16a59ae35ec8c62d85c3c17585158f430110", + "reference": "8c0f16a59ae35ec8c62d85c3c17585158f430110", "shasum": "" }, "require": { @@ -3789,7 +3791,8 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/backtrace/tree/1.7.4" + "issues": "https://github.com/spatie/backtrace/issues", + "source": "https://github.com/spatie/backtrace/tree/1.8.1" }, "funding": [ { @@ -3801,7 +3804,7 @@ "type": "other" } ], - "time": "2025-05-08T15:41:09+00:00" + "time": "2025-08-26T08:22:30+00:00" }, { "name": "spatie/error-solutions", @@ -4196,16 +4199,16 @@ }, { "name": "symfony/console", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "5f360ebc65c55265a74d23d7fe27f957870158a1" + "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/5f360ebc65c55265a74d23d7fe27f957870158a1", - "reference": "5f360ebc65c55265a74d23d7fe27f957870158a1", + "url": "https://api.github.com/repos/symfony/console/zipball/cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7", + "reference": "cb0102a1c5ac3807cf3fdf8bea96007df7fdbea7", "shasum": "" }, "require": { @@ -4270,7 +4273,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.3.2" + "source": "https://github.com/symfony/console/tree/v7.3.3" }, "funding": [ { @@ -4290,7 +4293,7 @@ "type": "tidelift" } ], - "time": "2025-07-30T17:13:41+00:00" + "time": "2025-08-25T06:35:40+00:00" }, { "name": "symfony/css-selector", @@ -4507,16 +4510,16 @@ }, { "name": "symfony/event-dispatcher", - "version": "v7.3.0", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "497f73ac996a598c92409b44ac43b6690c4f666d" + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d", - "reference": "497f73ac996a598c92409b44ac43b6690c4f666d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", "shasum": "" }, "require": { @@ -4567,7 +4570,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" }, "funding": [ { @@ -4578,12 +4581,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-22T09:11:45+00:00" + "time": "2025-08-13T11:49:31+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4731,16 +4738,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "6877c122b3a6cc3695849622720054f6e6fa5fa6" + "reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6877c122b3a6cc3695849622720054f6e6fa5fa6", - "reference": "6877c122b3a6cc3695849622720054f6e6fa5fa6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/7475561ec27020196c49bb7c4f178d33d7d3dc00", + "reference": "7475561ec27020196c49bb7c4f178d33d7d3dc00", "shasum": "" }, "require": { @@ -4790,7 +4797,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.3.2" + "source": "https://github.com/symfony/http-foundation/tree/v7.3.3" }, "funding": [ { @@ -4810,20 +4817,20 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:47:49+00:00" + "time": "2025-08-20T08:04:18+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "6ecc895559ec0097e221ed2fd5eb44d5fede083c" + "reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6ecc895559ec0097e221ed2fd5eb44d5fede083c", - "reference": "6ecc895559ec0097e221ed2fd5eb44d5fede083c", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/72c304de37e1a1cec6d5d12b81187ebd4850a17b", + "reference": "72c304de37e1a1cec6d5d12b81187ebd4850a17b", "shasum": "" }, "require": { @@ -4908,7 +4915,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.3.2" + "source": "https://github.com/symfony/http-kernel/tree/v7.3.3" }, "funding": [ { @@ -4928,20 +4935,20 @@ "type": "tidelift" } ], - "time": "2025-07-31T10:45:04+00:00" + "time": "2025-08-29T08:23:45+00:00" }, { "name": "symfony/mailer", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "d43e84d9522345f96ad6283d5dfccc8c1cfc299b" + "reference": "a32f3f45f1990db8c4341d5122a7d3a381c7e575" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/d43e84d9522345f96ad6283d5dfccc8c1cfc299b", - "reference": "d43e84d9522345f96ad6283d5dfccc8c1cfc299b", + "url": "https://api.github.com/repos/symfony/mailer/zipball/a32f3f45f1990db8c4341d5122a7d3a381c7e575", + "reference": "a32f3f45f1990db8c4341d5122a7d3a381c7e575", "shasum": "" }, "require": { @@ -4992,7 +4999,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.3.2" + "source": "https://github.com/symfony/mailer/tree/v7.3.3" }, "funding": [ { @@ -5012,7 +5019,7 @@ "type": "tidelift" } ], - "time": "2025-07-15T11:36:08+00:00" + "time": "2025-08-13T11:49:31+00:00" }, { "name": "symfony/mime", @@ -5104,7 +5111,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -5163,7 +5170,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -5174,6 +5181,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5183,16 +5194,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -5241,7 +5252,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -5252,16 +5263,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", @@ -5324,7 +5339,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0" }, "funding": [ { @@ -5335,6 +5350,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5344,7 +5363,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -5405,7 +5424,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -5416,6 +5435,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5425,7 +5448,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -5486,7 +5509,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -5497,6 +5520,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5506,7 +5533,7 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", @@ -5566,7 +5593,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -5577,6 +5604,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5586,16 +5617,16 @@ }, { "name": "symfony/polyfill-php83", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", - "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", "shasum": "" }, "require": { @@ -5642,7 +5673,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" }, "funding": [ { @@ -5653,16 +5684,180 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-07-08T02:45:35+00:00" + }, + { + "name": "symfony/polyfill-php84", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php84\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "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": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-24T13:30:11+00:00" + }, + { + "name": "symfony/polyfill-php85", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php85\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "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": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-23T16:12:55+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", @@ -5721,7 +5916,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0" }, "funding": [ { @@ -5732,6 +5927,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5741,16 +5940,16 @@ }, { "name": "symfony/process", - "version": "v7.3.0", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af" + "reference": "32241012d521e2e8a9d713adb0812bb773b907f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/40c295f2deb408d5e9d2d32b8ba1dd61e36f05af", - "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af", + "url": "https://api.github.com/repos/symfony/process/zipball/32241012d521e2e8a9d713adb0812bb773b907f1", + "reference": "32241012d521e2e8a9d713adb0812bb773b907f1", "shasum": "" }, "require": { @@ -5782,7 +5981,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.3.0" + "source": "https://github.com/symfony/process/tree/v7.3.3" }, "funding": [ { @@ -5793,12 +5992,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-17T09:11:12+00:00" + "time": "2025-08-18T09:42:54+00:00" }, { "name": "symfony/routing", @@ -5970,16 +6173,16 @@ }, { "name": "symfony/string", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "42f505aff654e62ac7ac2ce21033818297ca89ca" + "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/42f505aff654e62ac7ac2ce21033818297ca89ca", - "reference": "42f505aff654e62ac7ac2ce21033818297ca89ca", + "url": "https://api.github.com/repos/symfony/string/zipball/17a426cce5fd1f0901fefa9b2a490d0038fd3c9c", + "reference": "17a426cce5fd1f0901fefa9b2a490d0038fd3c9c", "shasum": "" }, "require": { @@ -6037,7 +6240,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.2" + "source": "https://github.com/symfony/string/tree/v7.3.3" }, "funding": [ { @@ -6057,20 +6260,20 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:47:49+00:00" + "time": "2025-08-25T06:35:40+00:00" }, { "name": "symfony/translation", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "81b48f4daa96272efcce9c7a6c4b58e629df3c90" + "reference": "e0837b4cbcef63c754d89a4806575cada743a38d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/81b48f4daa96272efcce9c7a6c4b58e629df3c90", - "reference": "81b48f4daa96272efcce9c7a6c4b58e629df3c90", + "url": "https://api.github.com/repos/symfony/translation/zipball/e0837b4cbcef63c754d89a4806575cada743a38d", + "reference": "e0837b4cbcef63c754d89a4806575cada743a38d", "shasum": "" }, "require": { @@ -6137,7 +6340,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.3.2" + "source": "https://github.com/symfony/translation/tree/v7.3.3" }, "funding": [ { @@ -6157,7 +6360,7 @@ "type": "tidelift" } ], - "time": "2025-07-30T17:31:46+00:00" + "time": "2025-08-01T21:02:37+00:00" }, { "name": "symfony/translation-contracts", @@ -6313,16 +6516,16 @@ }, { "name": "symfony/var-dumper", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "53205bea27450dc5c65377518b3275e126d45e75" + "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/53205bea27450dc5c65377518b3275e126d45e75", - "reference": "53205bea27450dc5c65377518b3275e126d45e75", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/34d8d4c4b9597347306d1ec8eb4e1319b1e6986f", + "reference": "34d8d4c4b9597347306d1ec8eb4e1319b1e6986f", "shasum": "" }, "require": { @@ -6376,7 +6579,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.3.2" + "source": "https://github.com/symfony/var-dumper/tree/v7.3.3" }, "funding": [ { @@ -6396,7 +6599,7 @@ "type": "tidelift" } ], - "time": "2025-07-29T20:02:46+00:00" + "time": "2025-08-13T11:49:31+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -6914,16 +7117,16 @@ }, { "name": "fidry/cpu-core-counter", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "8520451a140d3f46ac33042715115e290cf5785f" + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", - "reference": "8520451a140d3f46ac33042715115e290cf5785f", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", "shasum": "" }, "require": { @@ -6933,10 +7136,10 @@ "fidry/makefile": "^0.2.0", "fidry/php-cs-fixer-config": "^1.1.2", "phpstan/extension-installer": "^1.2.0", - "phpstan/phpstan": "^1.9.2", - "phpstan/phpstan-deprecation-rules": "^1.0.0", - "phpstan/phpstan-phpunit": "^1.2.2", - "phpstan/phpstan-strict-rules": "^1.4.4", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", "phpunit/phpunit": "^8.5.31 || ^9.5.26", "webmozarts/strict-phpunit": "^7.5" }, @@ -6963,7 +7166,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" }, "funding": [ { @@ -6971,7 +7174,7 @@ "type": "github" } ], - "time": "2024-08-06T10:04:20+00:00" + "time": "2025-08-14T07:29:31+00:00" }, { "name": "filp/whoops", @@ -7155,18 +7358,97 @@ }, "time": "2025-03-19T14:43:43+00:00" }, + { + "name": "laravel/pail", + "version": "v1.2.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/pail.git", + "reference": "8cc3d575c1f0e57eeb923f366a37528c50d2385a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pail/zipball/8cc3d575c1f0e57eeb923f366a37528c50d2385a", + "reference": "8cc3d575c1f0e57eeb923f366a37528c50d2385a", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/console": "^10.24|^11.0|^12.0", + "illuminate/contracts": "^10.24|^11.0|^12.0", + "illuminate/log": "^10.24|^11.0|^12.0", + "illuminate/process": "^10.24|^11.0|^12.0", + "illuminate/support": "^10.24|^11.0|^12.0", + "nunomaduro/termwind": "^1.15|^2.0", + "php": "^8.2", + "symfony/console": "^6.0|^7.0" + }, + "require-dev": { + "laravel/framework": "^10.24|^11.0|^12.0", + "laravel/pint": "^1.13", + "orchestra/testbench-core": "^8.13|^9.0|^10.0", + "pestphp/pest": "^2.20|^3.0", + "pestphp/pest-plugin-type-coverage": "^2.3|^3.0", + "phpstan/phpstan": "^1.12.27", + "symfony/var-dumper": "^6.3|^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Pail\\PailServiceProvider" + ] + }, + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\Pail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Easily delve into your Laravel application's log files directly from the command line.", + "homepage": "https://github.com/laravel/pail", + "keywords": [ + "dev", + "laravel", + "logs", + "php", + "tail" + ], + "support": { + "issues": "https://github.com/laravel/pail/issues", + "source": "https://github.com/laravel/pail" + }, + "time": "2025-06-05T13:55:57+00:00" + }, { "name": "laravel/sail", - "version": "v1.44.0", + "version": "v1.45.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "a09097bd2a8a38e23ac472fa6a6cf5b0d1c1d3fe" + "reference": "019a2933ff4a9199f098d4259713f9bc266a874e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/a09097bd2a8a38e23ac472fa6a6cf5b0d1c1d3fe", - "reference": "a09097bd2a8a38e23ac472fa6a6cf5b0d1c1d3fe", + "url": "https://api.github.com/repos/laravel/sail/zipball/019a2933ff4a9199f098d4259713f9bc266a874e", + "reference": "019a2933ff4a9199f098d4259713f9bc266a874e", "shasum": "" }, "require": { @@ -7216,7 +7498,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2025-07-04T16:17:06+00:00" + "time": "2025-08-25T19:28:31+00:00" }, { "name": "mockery/mockery", @@ -7653,16 +7935,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.10", + "version": "11.0.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "1a800a7446add2d79cc6b3c01c45381810367d76" + "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/1a800a7446add2d79cc6b3c01c45381810367d76", - "reference": "1a800a7446add2d79cc6b3c01c45381810367d76", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", "shasum": "" }, "require": { @@ -7719,7 +8001,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/show" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.11" }, "funding": [ { @@ -7739,7 +8021,7 @@ "type": "tidelift" } ], - "time": "2025-06-18T08:56:18+00:00" + "time": "2025-08-27T14:37:49+00:00" }, { "name": "phpunit/php-file-iterator", @@ -7988,16 +8270,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.32", + "version": "11.5.39", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "101e132dcf9e74a1eb3a309b4f686114ae8f7f36" + "reference": "ad5597f79d8489d2870073ac0bc0dd0ad1fa9931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/101e132dcf9e74a1eb3a309b4f686114ae8f7f36", - "reference": "101e132dcf9e74a1eb3a309b4f686114ae8f7f36", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ad5597f79d8489d2870073ac0bc0dd0ad1fa9931", + "reference": "ad5597f79d8489d2870073ac0bc0dd0ad1fa9931", "shasum": "" }, "require": { @@ -8011,7 +8293,7 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.10", + "phpunit/php-code-coverage": "^11.0.11", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-invoker": "^5.0.1", "phpunit/php-text-template": "^4.0.1", @@ -8069,7 +8351,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.32" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.39" }, "funding": [ { @@ -8093,7 +8375,7 @@ "type": "tidelift" } ], - "time": "2025-08-12T07:32:49+00:00" + "time": "2025-09-14T06:20:41+00:00" }, { "name": "sebastian/cli-parser", @@ -9123,16 +9405,16 @@ }, { "name": "symfony/yaml", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "b8d7d868da9eb0919e99c8830431ea087d6aae30" + "reference": "d4f4a66866fe2451f61296924767280ab5732d9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/b8d7d868da9eb0919e99c8830431ea087d6aae30", - "reference": "b8d7d868da9eb0919e99c8830431ea087d6aae30", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d4f4a66866fe2451f61296924767280ab5732d9d", + "reference": "d4f4a66866fe2451f61296924767280ab5732d9d", "shasum": "" }, "require": { @@ -9175,7 +9457,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.3.2" + "source": "https://github.com/symfony/yaml/tree/v7.3.3" }, "funding": [ { @@ -9195,7 +9477,7 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:47:49+00:00" + "time": "2025-08-27T11:34:33+00:00" }, { "name": "theseer/tokenizer", @@ -9322,7 +9604,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^8.2" + "php": "^8.4" }, "platform-dev": {}, "plugin-api-version": "2.6.0" From 08160cc1da324d149502b10dff697307d7536529 Mon Sep 17 00:00:00 2001 From: Anthony Clark Date: Sun, 14 Sep 2025 21:36:32 -0700 Subject: [PATCH 18/19] Format code --- .../Commands/FetchLatestReleaseNumbers.php | 10 +++++----- .../FixableInvalidVersionException.php | 2 +- .../Controllers/LaravelVersionsController.php | 4 ++-- app/Models/LaravelVersion.php | 16 ++++++++-------- app/Providers/AppServiceProvider.php | 2 +- bootstrap/app.php | 4 ++-- config/database.php | 2 +- config/filesystems.php | 2 +- config/logging.php | 2 +- database/seeders/LaravelVersionSeeder.php | 2 +- public/index.php | 6 +++--- 11 files changed, 26 insertions(+), 26 deletions(-) diff --git a/app/Console/Commands/FetchLatestReleaseNumbers.php b/app/Console/Commands/FetchLatestReleaseNumbers.php index 3c8ddd6..d9b8b69 100644 --- a/app/Console/Commands/FetchLatestReleaseNumbers.php +++ b/app/Console/Commands/FetchLatestReleaseNumbers.php @@ -89,7 +89,7 @@ public function handle(): int $this->fetchVersionsFromGitHub() ->each(function ($item) use ($manualData) { $semver = new Version($item['name']); - $manualMajor = $manualData[$semver->major > 5 ? $semver->major : $semver->major.'.'.$semver->minor]; + $manualMajor = $manualData[$semver->major > 5 ? $semver->major : $semver->major . '.' . $semver->minor]; $versionMeta = [ 'changelog' => $item['changelog'], @@ -110,11 +110,11 @@ public function handle(): int if ($version->isDirty()) { $version->save(); - $this->info('Updated Laravel version '.$semver); + $this->info('Updated Laravel version ' . $semver); } if ($version->wasRecentlyCreated) { - $this->info('Created Laravel version '.$semver); + $this->info('Created Laravel version ' . $semver); } }); @@ -143,7 +143,7 @@ private function fetchVersionsFromGitHub() $responseJson = $response->json(); if (! $response->ok()) { - abort($response->getStatusCode(), 'Error connecting to GitHub: '.$responseJson['message']); + abort($response->getStatusCode(), 'Error connecting to GitHub: ' . $responseJson['message']); } $carry = $carry->merge( @@ -160,7 +160,7 @@ private function fetchVersionsFromGitHub() $nextPage = data_get($responseJson, "data.repository.{$key}.pageInfo")['endCursor']; if ($nextPage) { - $query['filters']['after'] = '"'.$nextPage.'"'; + $query['filters']['after'] = '"' . $nextPage . '"'; } } while ($nextPage); diff --git a/app/Exceptions/FixableInvalidVersionException.php b/app/Exceptions/FixableInvalidVersionException.php index 481f6e7..90eef2a 100644 --- a/app/Exceptions/FixableInvalidVersionException.php +++ b/app/Exceptions/FixableInvalidVersionException.php @@ -18,7 +18,7 @@ public function __construct($message, $code = 0, ?Exception $previous = null, $r public static function toUrl($redirectTo) { return new static( - 'Redirect to '.$redirectTo, + 'Redirect to ' . $redirectTo, 0, null, $redirectTo diff --git a/app/Http/Controllers/LaravelVersionsController.php b/app/Http/Controllers/LaravelVersionsController.php index 8e11d99..8f5c59a 100644 --- a/app/Http/Controllers/LaravelVersionsController.php +++ b/app/Http/Controllers/LaravelVersionsController.php @@ -33,11 +33,11 @@ public function index(): View public function show($path): View { - $version = Cache::remember('laravel-versions-'.$path, 3600, function () use ($path) { + $version = Cache::remember('laravel-versions-' . $path, 3600, function () use ($path) { return (new LaravelVersionFromPath)($path); }); - $releases = Cache::remember('laravel-versions-'.$version->majorish.'-releases', 3600, function () use ($version) { + $releases = Cache::remember('laravel-versions-' . $version->majorish . '-releases', 3600, function () use ($version) { return $version->getReleases(); }); diff --git a/app/Models/LaravelVersion.php b/app/Models/LaravelVersion.php index 4f537db..38cd6f6 100644 --- a/app/Models/LaravelVersion.php +++ b/app/Models/LaravelVersion.php @@ -41,7 +41,7 @@ public static function calculateOrder($major, $minor, $patch): int protected static function booted(): void { static::addGlobalScope('first', function (Builder $builder) { - $builder->whereRaw('first_release = '.DB::concat('major', "'.'", 'minor', "'.'", 'patch')->getValue(DB::connection()->getQueryGrammar())); + $builder->whereRaw('first_release = ' . DB::concat('major', "'.'", 'minor', "'.'", 'patch')->getValue(DB::connection()->getQueryGrammar())); }); static::saving(function (self $version) { @@ -70,12 +70,6 @@ public function last(): HasOne ->ofMany(['order' => 'MAX']); } - #[Scope] - protected function released($query) - { - $query->where('released_at', '<=', now()); - } - public function getReleases(): Collection { return static::withoutGlobalScope('first') @@ -120,7 +114,7 @@ public function getStatusAttribute() public function getMajorishAttribute(): string { return $this->pre_semver - ? $this->major.'.'.$this->minor + ? $this->major . '.' . $this->minor : $this->major; } @@ -161,6 +155,12 @@ public function needsNotification() return false; } + #[Scope] + protected function released($query) + { + $query->where('released_at', '<=', now()); + } + protected function casts(): array { return [ diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index d8f8581..d47d947 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -13,7 +13,7 @@ public function boot(): void DB::macro('concat', function (...$parts) { return match (config('database.default')) { 'sqlite' => DB::raw(implode(' || ', $parts)), - default => DB::raw('CONCAT('.implode(', ', $parts).')'), + default => DB::raw('CONCAT(' . implode(', ', $parts) . ')'), }; }); } diff --git a/bootstrap/app.php b/bootstrap/app.php index 7127de1..6a7fb18 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -7,8 +7,8 @@ return Application::configure(basePath: dirname(__DIR__)) ->withRouting( - web: __DIR__.'/../routes/web.php', - commands: __DIR__.'/../routes/console.php', + web: __DIR__ . '/../routes/web.php', + commands: __DIR__ . '/../routes/console.php', health: '/up', then: function () { Route::prefix('api') diff --git a/config/database.php b/config/database.php index 8910562..9c0d004 100644 --- a/config/database.php +++ b/config/database.php @@ -147,7 +147,7 @@ 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), - 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'), 'persistent' => env('REDIS_PERSISTENT', false), ], diff --git a/config/filesystems.php b/config/filesystems.php index 3d671bd..9c9b882 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -41,7 +41,7 @@ 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), - 'url' => env('APP_URL').'/storage', + 'url' => env('APP_URL') . '/storage', 'visibility' => 'public', 'throw' => false, 'report' => false, diff --git a/config/logging.php b/config/logging.php index 95cc218..d48aa31 100644 --- a/config/logging.php +++ b/config/logging.php @@ -93,7 +93,7 @@ 'handler_with' => [ 'host' => env('PAPERTRAIL_URL'), 'port' => env('PAPERTRAIL_PORT'), - 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://' . env('PAPERTRAIL_URL') . ':' . env('PAPERTRAIL_PORT'), ], 'processors' => [PsrLogMessageProcessor::class], ], diff --git a/database/seeders/LaravelVersionSeeder.php b/database/seeders/LaravelVersionSeeder.php index 6854285..105376d 100644 --- a/database/seeders/LaravelVersionSeeder.php +++ b/database/seeders/LaravelVersionSeeder.php @@ -19,7 +19,7 @@ public function run(): void public function versions(): Collection { return collect(json_decode(File::get(base_path('manual-version-info.json')), true))->map(function ($version) { - $release = str_contains($version['release'], '.') ? $version['release'] : $version['release'].'.0'; + $release = str_contains($version['release'], '.') ? $version['release'] : $version['release'] . '.0'; [$major, $minor] = explode('.', $release); unset($version['release']); $version['major'] = $major; diff --git a/public/index.php b/public/index.php index ee8f07e..86bfe78 100644 --- a/public/index.php +++ b/public/index.php @@ -6,15 +6,15 @@ define('LARAVEL_START', microtime(true)); // Determine if the application is in maintenance mode... -if (file_exists($maintenance = __DIR__.'/../storage/framework/maintenance.php')) { +if (file_exists($maintenance = __DIR__ . '/../storage/framework/maintenance.php')) { require $maintenance; } // Register the Composer autoloader... -require __DIR__.'/../vendor/autoload.php'; +require __DIR__ . '/../vendor/autoload.php'; // Bootstrap Laravel and handle the request... /** @var Application $app */ -$app = require_once __DIR__.'/../bootstrap/app.php'; +$app = require_once __DIR__ . '/../bootstrap/app.php'; $app->handleRequest(Request::capture()); From 53f0b4f53761e1c523c35beedee846afeb39f4b1 Mon Sep 17 00:00:00 2001 From: Anthony Clark Date: Sun, 14 Sep 2025 21:39:39 -0700 Subject: [PATCH 19/19] Update tests --- composer.json | 2 +- composer.lock | 575 ++++++++----------- phpunit.xml | 2 +- tests/Feature/ApiListVersionsTest.php | 13 +- tests/Feature/ApiShowVersionTest.php | 5 +- tests/Feature/ExampleTest.php | 9 +- tests/Feature/LaravelVersionFromPathTest.php | 15 +- tests/Feature/LaravelVersionTest.php | 3 +- tests/Feature/ListVersionsTest.php | 3 +- tests/Feature/NotificationTest.php | 5 +- tests/Feature/ShowVersionTest.php | 7 +- tests/Feature/TweetImportantDatesTest.php | 13 +- tests/Unit/ExampleTest.php | 5 +- 13 files changed, 284 insertions(+), 373 deletions(-) diff --git a/composer.json b/composer.json index c534b38..5d061de 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "laravel/sail": "^1.41", "mockery/mockery": "^1.6.12", "nunomaduro/collision": "^8.6", - "phpunit/phpunit": "^11.5.3", + "phpunit/phpunit": "^12.0", "tightenco/duster": "^3.1", "laravel/pail": "^1.2.2" }, diff --git a/composer.lock b/composer.lock index fddf2f5..65e27ed 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": "a0c4e399eb545dfd249838423f9cd241", + "content-hash": "1b36243b3eae4c296adfd5af3ec90375", "packages": [ { "name": "brick/math", @@ -6961,16 +6961,16 @@ }, { "name": "brianium/paratest", - "version": "v7.8.4", + "version": "v7.13.0", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "130a9bf0e269ee5f5b320108f794ad03e275cad4" + "reference": "0b9a8c5b064dd502fc72d89e4a550619482906d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/130a9bf0e269ee5f5b320108f794ad03e275cad4", - "reference": "130a9bf0e269ee5f5b320108f794ad03e275cad4", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/0b9a8c5b064dd502fc72d89e4a550619482906d1", + "reference": "0b9a8c5b064dd502fc72d89e4a550619482906d1", "shasum": "" }, "require": { @@ -6978,27 +6978,28 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.2.0", + "fidry/cpu-core-counter": "^1.3.0", "jean85/pretty-package-versions": "^2.1.1", - "php": "~8.2.0 || ~8.3.0 || ~8.4.0", - "phpunit/php-code-coverage": "^11.0.10", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-timer": "^7.0.1", - "phpunit/phpunit": "^11.5.24", - "sebastian/environment": "^7.2.1", - "symfony/console": "^6.4.22 || ^7.3.0", + "php": "~8.3.0 || ~8.4.0 || ~8.5.0", + "phpunit/php-code-coverage": "^12.3.7", + "phpunit/php-file-iterator": "^6", + "phpunit/php-timer": "^8", + "phpunit/phpunit": "^12.3.9", + "sebastian/environment": "^8.0.3", + "symfony/console": "^6.4.20 || ^7.3.2", "symfony/process": "^6.4.20 || ^7.3.0" }, "require-dev": { - "doctrine/coding-standard": "^12.0.0", + "doctrine/coding-standard": "^13.0.1", + "ext-pcntl": "*", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan": "^2.1.23", "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpstan/phpstan-phpunit": "^2.0.6", - "phpstan/phpstan-strict-rules": "^2.0.4", - "squizlabs/php_codesniffer": "^3.13.2", - "symfony/filesystem": "^6.4.13 || ^7.3.0" + "phpstan/phpstan-phpunit": "^2.0.7", + "phpstan/phpstan-strict-rules": "^2.0.6", + "squizlabs/php_codesniffer": "^3.13.4", + "symfony/filesystem": "^6.4.13 || ^7.3.2" }, "bin": [ "bin/paratest", @@ -7038,7 +7039,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.8.4" + "source": "https://github.com/paratestphp/paratest/tree/v7.13.0" }, "funding": [ { @@ -7050,7 +7051,7 @@ "type": "paypal" } ], - "time": "2025-06-23T06:07:21+00:00" + "time": "2025-09-12T14:29:45+00:00" }, { "name": "fakerphp/faker", @@ -7935,35 +7936,34 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.11", + "version": "12.3.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4" + "reference": "bbede0f5593dad37af3be6a6f8e6ae1885e8a0a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", - "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bbede0f5593dad37af3be6a6f8e6ae1885e8a0a9", + "reference": "bbede0f5593dad37af3be6a6f8e6ae1885e8a0a9", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.4.0", - "php": ">=8.2", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-text-template": "^4.0.1", - "sebastian/code-unit-reverse-lookup": "^4.0.1", - "sebastian/complexity": "^4.0.1", - "sebastian/environment": "^7.2.0", - "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.2", + "nikic/php-parser": "^5.6.1", + "php": ">=8.3", + "phpunit/php-file-iterator": "^6.0", + "phpunit/php-text-template": "^5.0", + "sebastian/complexity": "^5.0", + "sebastian/environment": "^8.0.3", + "sebastian/lines-of-code": "^4.0", + "sebastian/version": "^6.0", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^11.5.2" + "phpunit/phpunit": "^12.3.7" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -7972,7 +7972,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "11.0.x-dev" + "dev-main": "12.3.x-dev" } }, "autoload": { @@ -8001,7 +8001,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.3.7" }, "funding": [ { @@ -8021,32 +8021,32 @@ "type": "tidelift" } ], - "time": "2025-08-27T14:37:49+00:00" + "time": "2025-09-10T09:59:06+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "5.1.0", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" + "reference": "961bc913d42fe24a257bfff826a5068079ac7782" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/961bc913d42fe24a257bfff826a5068079ac7782", + "reference": "961bc913d42fe24a257bfff826a5068079ac7782", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -8074,7 +8074,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.0" }, "funding": [ { @@ -8082,28 +8082,28 @@ "type": "github" } ], - "time": "2024-08-27T05:02:59+00:00" + "time": "2025-02-07T04:58:37+00:00" }, { "name": "phpunit/php-invoker", - "version": "5.0.1", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", - "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-pcntl": "*" @@ -8111,7 +8111,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -8138,7 +8138,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" }, "funding": [ { @@ -8146,32 +8146,32 @@ "type": "github" } ], - "time": "2024-07-03T05:07:44+00:00" + "time": "2025-02-07T04:58:58+00:00" }, { "name": "phpunit/php-text-template", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", - "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", + "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -8198,7 +8198,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" }, "funding": [ { @@ -8206,32 +8206,32 @@ "type": "github" } ], - "time": "2024-07-03T05:08:43+00:00" + "time": "2025-02-07T04:59:16+00:00" }, { "name": "phpunit/php-timer", - "version": "7.0.1", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", - "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -8258,7 +8258,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" }, "funding": [ { @@ -8266,20 +8266,20 @@ "type": "github" } ], - "time": "2024-07-03T05:09:35+00:00" + "time": "2025-02-07T04:59:38+00:00" }, { "name": "phpunit/phpunit", - "version": "11.5.39", + "version": "12.3.11", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "ad5597f79d8489d2870073ac0bc0dd0ad1fa9931" + "reference": "6a62f2b394e042884e4997ddc8b8db1ce56a0009" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ad5597f79d8489d2870073ac0bc0dd0ad1fa9931", - "reference": "ad5597f79d8489d2870073ac0bc0dd0ad1fa9931", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6a62f2b394e042884e4997ddc8b8db1ce56a0009", + "reference": "6a62f2b394e042884e4997ddc8b8db1ce56a0009", "shasum": "" }, "require": { @@ -8292,34 +8292,30 @@ "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.11", - "phpunit/php-file-iterator": "^5.1.0", - "phpunit/php-invoker": "^5.0.1", - "phpunit/php-text-template": "^4.0.1", - "phpunit/php-timer": "^7.0.1", - "sebastian/cli-parser": "^3.0.2", - "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.2", - "sebastian/diff": "^6.0.2", - "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.0", - "sebastian/global-state": "^7.0.2", - "sebastian/object-enumerator": "^6.0.1", - "sebastian/type": "^5.1.3", - "sebastian/version": "^5.0.2", + "php": ">=8.3", + "phpunit/php-code-coverage": "^12.3.7", + "phpunit/php-file-iterator": "^6.0.0", + "phpunit/php-invoker": "^6.0.0", + "phpunit/php-text-template": "^5.0.0", + "phpunit/php-timer": "^8.0.0", + "sebastian/cli-parser": "^4.1.0", + "sebastian/comparator": "^7.1.3", + "sebastian/diff": "^7.0.0", + "sebastian/environment": "^8.0.3", + "sebastian/exporter": "^7.0.0", + "sebastian/global-state": "^8.0.2", + "sebastian/object-enumerator": "^7.0.0", + "sebastian/type": "^6.0.3", + "sebastian/version": "^6.0.0", "staabm/side-effects-detector": "^1.0.5" }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files" - }, "bin": [ "phpunit" ], "type": "library", "extra": { "branch-alias": { - "dev-main": "11.5-dev" + "dev-main": "12.3-dev" } }, "autoload": { @@ -8351,7 +8347,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.39" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.3.11" }, "funding": [ { @@ -8375,32 +8371,32 @@ "type": "tidelift" } ], - "time": "2025-09-14T06:20:41+00:00" + "time": "2025-09-14T06:21:44+00:00" }, { "name": "sebastian/cli-parser", - "version": "3.0.2", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", - "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04", + "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -8424,152 +8420,51 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - } - ], - "time": "2024-07-03T04:41:36+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "security": "https://github.com/sebastianbergmann/code-unit/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" - }, - "funding": [ + }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2025-03-19T07:56:08+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "4.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", - "reference": "183a9b2632194febd219bb9246eee421dad8d45e", - "shasum": "" - }, - "require": { - "php": ">=8.2" - }, - "require-dev": { - "phpunit/phpunit": "^11.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" - }, - "funding": [ + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" } ], - "time": "2024-07-03T04:45:54+00:00" + "time": "2025-09-14T09:36:45+00:00" }, { "name": "sebastian/comparator", - "version": "6.3.2", + "version": "7.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8" + "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8", - "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dc904b4bb3ab070865fa4068cd84f3da8b945148", + "reference": "dc904b4bb3ab070865fa4068cd84f3da8b945148", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/diff": "^6.0", - "sebastian/exporter": "^6.0" + "php": ">=8.3", + "sebastian/diff": "^7.0", + "sebastian/exporter": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.4" + "phpunit/phpunit": "^12.2" }, "suggest": { "ext-bcmath": "For comparing BcMath\\Number objects" @@ -8577,7 +8472,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "7.1-dev" } }, "autoload": { @@ -8617,7 +8512,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.3" }, "funding": [ { @@ -8637,33 +8532,33 @@ "type": "tidelift" } ], - "time": "2025-08-10T08:07:46+00:00" + "time": "2025-08-20T11:27:00+00:00" }, { "name": "sebastian/complexity", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", - "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", + "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", "shasum": "" }, "require": { "nikic/php-parser": "^5.0", - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -8687,7 +8582,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" }, "funding": [ { @@ -8695,33 +8590,33 @@ "type": "github" } ], - "time": "2024-07-03T04:49:50+00:00" + "time": "2025-02-07T04:55:25+00:00" }, { "name": "sebastian/diff", - "version": "6.0.2", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + "reference": "7ab1ea946c012266ca32390913653d844ecd085f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", - "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", + "reference": "7ab1ea946c012266ca32390913653d844ecd085f", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0", - "symfony/process": "^4.2 || ^5" + "phpunit/phpunit": "^12.0", + "symfony/process": "^7.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -8754,7 +8649,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" }, "funding": [ { @@ -8762,27 +8657,27 @@ "type": "github" } ], - "time": "2024-07-03T04:53:05+00:00" + "time": "2025-02-07T04:55:46+00:00" }, { "name": "sebastian/environment", - "version": "7.2.1", + "version": "8.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", - "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68", + "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "suggest": { "ext-posix": "*" @@ -8790,7 +8685,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "7.2-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -8818,7 +8713,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3" }, "funding": [ { @@ -8838,34 +8733,34 @@ "type": "tidelift" } ], - "time": "2025-05-21T11:55:47+00:00" + "time": "2025-08-12T14:11:56+00:00" }, { "name": "sebastian/exporter", - "version": "6.3.0", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3" + "reference": "76432aafc58d50691a00d86d0632f1217a47b688" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3", - "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/76432aafc58d50691a00d86d0632f1217a47b688", + "reference": "76432aafc58d50691a00d86d0632f1217a47b688", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.2", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.1-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -8908,7 +8803,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0" + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.0" }, "funding": [ { @@ -8916,35 +8811,35 @@ "type": "github" } ], - "time": "2024-12-05T09:17:50+00:00" + "time": "2025-02-07T04:56:42+00:00" }, { "name": "sebastian/global-state", - "version": "7.0.2", + "version": "8.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + "reference": "ef1377171613d09edd25b7816f05be8313f9115d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", - "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d", + "reference": "ef1377171613d09edd25b7816f05be8313f9115d", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -8970,41 +8865,53 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2024-07-03T04:57:36+00:00" + "time": "2025-08-29T11:29:25+00:00" }, { "name": "sebastian/lines-of-code", - "version": "3.0.1", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", - "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f", + "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f", "shasum": "" }, "require": { "nikic/php-parser": "^5.0", - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -9028,7 +8935,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/3.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.0" }, "funding": [ { @@ -9036,34 +8943,34 @@ "type": "github" } ], - "time": "2024-07-03T04:58:38+00:00" + "time": "2025-02-07T04:57:28+00:00" }, { "name": "sebastian/object-enumerator", - "version": "6.0.1", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", - "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", "shasum": "" }, "require": { - "php": ">=8.2", - "sebastian/object-reflector": "^4.0", - "sebastian/recursion-context": "^6.0" + "php": ">=8.3", + "sebastian/object-reflector": "^5.0", + "sebastian/recursion-context": "^7.0" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -9086,7 +8993,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" }, "funding": [ { @@ -9094,32 +9001,32 @@ "type": "github" } ], - "time": "2024-07-03T05:00:13+00:00" + "time": "2025-02-07T04:57:48+00:00" }, { "name": "sebastian/object-reflector", - "version": "4.0.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + "reference": "4bfa827c969c98be1e527abd576533293c634f6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", - "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", + "reference": "4bfa827c969c98be1e527abd576533293c634f6a", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -9142,7 +9049,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" }, "funding": [ { @@ -9150,32 +9057,32 @@ "type": "github" } ], - "time": "2024-07-03T05:01:32+00:00" + "time": "2025-02-07T04:58:17+00:00" }, { "name": "sebastian/recursion-context", - "version": "6.0.3", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -9206,7 +9113,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" }, "funding": [ { @@ -9226,32 +9133,32 @@ "type": "tidelift" } ], - "time": "2025-08-13T04:42:22+00:00" + "time": "2025-08-13T04:44:59+00:00" }, { "name": "sebastian/type", - "version": "5.1.3", + "version": "6.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d", + "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^12.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.1-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9275,7 +9182,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/type/tree/6.0.3" }, "funding": [ { @@ -9295,29 +9202,29 @@ "type": "tidelift" } ], - "time": "2025-08-09T06:55:48+00:00" + "time": "2025-08-09T06:57:12+00:00" }, { "name": "sebastian/version", - "version": "5.0.2", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", - "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", + "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -9341,7 +9248,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" }, "funding": [ { @@ -9349,7 +9256,7 @@ "type": "github" } ], - "time": "2024-10-09T05:16:32+00:00" + "time": "2025-02-07T05:00:38+00:00" }, { "name": "staabm/side-effects-detector", diff --git a/phpunit.xml b/phpunit.xml index 73b8bd2..e2c263f 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,5 +1,5 @@ - + ./tests/Unit diff --git a/tests/Feature/ApiListVersionsTest.php b/tests/Feature/ApiListVersionsTest.php index d1088f7..2a23ba1 100644 --- a/tests/Feature/ApiListVersionsTest.php +++ b/tests/Feature/ApiListVersionsTest.php @@ -5,13 +5,14 @@ use App\Models\LaravelVersion; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Collection; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ApiListVersionsTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function it_loads(): void { $response = $this->get(route('api.versions.index')); @@ -19,7 +20,7 @@ public function it_loads(): void $response->assertStatus(200); } - /** @test */ + #[Test] public function it_lists_valid_versions(): void { LaravelVersion::factory()->active()->create(); @@ -27,7 +28,7 @@ public function it_lists_valid_versions(): void $this->assertCount(1, $response->json()['data']); } - /** @test */ + #[Test] public function it_doesnt_list_future_versions(): void { LaravelVersion::factory()->create([ @@ -38,7 +39,7 @@ public function it_doesnt_list_future_versions(): void $this->assertEmpty($response->json()['data']); } - /** @test */ + #[Test] public function entries_arent_given_specific_version_key(): void { LaravelVersion::factory()->active()->create(); @@ -48,7 +49,7 @@ public function entries_arent_given_specific_version_key(): void $this->assertFalse(array_key_exists('specific_version', $entry)); } - /** @test */ + #[Test] public function it_lists_versions_in_expected_format(): void { $versions = $this->seedVersions( @@ -62,7 +63,7 @@ public function it_lists_versions_in_expected_format(): void $this->assertJsonStringEqualsJsonString($this->getVersionsJsonResponse(LaravelVersion::all()), $response->getContent()); } - /** @test */ + #[Test] public function it_lists_specific_version_in_expected_format(): void { $this->seedVersions( diff --git a/tests/Feature/ApiShowVersionTest.php b/tests/Feature/ApiShowVersionTest.php index ead9eff..ec3f6f3 100644 --- a/tests/Feature/ApiShowVersionTest.php +++ b/tests/Feature/ApiShowVersionTest.php @@ -4,13 +4,14 @@ use App\Models\LaravelVersion; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ApiShowVersionTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function it_loads(): void { $version = $this->seedVersions( @@ -24,7 +25,7 @@ public function it_loads(): void $response->assertStatus(200); } - /** @test */ + #[Test] public function it_loads_latest_version(): void { $this->seedVersions( diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php index d37dbb9..b6ad538 100644 --- a/tests/Feature/ExampleTest.php +++ b/tests/Feature/ExampleTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ExampleTest extends TestCase @@ -11,10 +12,8 @@ class ExampleTest extends TestCase /** * A basic test example. - * - * - * @test */ + #[Test] public function basic_test(): void { $response = $this->get('/en'); @@ -24,10 +23,8 @@ public function basic_test(): void /** * A basic test example. - * - * - * @test */ + #[Test] public function redirection_test(): void { $response = $this->get('/'); diff --git a/tests/Feature/LaravelVersionFromPathTest.php b/tests/Feature/LaravelVersionFromPathTest.php index 8356739..a1d2b64 100644 --- a/tests/Feature/LaravelVersionFromPathTest.php +++ b/tests/Feature/LaravelVersionFromPathTest.php @@ -4,13 +4,14 @@ use App\Models\LaravelVersion; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class LaravelVersionFromPathTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function non_version_shaped_path_throws_404(): void { $this->get('/en/fancy.1.4') @@ -20,7 +21,7 @@ public function non_version_shaped_path_throws_404(): void ->assertNotFound(); } - /** @test */ + #[Test] public function versions_after_five_dont_require_a_minor(): void { LaravelVersion::factory()->create([ @@ -37,7 +38,7 @@ public function versions_after_five_dont_require_a_minor(): void ->assertOk(); } - /** @test */ + #[Test] public function versions_before_six_require_a_minor(): void { LaravelVersion::factory()->create([ @@ -57,7 +58,7 @@ public function versions_before_six_require_a_minor(): void ->assertOk(); } - /** @test */ + #[Test] public function it_finds_versions_after_five(): void { collect( @@ -79,7 +80,7 @@ public function it_finds_versions_after_five(): void $this->get('/en/6')->assertOk(); } - /** @test */ + #[Test] public function it_finds_versions_before_six(): void { collect( @@ -103,7 +104,7 @@ public function it_finds_versions_before_six(): void $this->get('/en/4.0')->assertOk(); } - /** @test */ + #[Test] public function before_six_minor_is_required_to_match(): void { collect( @@ -135,7 +136,7 @@ public function before_six_minor_is_required_to_match(): void $this->get('/en/1.0')->assertOk(); } - /** @test */ + #[Test] public function it_404s_when_version_dne(): void { $response = $this->get('/en/1.0.0'); diff --git a/tests/Feature/LaravelVersionTest.php b/tests/Feature/LaravelVersionTest.php index 97ade3c..3b70d2d 100644 --- a/tests/Feature/LaravelVersionTest.php +++ b/tests/Feature/LaravelVersionTest.php @@ -4,13 +4,14 @@ use App\Models\LaravelVersion; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class LaravelVersionTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function it_gets_only_released_versions(): void { LaravelVersion::factory()->create([ diff --git a/tests/Feature/ListVersionsTest.php b/tests/Feature/ListVersionsTest.php index 03eac5a..dcabcca 100644 --- a/tests/Feature/ListVersionsTest.php +++ b/tests/Feature/ListVersionsTest.php @@ -3,13 +3,14 @@ namespace Tests\Feature; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ListVersionsTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function it_loads(): void { $response = $this->get(route('versions.index')); diff --git a/tests/Feature/NotificationTest.php b/tests/Feature/NotificationTest.php index 418d112..86c5a68 100644 --- a/tests/Feature/NotificationTest.php +++ b/tests/Feature/NotificationTest.php @@ -4,13 +4,14 @@ use App\Models\LaravelVersion; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class NotificationTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function versions_need_notification_if_today_is_a_fix_end_date(): void { $bugfix = LaravelVersion::factory()->create([ @@ -39,7 +40,7 @@ public function versions_need_notification_if_today_is_a_fix_end_date(): void $this->assertFalse($none->needsNotification()); } - /** @test */ + #[Test] public function it_handles_null_fix_dates(): void { $null_security = LaravelVersion::factory()->create([ diff --git a/tests/Feature/ShowVersionTest.php b/tests/Feature/ShowVersionTest.php index cf84709..068c8e3 100644 --- a/tests/Feature/ShowVersionTest.php +++ b/tests/Feature/ShowVersionTest.php @@ -4,13 +4,14 @@ use App\Models\LaravelVersion; use Illuminate\Foundation\Testing\RefreshDatabase; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class ShowVersionTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function it_loads(): void { $version = LaravelVersion::factory()->create([ @@ -22,7 +23,7 @@ public function it_loads(): void $response->assertStatus(200); } - /** @test */ + #[Test] public function it_loads_when_bug_fixes_date_is_null(): void { $this->seedLowestSupportedVersion(); @@ -35,7 +36,7 @@ public function it_loads_when_bug_fixes_date_is_null(): void $response->assertStatus(200); } - /** @test */ + #[Test] public function it_loads_when_security_fixes_date_is_null(): void { $this->seedLowestSupportedVersion(); diff --git a/tests/Feature/TweetImportantDatesTest.php b/tests/Feature/TweetImportantDatesTest.php index d17ec33..2a7fe20 100644 --- a/tests/Feature/TweetImportantDatesTest.php +++ b/tests/Feature/TweetImportantDatesTest.php @@ -8,13 +8,14 @@ use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Http; use Illuminate\Support\Str; +use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class TweetImportantDatesTest extends TestCase { use RefreshDatabase; - /** @test */ + #[Test] public function it_tweets_on_the_day_security_fixes_end(): void { Http::fake(); @@ -30,7 +31,7 @@ public function it_tweets_on_the_day_security_fixes_end(): void }); } - /** @test */ + #[Test] public function it_tweets_the_day_before_security_fixes_end(): void { Http::fake(); @@ -46,7 +47,7 @@ public function it_tweets_the_day_before_security_fixes_end(): void }); } - /** @test */ + #[Test] public function it_tweets_the_week_before_security_fixes_end(): void { Http::fake(); @@ -62,7 +63,7 @@ public function it_tweets_the_week_before_security_fixes_end(): void }); } - /** @test */ + #[Test] public function it_tweets_on_the_day_bug_fixes_end(): void { Http::fake(); @@ -78,7 +79,7 @@ public function it_tweets_on_the_day_bug_fixes_end(): void }); } - /** @test */ + #[Test] public function it_tweets_the_day_before_bug_fixes_end(): void { Http::fake(); @@ -94,7 +95,7 @@ public function it_tweets_the_day_before_bug_fixes_end(): void }); } - /** @test */ + #[Test] public function it_tweets_the_week_before_bug_fixes_end(): void { Http::fake(); diff --git a/tests/Unit/ExampleTest.php b/tests/Unit/ExampleTest.php index 5181403..f4c3232 100644 --- a/tests/Unit/ExampleTest.php +++ b/tests/Unit/ExampleTest.php @@ -2,16 +2,15 @@ namespace Tests\Unit; +use PHPUnit\Framework\Attributes\Test; use PHPUnit\Framework\TestCase; class ExampleTest extends TestCase { /** * A basic test example. - * - * - * @test */ + #[Test] public function basic_test(): void { $this->assertTrue(true);