1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2024-10-29 23:22:34 +01:00

Framework: Upgrade from Laravel 9 to 10

Following Laravel guidance and GitHub diff.
Not yet in tested state with app-specific changes made.
This commit is contained in:
Dan Brown 2024-03-16 15:12:14 +00:00
parent 07761524af
commit 794671ef32
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
20 changed files with 253 additions and 224 deletions

View File

@ -25,7 +25,7 @@ class AppServiceProvider extends ServiceProvider
* Custom container bindings to register. * Custom container bindings to register.
* @var string[] * @var string[]
*/ */
public $bindings = [ public array $bindings = [
ExceptionRenderer::class => BookStackExceptionHandlerPage::class, ExceptionRenderer::class => BookStackExceptionHandlerPage::class,
]; ];
@ -33,7 +33,7 @@ class AppServiceProvider extends ServiceProvider
* Custom singleton bindings to register. * Custom singleton bindings to register.
* @var string[] * @var string[]
*/ */
public $singletons = [ public array $singletons = [
'activity' => ActivityLogger::class, 'activity' => ActivityLogger::class,
SettingService::class => SettingService::class, SettingService::class => SettingService::class,
SocialDriverManager::class => SocialDriverManager::class, SocialDriverManager::class => SocialDriverManager::class,
@ -42,11 +42,19 @@ class AppServiceProvider extends ServiceProvider
]; ];
/** /**
* Bootstrap any application services. * Register any application services.
*
* @return void
*/ */
public function boot() public function register(): void
{
$this->app->singleton(PermissionApplicator::class, function ($app) {
return new PermissionApplicator(null);
});
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{ {
// Set root URL // Set root URL
$appUrl = config('app.url'); $appUrl = config('app.url');
@ -67,16 +75,4 @@ class AppServiceProvider extends ServiceProvider
'page' => Page::class, 'page' => Page::class,
]); ]);
} }
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(PermissionApplicator::class, function ($app) {
return new PermissionApplicator(null);
});
}
} }

View File

@ -18,10 +18,8 @@ class AuthServiceProvider extends ServiceProvider
{ {
/** /**
* Bootstrap the application services. * Bootstrap the application services.
*
* @return void
*/ */
public function boot() public function boot(): void
{ {
// Password Configuration // Password Configuration
// Changes here must be reflected in ApiDocsGenerate@getValidationAsString. // Changes here must be reflected in ApiDocsGenerate@getValidationAsString.
@ -58,10 +56,8 @@ class AuthServiceProvider extends ServiceProvider
/** /**
* Register the application services. * Register the application services.
*
* @return void
*/ */
public function register() public function register(): void
{ {
Auth::provider('external-users', function ($app, array $config) { Auth::provider('external-users', function ($app, array $config) {
return new ExternalBaseUserProvider($config['model']); return new ExternalBaseUserProvider($config['model']);

View File

@ -29,20 +29,16 @@ class EventServiceProvider extends ServiceProvider
/** /**
* Register any events for your application. * Register any events for your application.
*
* @return void
*/ */
public function boot() public function boot(): void
{ {
// //
} }
/** /**
* Determine if events and listeners should be automatically discovered. * Determine if events and listeners should be automatically discovered.
*
* @return bool
*/ */
public function shouldDiscoverEvents() public function shouldDiscoverEvents(): bool
{ {
return false; return false;
} }

View File

@ -24,10 +24,8 @@ class RouteServiceProvider extends ServiceProvider
/** /**
* Define your route model bindings, pattern filters, etc. * Define your route model bindings, pattern filters, etc.
*
* @return void
*/ */
public function boot() public function boot(): void
{ {
$this->configureRateLimiting(); $this->configureRateLimiting();
@ -41,10 +39,8 @@ class RouteServiceProvider extends ServiceProvider
* Define the "web" routes for the application. * Define the "web" routes for the application.
* *
* These routes all receive session state, CSRF protection, etc. * These routes all receive session state, CSRF protection, etc.
*
* @return void
*/ */
protected function mapWebRoutes() protected function mapWebRoutes(): void
{ {
Route::group([ Route::group([
'middleware' => 'web', 'middleware' => 'web',
@ -65,10 +61,8 @@ class RouteServiceProvider extends ServiceProvider
* Define the "api" routes for the application. * Define the "api" routes for the application.
* *
* These routes are typically stateless. * These routes are typically stateless.
*
* @return void
*/ */
protected function mapApiRoutes() protected function mapApiRoutes(): void
{ {
Route::group([ Route::group([
'middleware' => 'api', 'middleware' => 'api',
@ -81,10 +75,8 @@ class RouteServiceProvider extends ServiceProvider
/** /**
* Configure the rate limiters for the application. * Configure the rate limiters for the application.
*
* @return void
*/ */
protected function configureRateLimiting() protected function configureRateLimiting(): void
{ {
RateLimiter::for('api', function (Request $request) { RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip()); return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());

View File

@ -10,10 +10,8 @@ class ThemeServiceProvider extends ServiceProvider
{ {
/** /**
* Register services. * Register services.
*
* @return void
*/ */
public function register() public function register(): void
{ {
// Register the ThemeService as a singleton // Register the ThemeService as a singleton
$this->app->singleton(ThemeService::class, fn ($app) => new ThemeService()); $this->app->singleton(ThemeService::class, fn ($app) => new ThemeService());
@ -21,10 +19,8 @@ class ThemeServiceProvider extends ServiceProvider
/** /**
* Bootstrap services. * Bootstrap services.
*
* @return void
*/ */
public function boot() public function boot(): void
{ {
// Boot up the theme system // Boot up the theme system
$themeService = $this->app->make(ThemeService::class); $themeService = $this->app->make(ThemeService::class);

View File

@ -11,10 +11,8 @@ class TranslationServiceProvider extends BaseProvider
{ {
/** /**
* Register the service provider. * Register the service provider.
*
* @return void
*/ */
public function register() public function register(): void
{ {
$this->registerLoader(); $this->registerLoader();
@ -41,10 +39,8 @@ class TranslationServiceProvider extends BaseProvider
/** /**
* Register the translation line loader. * Register the translation line loader.
* Overrides the default register action from Laravel so a custom loader can be used. * Overrides the default register action from Laravel so a custom loader can be used.
*
* @return void
*/ */
protected function registerLoader() protected function registerLoader(): void
{ {
$this->app->singleton('translation.loader', function ($app) { $this->app->singleton('translation.loader', function ($app) {
return new FileLoader($app['files'], $app['path.lang']); return new FileLoader($app['files'], $app['path.lang']);

View File

@ -12,10 +12,8 @@ class ViewTweaksServiceProvider extends ServiceProvider
{ {
/** /**
* Bootstrap services. * Bootstrap services.
*
* @return void
*/ */
public function boot() public function boot(): void
{ {
// Set paginator to use bootstrap-style pagination // Set paginator to use bootstrap-style pagination
Paginator::useBootstrap(); Paginator::useBootstrap();

View File

@ -9,6 +9,7 @@
*/ */
use Illuminate\Support\Facades\Facade; use Illuminate\Support\Facades\Facade;
use Illuminate\Support\ServiceProvider;
return [ return [
@ -113,46 +114,22 @@ return [
], ],
// Application Service Providers // Application Service Providers
'providers' => [ 'providers' => ServiceProvider::defaultProviders()->merge([
// Laravel Framework Service Providers...
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Notifications\NotificationServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
// Third party service providers // Third party service providers
Barryvdh\DomPDF\ServiceProvider::class, Barryvdh\DomPDF\ServiceProvider::class,
Barryvdh\Snappy\ServiceProvider::class, Barryvdh\Snappy\ServiceProvider::class,
SocialiteProviders\Manager\ServiceProvider::class, SocialiteProviders\Manager\ServiceProvider::class,
// BookStack custom service providers // BookStack custom service providers
\BookStack\App\Providers\ThemeServiceProvider::class, BookStack\App\Providers\ThemeServiceProvider::class,
\BookStack\App\Providers\AppServiceProvider::class, BookStack\App\Providers\AppServiceProvider::class,
\BookStack\App\Providers\AuthServiceProvider::class, BookStack\App\Providers\AuthServiceProvider::class,
\BookStack\App\Providers\EventServiceProvider::class, BookStack\App\Providers\EventServiceProvider::class,
\BookStack\App\Providers\RouteServiceProvider::class, BookStack\App\Providers\RouteServiceProvider::class,
\BookStack\App\Providers\TranslationServiceProvider::class, BookStack\App\Providers\TranslationServiceProvider::class,
\BookStack\App\Providers\ValidationRuleServiceProvider::class, BookStack\App\Providers\ValidationRuleServiceProvider::class,
\BookStack\App\Providers\ViewTweaksServiceProvider::class, BookStack\App\Providers\ViewTweaksServiceProvider::class,
], ])->toArray(),
// Class Aliases // Class Aliases
// This array of class aliases to be registered on application start. // This array of class aliases to be registered on application start.

View File

@ -53,7 +53,8 @@ return [
'file' => [ 'file' => [
'driver' => 'file', 'driver' => 'file',
'path' => storage_path('framework/cache'), 'path' => storage_path('framework/cache/data'),
'lock_path' => storage_path('framework/cache/data'),
], ],
'memcached' => [ 'memcached' => [

View File

@ -21,7 +21,8 @@ return [
// passwords are hashed using the Bcrypt algorithm. This will allow you // passwords are hashed using the Bcrypt algorithm. This will allow you
// to control the amount of time it takes to hash the given password. // to control the amount of time it takes to hash the given password.
'bcrypt' => [ 'bcrypt' => [
'rounds' => env('BCRYPT_ROUNDS', 10), 'rounds' => env('BCRYPT_ROUNDS', 12),
'verify' => true,
], ],
// Argon Options // Argon Options

View File

@ -4,6 +4,7 @@ use Monolog\Formatter\LineFormatter;
use Monolog\Handler\ErrorLogHandler; use Monolog\Handler\ErrorLogHandler;
use Monolog\Handler\NullHandler; use Monolog\Handler\NullHandler;
use Monolog\Handler\StreamHandler; use Monolog\Handler\StreamHandler;
use Monolog\Processor\PsrLogMessageProcessor;
/** /**
* Logging configuration options. * Logging configuration options.
@ -49,6 +50,7 @@ return [
'path' => storage_path('logs/laravel.log'), 'path' => storage_path('logs/laravel.log'),
'level' => 'debug', 'level' => 'debug',
'days' => 14, 'days' => 14,
'replace_placeholders' => true,
], ],
'daily' => [ 'daily' => [
@ -56,6 +58,7 @@ return [
'path' => storage_path('logs/laravel.log'), 'path' => storage_path('logs/laravel.log'),
'level' => 'debug', 'level' => 'debug',
'days' => 7, 'days' => 7,
'replace_placeholders' => true,
], ],
'stderr' => [ 'stderr' => [
@ -65,16 +68,20 @@ return [
'with' => [ 'with' => [
'stream' => 'php://stderr', 'stream' => 'php://stderr',
], ],
'processors' => [PsrLogMessageProcessor::class],
], ],
'syslog' => [ 'syslog' => [
'driver' => 'syslog', 'driver' => 'syslog',
'level' => 'debug', 'level' => 'debug',
'facility' => LOG_USER,
'replace_placeholders' => true,
], ],
'errorlog' => [ 'errorlog' => [
'driver' => 'errorlog', 'driver' => 'errorlog',
'level' => 'debug', 'level' => 'debug',
'replace_placeholders' => true,
], ],
// Custom errorlog implementation that logs out a plain, // Custom errorlog implementation that logs out a plain,
@ -88,6 +95,7 @@ return [
'formatter_with' => [ 'formatter_with' => [
'format' => '%message%', 'format' => '%message%',
], ],
'replace_placeholders' => true,
], ],
'null' => [ 'null' => [

View File

@ -40,6 +40,12 @@ return [
], ],
// Job batching
'batching' => [
'database' => 'mysql',
'table' => 'job_batches',
],
// Failed queue job logging // Failed queue job logging
'failed' => [ 'failed' => [
'driver' => 'database-uuids', 'driver' => 'database-uuids',

View File

@ -85,4 +85,11 @@ return [
// do not enable this as other CSRF protection services are in place. // do not enable this as other CSRF protection services are in place.
// Options: lax, strict, none // Options: lax, strict, none
'same_site' => 'lax', 'same_site' => 'lax',
// Partitioned Cookies
// Setting this value to true will tie the cookie to the top-level site for
// a cross-site context. Partitioned cookies are accepted by the browser
// when flagged "secure" and the Same-Site attribute is set to "none".
'partitioned' => false,
]; ];

View File

@ -45,11 +45,11 @@ class Kernel extends HttpKernel
]; ];
/** /**
* The application's route middleware. * The application's middleware aliases.
* *
* @var array * @var array
*/ */
protected $routeMiddleware = [ protected $middlewareAliases = [
'auth' => \BookStack\Http\Middleware\Authenticate::class, 'auth' => \BookStack\Http\Middleware\Authenticate::class,
'can' => \BookStack\Http\Middleware\CheckUserHasPermission::class, 'can' => \BookStack\Http\Middleware\CheckUserHasPermission::class,
'guest' => \BookStack\Http\Middleware\RedirectIfAuthenticated::class, 'guest' => \BookStack\Http\Middleware\RedirectIfAuthenticated::class,

View File

@ -6,19 +6,16 @@ use BookStack\App\Providers\RouteServiceProvider;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class RedirectIfAuthenticated class RedirectIfAuthenticated
{ {
/** /**
* Handle an incoming request. * Handle an incoming request.
* *
* @param \Illuminate\Http\Request $request * @param Closure(Request): (Response) $next
* @param \Closure $next
* @param string|null ...$guards
*
* @return mixed
*/ */
public function handle(Request $request, Closure $next, ...$guards) public function handle(Request $request, Closure $next, string ...$guards): Response
{ {
$guards = empty($guards) ? [null] : $guards; $guards = empty($guards) ? [null] : $guards;

View File

@ -9,7 +9,7 @@ class ThrottleApiRequests extends Middleware
/** /**
* Resolve the number of attempts if the user is authenticated or not. * Resolve the number of attempts if the user is authenticated or not.
*/ */
protected function resolveMaxAttempts($request, $maxAttempts) protected function resolveMaxAttempts($request, $maxAttempts): int
{ {
return (int) config('api.requests_per_minute'); return (int) config('api.requests_per_minute');
} }

View File

@ -9,9 +9,9 @@ class TrustHosts extends Middleware
/** /**
* Get the host patterns that should be trusted. * Get the host patterns that should be trusted.
* *
* @return array * @return array<int, string|null>
*/ */
public function hosts() public function hosts(): array
{ {
return [ return [
$this->allSubdomainsOfApplicationUrl(), $this->allSubdomainsOfApplicationUrl(),

View File

@ -22,9 +22,9 @@
"doctrine/dbal": "^3.5", "doctrine/dbal": "^3.5",
"guzzlehttp/guzzle": "^7.4", "guzzlehttp/guzzle": "^7.4",
"intervention/image": "^2.7", "intervention/image": "^2.7",
"laravel/framework": "^9.0", "laravel/framework": "^10.10",
"laravel/socialite": "^5.10", "laravel/socialite": "^5.10",
"laravel/tinker": "^2.6", "laravel/tinker": "^2.8",
"league/commonmark": "^2.3", "league/commonmark": "^2.3",
"league/flysystem-aws-s3-v3": "^3.0", "league/flysystem-aws-s3-v3": "^3.0",
"league/html-to-markdown": "^5.0.0", "league/html-to-markdown": "^5.0.0",

293
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "54d735153e12b120d9dd41ab847e3032", "content-hash": "df0a9795e5dd228d680cabf1f34d3aa6",
"packages": [ "packages": [
{ {
"name": "aws/aws-crt-php", "name": "aws/aws-crt-php",
@ -62,16 +62,16 @@
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.300.15", "version": "3.301.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "0cd194438b84588615121a93d0bc46bf55ca678b" "reference": "0a910d2b35e7087337cdf3569dc9b6ce232aafba"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0cd194438b84588615121a93d0bc46bf55ca678b", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0a910d2b35e7087337cdf3569dc9b6ce232aafba",
"reference": "0cd194438b84588615121a93d0bc46bf55ca678b", "reference": "0a910d2b35e7087337cdf3569dc9b6ce232aafba",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -151,9 +151,9 @@
"support": { "support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.300.15" "source": "https://github.com/aws/aws-sdk-php/tree/3.301.1"
}, },
"time": "2024-03-11T18:33:13+00:00" "time": "2024-03-15T18:14:42+00:00"
}, },
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@ -211,16 +211,16 @@
}, },
{ {
"name": "barryvdh/laravel-dompdf", "name": "barryvdh/laravel-dompdf",
"version": "v2.1.0", "version": "v2.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/barryvdh/laravel-dompdf.git", "url": "https://github.com/barryvdh/laravel-dompdf.git",
"reference": "c8b8a8490e5f7348cf99054821fb248f103e7d24" "reference": "cb37868365f9b937039d316727a1fced1e87b31c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/c8b8a8490e5f7348cf99054821fb248f103e7d24", "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/cb37868365f9b937039d316727a1fced1e87b31c",
"reference": "c8b8a8490e5f7348cf99054821fb248f103e7d24", "reference": "cb37868365f9b937039d316727a1fced1e87b31c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -272,7 +272,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/barryvdh/laravel-dompdf/issues", "issues": "https://github.com/barryvdh/laravel-dompdf/issues",
"source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.1.0" "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.1.1"
}, },
"funding": [ "funding": [
{ {
@ -284,7 +284,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-03-04T08:18:20+00:00" "time": "2024-03-15T12:48:39+00:00"
}, },
{ {
"name": "barryvdh/laravel-snappy", "name": "barryvdh/laravel-snappy",
@ -2012,20 +2012,21 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v9.52.16", "version": "v10.48.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "082345d76fc6a55b649572efe10b11b03e279d24" "reference": "5791c052b41c6b593556adc687076bfbdd13c501"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/082345d76fc6a55b649572efe10b11b03e279d24", "url": "https://api.github.com/repos/laravel/framework/zipball/5791c052b41c6b593556adc687076bfbdd13c501",
"reference": "082345d76fc6a55b649572efe10b11b03e279d24", "reference": "5791c052b41c6b593556adc687076bfbdd13c501",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"brick/math": "^0.9.3|^0.10.2|^0.11", "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12",
"composer-runtime-api": "^2.2",
"doctrine/inflector": "^2.0.5", "doctrine/inflector": "^2.0.5",
"dragonmantank/cron-expression": "^3.3.2", "dragonmantank/cron-expression": "^3.3.2",
"egulias/email-validator": "^3.2.1|^4.0", "egulias/email-validator": "^3.2.1|^4.0",
@ -2038,33 +2039,38 @@
"ext-tokenizer": "*", "ext-tokenizer": "*",
"fruitcake/php-cors": "^1.2", "fruitcake/php-cors": "^1.2",
"guzzlehttp/uri-template": "^1.0", "guzzlehttp/uri-template": "^1.0",
"laravel/serializable-closure": "^1.2.2", "laravel/prompts": "^0.1.9",
"laravel/serializable-closure": "^1.3",
"league/commonmark": "^2.2.1", "league/commonmark": "^2.2.1",
"league/flysystem": "^3.8.0", "league/flysystem": "^3.8.0",
"monolog/monolog": "^2.0", "monolog/monolog": "^3.0",
"nesbot/carbon": "^2.62.1", "nesbot/carbon": "^2.67",
"nunomaduro/termwind": "^1.13", "nunomaduro/termwind": "^1.13",
"php": "^8.0.2", "php": "^8.1",
"psr/container": "^1.1.1|^2.0.1", "psr/container": "^1.1.1|^2.0.1",
"psr/log": "^1.0|^2.0|^3.0", "psr/log": "^1.0|^2.0|^3.0",
"psr/simple-cache": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0",
"ramsey/uuid": "^4.7", "ramsey/uuid": "^4.7",
"symfony/console": "^6.0.9", "symfony/console": "^6.2",
"symfony/error-handler": "^6.0", "symfony/error-handler": "^6.2",
"symfony/finder": "^6.0", "symfony/finder": "^6.2",
"symfony/http-foundation": "^6.0", "symfony/http-foundation": "^6.4",
"symfony/http-kernel": "^6.0", "symfony/http-kernel": "^6.2",
"symfony/mailer": "^6.0", "symfony/mailer": "^6.2",
"symfony/mime": "^6.0", "symfony/mime": "^6.2",
"symfony/process": "^6.0", "symfony/process": "^6.2",
"symfony/routing": "^6.0", "symfony/routing": "^6.2",
"symfony/uid": "^6.0", "symfony/uid": "^6.2",
"symfony/var-dumper": "^6.0", "symfony/var-dumper": "^6.2",
"tijsverkoyen/css-to-inline-styles": "^2.2.5", "tijsverkoyen/css-to-inline-styles": "^2.2.5",
"vlucas/phpdotenv": "^5.4.1", "vlucas/phpdotenv": "^5.4.1",
"voku/portable-ascii": "^2.0" "voku/portable-ascii": "^2.0"
}, },
"conflict": { "conflict": {
"carbonphp/carbon-doctrine-types": ">=3.0",
"doctrine/dbal": ">=4.0",
"mockery/mockery": "1.6.8",
"phpunit/phpunit": ">=11.0.0",
"tightenco/collect": "<5.5.33" "tightenco/collect": "<5.5.33"
}, },
"provide": { "provide": {
@ -2095,6 +2101,7 @@
"illuminate/notifications": "self.version", "illuminate/notifications": "self.version",
"illuminate/pagination": "self.version", "illuminate/pagination": "self.version",
"illuminate/pipeline": "self.version", "illuminate/pipeline": "self.version",
"illuminate/process": "self.version",
"illuminate/queue": "self.version", "illuminate/queue": "self.version",
"illuminate/redis": "self.version", "illuminate/redis": "self.version",
"illuminate/routing": "self.version", "illuminate/routing": "self.version",
@ -2108,7 +2115,7 @@
"require-dev": { "require-dev": {
"ably/ably-php": "^1.0", "ably/ably-php": "^1.0",
"aws/aws-sdk-php": "^3.235.5", "aws/aws-sdk-php": "^3.235.5",
"doctrine/dbal": "^2.13.3|^3.1.4", "doctrine/dbal": "^3.5.1",
"ext-gmp": "*", "ext-gmp": "*",
"fakerphp/faker": "^1.21", "fakerphp/faker": "^1.21",
"guzzlehttp/guzzle": "^7.5", "guzzlehttp/guzzle": "^7.5",
@ -2118,20 +2125,21 @@
"league/flysystem-read-only": "^3.3", "league/flysystem-read-only": "^3.3",
"league/flysystem-sftp-v3": "^3.0", "league/flysystem-sftp-v3": "^3.0",
"mockery/mockery": "^1.5.1", "mockery/mockery": "^1.5.1",
"orchestra/testbench-core": "^7.24", "nyholm/psr7": "^1.2",
"orchestra/testbench-core": "^8.18",
"pda/pheanstalk": "^4.0", "pda/pheanstalk": "^4.0",
"phpstan/phpdoc-parser": "^1.15",
"phpstan/phpstan": "^1.4.7", "phpstan/phpstan": "^1.4.7",
"phpunit/phpunit": "^9.5.8", "phpunit/phpunit": "^10.0.7",
"predis/predis": "^1.1.9|^2.0.2", "predis/predis": "^2.0.2",
"symfony/cache": "^6.0", "symfony/cache": "^6.2",
"symfony/http-client": "^6.0" "symfony/http-client": "^6.2.4",
"symfony/psr-http-message-bridge": "^2.0"
}, },
"suggest": { "suggest": {
"ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
"aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
"brianium/paratest": "Required to run tests in parallel (^6.0).", "brianium/paratest": "Required to run tests in parallel (^6.0).",
"doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).",
"ext-apcu": "Required to use the APC cache driver.", "ext-apcu": "Required to use the APC cache driver.",
"ext-fileinfo": "Required to use the Filesystem class.", "ext-fileinfo": "Required to use the Filesystem class.",
"ext-ftp": "Required to use the Flysystem FTP driver.", "ext-ftp": "Required to use the Flysystem FTP driver.",
@ -2153,27 +2161,28 @@
"mockery/mockery": "Required to use mocking (^1.5.1).", "mockery/mockery": "Required to use mocking (^1.5.1).",
"nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
"pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
"phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).", "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).",
"predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).", "predis/predis": "Required to use the predis connector (^2.0.2).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.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).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
"symfony/cache": "Required to PSR-6 cache bridge (^6.0).", "symfony/cache": "Required to PSR-6 cache bridge (^6.2).",
"symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).", "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).",
"symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).", "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).",
"symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).", "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).",
"symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).", "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).",
"symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "9.x-dev" "dev-master": "10.x-dev"
} }
}, },
"autoload": { "autoload": {
"files": [ "files": [
"src/Illuminate/Collections/helpers.php", "src/Illuminate/Collections/helpers.php",
"src/Illuminate/Events/functions.php", "src/Illuminate/Events/functions.php",
"src/Illuminate/Filesystem/functions.php",
"src/Illuminate/Foundation/helpers.php", "src/Illuminate/Foundation/helpers.php",
"src/Illuminate/Support/helpers.php" "src/Illuminate/Support/helpers.php"
], ],
@ -2206,7 +2215,64 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "source": "https://github.com/laravel/framework"
}, },
"time": "2023-10-03T13:02:30+00:00" "time": "2024-03-15T10:17:07+00:00"
},
{
"name": "laravel/prompts",
"version": "v0.1.16",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
"reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/prompts/zipball/ca6872ab6aec3ab61db3a61f83a6caf764ec7781",
"reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"illuminate/collections": "^10.0|^11.0",
"php": "^8.1",
"symfony/console": "^6.2|^7.0"
},
"conflict": {
"illuminate/console": ">=10.17.0 <10.25.0",
"laravel/framework": ">=10.17.0 <10.25.0"
},
"require-dev": {
"mockery/mockery": "^1.5",
"pestphp/pest": "^2.3",
"phpstan/phpstan": "^1.11",
"phpstan/phpstan-mockery": "^1.1"
},
"suggest": {
"ext-pcntl": "Required for the spinner to be animated."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "0.1.x-dev"
}
},
"autoload": {
"files": [
"src/helpers.php"
],
"psr-4": {
"Laravel\\Prompts\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"support": {
"issues": "https://github.com/laravel/prompts/issues",
"source": "https://github.com/laravel/prompts/tree/v0.1.16"
},
"time": "2024-02-21T19:25:27+00:00"
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
@ -2594,16 +2660,16 @@
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
"version": "3.25.0", "version": "3.25.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem.git", "url": "https://github.com/thephpleague/flysystem.git",
"reference": "4c44347133618cccd9b3df1729647a1577b4ad99" "reference": "abbd664eb4381102c559d358420989f835208f18"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4c44347133618cccd9b3df1729647a1577b4ad99", "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/abbd664eb4381102c559d358420989f835208f18",
"reference": "4c44347133618cccd9b3df1729647a1577b4ad99", "reference": "abbd664eb4381102c559d358420989f835208f18",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2668,7 +2734,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/flysystem/issues", "issues": "https://github.com/thephpleague/flysystem/issues",
"source": "https://github.com/thephpleague/flysystem/tree/3.25.0" "source": "https://github.com/thephpleague/flysystem/tree/3.25.1"
}, },
"funding": [ "funding": [
{ {
@ -2680,20 +2746,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-03-09T17:06:45+00:00" "time": "2024-03-16T12:53:19+00:00"
}, },
{ {
"name": "league/flysystem-aws-s3-v3", "name": "league/flysystem-aws-s3-v3",
"version": "3.24.0", "version": "3.25.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
"reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513" "reference": "6a5be0e6d6a93574e80805c9cc108a4b63c824d8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/6a5be0e6d6a93574e80805c9cc108a4b63c824d8",
"reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", "reference": "6a5be0e6d6a93574e80805c9cc108a4b63c824d8",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2733,7 +2799,7 @@
"storage" "storage"
], ],
"support": { "support": {
"source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.24.0" "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.25.1"
}, },
"funding": [ "funding": [
{ {
@ -2745,20 +2811,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-01-26T18:43:21+00:00" "time": "2024-03-15T19:58:44+00:00"
}, },
{ {
"name": "league/flysystem-local", "name": "league/flysystem-local",
"version": "3.23.1", "version": "3.25.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git", "url": "https://github.com/thephpleague/flysystem-local.git",
"reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/61a6a90d6e999e4ddd9ce5adb356de0939060b92",
"reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2792,8 +2858,7 @@
"local" "local"
], ],
"support": { "support": {
"issues": "https://github.com/thephpleague/flysystem-local/issues", "source": "https://github.com/thephpleague/flysystem-local/tree/3.25.1"
"source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1"
}, },
"funding": [ "funding": [
{ {
@ -2805,7 +2870,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-01-26T18:25:23+00:00" "time": "2024-03-15T19:58:44+00:00"
}, },
{ {
"name": "league/html-to-markdown", "name": "league/html-to-markdown",
@ -3167,42 +3232,41 @@
}, },
{ {
"name": "monolog/monolog", "name": "monolog/monolog",
"version": "2.9.2", "version": "3.5.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f" "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/437cb3628f4cf6042cc10ae97fc2b8472e48ca1f", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448",
"reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f", "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.2", "php": ">=8.1",
"psr/log": "^1.0.1 || ^2.0 || ^3.0" "psr/log": "^2.0 || ^3.0"
}, },
"provide": { "provide": {
"psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" "psr/log-implementation": "3.0.0"
}, },
"require-dev": { "require-dev": {
"aws/aws-sdk-php": "^2.4.9 || ^3.0", "aws/aws-sdk-php": "^3.0",
"doctrine/couchdb": "~1.0@dev", "doctrine/couchdb": "~1.0@dev",
"elasticsearch/elasticsearch": "^7 || ^8", "elasticsearch/elasticsearch": "^7 || ^8",
"ext-json": "*", "ext-json": "*",
"graylog2/gelf-php": "^1.4.2 || ^2@dev", "graylog2/gelf-php": "^1.4.2 || ^2.0",
"guzzlehttp/guzzle": "^7.4", "guzzlehttp/guzzle": "^7.4.5",
"guzzlehttp/psr7": "^2.2", "guzzlehttp/psr7": "^2.2",
"mongodb/mongodb": "^1.8", "mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3", "php-amqplib/php-amqplib": "~2.4 || ^3",
"phpspec/prophecy": "^1.15", "phpstan/phpstan": "^1.9",
"phpstan/phpstan": "^0.12.91", "phpstan/phpstan-deprecation-rules": "^1.0",
"phpunit/phpunit": "^8.5.14", "phpstan/phpstan-strict-rules": "^1.4",
"predis/predis": "^1.1 || ^2.0", "phpunit/phpunit": "^10.1",
"rollbar/rollbar": "^1.3 || ^2 || ^3", "predis/predis": "^1.1 || ^2",
"ruflin/elastica": "^7", "ruflin/elastica": "^7",
"swiftmailer/swiftmailer": "^5.3|^6.0",
"symfony/mailer": "^5.4 || ^6", "symfony/mailer": "^5.4 || ^6",
"symfony/mime": "^5.4 || ^6" "symfony/mime": "^5.4 || ^6"
}, },
@ -3225,7 +3289,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "2.x-dev" "dev-main": "3.x-dev"
} }
}, },
"autoload": { "autoload": {
@ -3253,7 +3317,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/Seldaek/monolog/issues", "issues": "https://github.com/Seldaek/monolog/issues",
"source": "https://github.com/Seldaek/monolog/tree/2.9.2" "source": "https://github.com/Seldaek/monolog/tree/3.5.0"
}, },
"funding": [ "funding": [
{ {
@ -3265,7 +3329,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2023-10-27T15:25:26+00:00" "time": "2023-10-27T15:32:31+00:00"
}, },
{ {
"name": "mtdowling/jmespath.php", "name": "mtdowling/jmespath.php",
@ -3951,16 +4015,16 @@
}, },
{ {
"name": "phenx/php-svg-lib", "name": "phenx/php-svg-lib",
"version": "0.5.2", "version": "0.5.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/dompdf/php-svg-lib.git", "url": "https://github.com/dompdf/php-svg-lib.git",
"reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa" "reference": "0e46722c154726a5f9ac218197ccc28adba16fcf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/732faa9fb4309221e2bd9b2fda5de44f947133aa", "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/0e46722c154726a5f9ac218197ccc28adba16fcf",
"reference": "732faa9fb4309221e2bd9b2fda5de44f947133aa", "reference": "0e46722c154726a5f9ac218197ccc28adba16fcf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3979,7 +4043,7 @@
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
"LGPL-3.0" "LGPL-3.0-or-later"
], ],
"authors": [ "authors": [
{ {
@ -3991,9 +4055,9 @@
"homepage": "https://github.com/PhenX/php-svg-lib", "homepage": "https://github.com/PhenX/php-svg-lib",
"support": { "support": {
"issues": "https://github.com/dompdf/php-svg-lib/issues", "issues": "https://github.com/dompdf/php-svg-lib/issues",
"source": "https://github.com/dompdf/php-svg-lib/tree/0.5.2" "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.3"
}, },
"time": "2024-02-07T12:49:40+00:00" "time": "2024-02-23T20:39:24+00:00"
}, },
{ {
"name": "phpoption/phpoption", "name": "phpoption/phpoption",
@ -4756,16 +4820,16 @@
}, },
{ {
"name": "psy/psysh", "name": "psy/psysh",
"version": "v0.12.0", "version": "v0.12.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/bobthecow/psysh.git", "url": "https://github.com/bobthecow/psysh.git",
"reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" "reference": "39621c73e0754328252f032c6997b983afc50431"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", "url": "https://api.github.com/repos/bobthecow/psysh/zipball/39621c73e0754328252f032c6997b983afc50431",
"reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", "reference": "39621c73e0754328252f032c6997b983afc50431",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4829,9 +4893,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/bobthecow/psysh/issues", "issues": "https://github.com/bobthecow/psysh/issues",
"source": "https://github.com/bobthecow/psysh/tree/v0.12.0" "source": "https://github.com/bobthecow/psysh/tree/v0.12.1"
}, },
"time": "2023-12-20T15:28:09+00:00" "time": "2024-03-15T03:22:57+00:00"
}, },
{ {
"name": "ralouphie/getallheaders", "name": "ralouphie/getallheaders",
@ -8448,7 +8512,7 @@
}, },
{ {
"name": "mockery/mockery", "name": "mockery/mockery",
"version": "1.6.7", "version": "1.6.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/mockery/mockery.git", "url": "https://github.com/mockery/mockery.git",
@ -8884,16 +8948,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.10.60", "version": "1.10.62",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "95dcea7d6c628a3f2f56d091d8a0219485a86bbe" "reference": "cd5c8a1660ed3540b211407c77abf4af193a6af9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/95dcea7d6c628a3f2f56d091d8a0219485a86bbe", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/cd5c8a1660ed3540b211407c77abf4af193a6af9",
"reference": "95dcea7d6c628a3f2f56d091d8a0219485a86bbe", "reference": "cd5c8a1660ed3540b211407c77abf4af193a6af9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8942,7 +9006,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-03-07T13:30:19+00:00" "time": "2024-03-13T12:27:20+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
@ -10168,16 +10232,16 @@
}, },
{ {
"name": "sebastian/resource-operations", "name": "sebastian/resource-operations",
"version": "3.0.3", "version": "3.0.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git", "url": "https://github.com/sebastianbergmann/resource-operations.git",
"reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
"reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -10189,7 +10253,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.0-dev" "dev-main": "3.0-dev"
} }
}, },
"autoload": { "autoload": {
@ -10210,8 +10274,7 @@
"description": "Provides a list of PHP built-in functions that operate on resources", "description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations", "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/resource-operations/issues", "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
"source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
}, },
"funding": [ "funding": [
{ {
@ -10219,7 +10282,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2020-09-28T06:45:17+00:00" "time": "2024-03-14T16:00:52+00:00"
}, },
{ {
"name": "sebastian/type", "name": "sebastian/type",

View File

@ -3,15 +3,14 @@
namespace Tests; namespace Tests;
use Illuminate\Contracts\Console\Kernel; use Illuminate\Contracts\Console\Kernel;
use Illuminate\Foundation\Application;
trait CreatesApplication trait CreatesApplication
{ {
/** /**
* Creates the application. * Creates the application.
*
* @return \Illuminate\Foundation\Application
*/ */
public function createApplication() public function createApplication(): Application
{ {
$app = require __DIR__ . '/../bootstrap/app.php'; $app = require __DIR__ . '/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap(); $app->make(Kernel::class)->bootstrap();