diff --git a/.phpstorm.meta.php b/.phpstorm.meta.php index 95346c84e36..327161c6c84 100644 --- a/.phpstorm.meta.php +++ b/.phpstorm.meta.php @@ -16,8 +16,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -26,18 +24,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -49,38 +48,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -99,97 +167,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -201,7 +191,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -229,8 +218,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -239,18 +226,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -262,38 +250,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -312,97 +369,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -414,7 +393,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -442,8 +420,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -452,18 +428,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -475,38 +452,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -525,97 +571,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -627,7 +595,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -655,8 +622,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -665,18 +630,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -688,38 +654,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -738,97 +773,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -840,7 +797,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -868,8 +824,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -878,18 +832,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -901,38 +856,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -951,97 +975,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -1053,7 +999,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -1081,8 +1026,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -1091,18 +1034,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -1114,38 +1058,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -1164,97 +1177,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -1266,7 +1201,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -1294,8 +1228,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -1304,18 +1236,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -1327,38 +1260,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -1377,97 +1379,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -1479,7 +1403,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -1507,8 +1430,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -1517,18 +1438,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -1540,38 +1462,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -1590,97 +1581,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -1692,7 +1605,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -1720,8 +1632,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -1730,18 +1640,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -1753,38 +1664,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -1803,97 +1783,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -1905,7 +1807,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -1933,8 +1834,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -1943,18 +1842,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -1966,38 +1866,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -2016,97 +1985,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -2118,7 +2009,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, @@ -2146,8 +2036,6 @@ 'App\Actions\Update\Apply' => \App\Actions\Update\Apply::class, 'App\Actions\Update\Check' => \App\Actions\Update\Check::class, 'App\Assets\Helpers' => \App\Assets\Helpers::class, - 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, - 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'App\Contracts\SizeVariantFactory' => \App\Image\SizeVariantDefaultFactory::class, 'App\Contracts\SizeVariantNamingStrategy' => \App\Assets\SizeVariantGroupedWithRandomSuffixNamingStrategy::class, 'App\Factories\AlbumFactory' => \App\Factories\AlbumFactory::class, @@ -2156,18 +2044,19 @@ 'App\Metadata\LycheeVersion' => \App\Metadata\LycheeVersion::class, 'App\ModelFunctions\ConfigFunctions' => \App\ModelFunctions\ConfigFunctions::class, 'App\ModelFunctions\SymLinkFunctions' => \App\ModelFunctions\SymLinkFunctions::class, + 'App\Policies\AlbumQueryPolicy' => \App\Policies\AlbumQueryPolicy::class, + 'App\Policies\PhotoQueryPolicy' => \App\Policies\PhotoQueryPolicy::class, 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, - 'Cose\Algorithm\Manager' => \Cose\Algorithm\Manager::class, - 'DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection' => \DarkGhostHunter\Larapass\WebAuthn\PublicKeyCredentialParametersCollection::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAssertValidator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestCreator::class, - 'DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator' => \DarkGhostHunter\Larapass\WebAuthn\WebAuthnAttestValidator::class, 'Helpers' => \App\Assets\Helpers::class, + 'Illuminate\Auth\Console\ClearResetsCommand' => \Illuminate\Auth\Console\ClearResetsCommand::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\Console\CacheTableCommand' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'Illuminate\Cache\Console\ClearCommand' => \Illuminate\Cache\Console\ClearCommand::class, + 'Illuminate\Cache\Console\ForgetCommand' => \Illuminate\Cache\Console\ForgetCommand::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\ScheduleClearCacheCommand' => \Illuminate\Console\Scheduling\ScheduleClearCacheCommand::class, @@ -2179,38 +2068,107 @@ 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, - 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \App\Exceptions\Handler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, 'Illuminate\Contracts\Validation\UncompromisedVerifier' => \Illuminate\Validation\NotPwnedVerifier::class, 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Database\Console\DumpCommand' => \Illuminate\Database\Console\DumpCommand::class, + 'Illuminate\Database\Console\Factories\FactoryMakeCommand' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'Illuminate\Database\Console\Migrations\FreshCommand' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'Illuminate\Database\Console\Migrations\InstallCommand' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateCommand' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'Illuminate\Database\Console\Migrations\MigrateMakeCommand' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'Illuminate\Database\Console\Migrations\RefreshCommand' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'Illuminate\Database\Console\Migrations\ResetCommand' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'Illuminate\Database\Console\Migrations\RollbackCommand' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'Illuminate\Database\Console\Migrations\StatusCommand' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'Illuminate\Database\Console\MonitorCommand' => \Illuminate\Database\Console\MonitorCommand::class, + 'Illuminate\Database\Console\PruneCommand' => \Illuminate\Database\Console\PruneCommand::class, + 'Illuminate\Database\Console\Seeds\SeedCommand' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'Illuminate\Database\Console\Seeds\SeederMakeCommand' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'Illuminate\Database\Console\ShowCommand' => \Illuminate\Database\Console\ShowCommand::class, + 'Illuminate\Database\Console\TableCommand' => \Illuminate\Database\Console\TableCommand::class, + 'Illuminate\Database\Console\WipeCommand' => \Illuminate\Database\Console\WipeCommand::class, + 'Illuminate\Foundation\Console\AboutCommand' => \Illuminate\Foundation\Console\AboutCommand::class, + 'Illuminate\Foundation\Console\CastMakeCommand' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'Illuminate\Foundation\Console\ChannelMakeCommand' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'Illuminate\Foundation\Console\ClearCompiledCommand' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'Illuminate\Foundation\Console\ComponentMakeCommand' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'Illuminate\Foundation\Console\ConfigCacheCommand' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'Illuminate\Foundation\Console\ConfigClearCommand' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'Illuminate\Foundation\Console\ConsoleMakeCommand' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'Illuminate\Foundation\Console\DocsCommand' => \Illuminate\Foundation\Console\DocsCommand::class, + 'Illuminate\Foundation\Console\DownCommand' => \Illuminate\Foundation\Console\DownCommand::class, + 'Illuminate\Foundation\Console\EnvironmentCommand' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'Illuminate\Foundation\Console\EventCacheCommand' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'Illuminate\Foundation\Console\EventClearCommand' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'Illuminate\Foundation\Console\EventGenerateCommand' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'Illuminate\Foundation\Console\EventListCommand' => \Illuminate\Foundation\Console\EventListCommand::class, + 'Illuminate\Foundation\Console\EventMakeCommand' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'Illuminate\Foundation\Console\ExceptionMakeCommand' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'Illuminate\Foundation\Console\JobMakeCommand' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'Illuminate\Foundation\Console\KeyGenerateCommand' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'Illuminate\Foundation\Console\ListenerMakeCommand' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'Illuminate\Foundation\Console\MailMakeCommand' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'Illuminate\Foundation\Console\ModelMakeCommand' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'Illuminate\Foundation\Console\NotificationMakeCommand' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'Illuminate\Foundation\Console\ObserverMakeCommand' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'Illuminate\Foundation\Console\OptimizeClearCommand' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'Illuminate\Foundation\Console\OptimizeCommand' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'Illuminate\Foundation\Console\PackageDiscoverCommand' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'Illuminate\Foundation\Console\PolicyMakeCommand' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'Illuminate\Foundation\Console\ProviderMakeCommand' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'Illuminate\Foundation\Console\RequestMakeCommand' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'Illuminate\Foundation\Console\ResourceMakeCommand' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'Illuminate\Foundation\Console\RouteCacheCommand' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'Illuminate\Foundation\Console\RouteClearCommand' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'Illuminate\Foundation\Console\RouteListCommand' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'Illuminate\Foundation\Console\RuleMakeCommand' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'Illuminate\Foundation\Console\ScopeMakeCommand' => \Illuminate\Foundation\Console\ScopeMakeCommand::class, + 'Illuminate\Foundation\Console\ServeCommand' => \Illuminate\Foundation\Console\ServeCommand::class, + 'Illuminate\Foundation\Console\ShowModelCommand' => \Illuminate\Foundation\Console\ShowModelCommand::class, + 'Illuminate\Foundation\Console\StorageLinkCommand' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'Illuminate\Foundation\Console\StubPublishCommand' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'Illuminate\Foundation\Console\TestMakeCommand' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'Illuminate\Foundation\Console\UpCommand' => \Illuminate\Foundation\Console\UpCommand::class, + 'Illuminate\Foundation\Console\VendorPublishCommand' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'Illuminate\Foundation\Console\ViewCacheCommand' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'Illuminate\Foundation\Console\ViewClearCommand' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'Illuminate\Foundation\MaintenanceModeManager' => \Illuminate\Foundation\MaintenanceModeManager::class, 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Foundation\Vite' => \Illuminate\Foundation\Vite::class, 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Notifications\Console\NotificationTableCommand' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'Illuminate\Queue\Console\BatchesTableCommand' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'Illuminate\Queue\Console\ClearCommand' => \Illuminate\Queue\Console\ClearCommand::class, + 'Illuminate\Queue\Console\FailedTableCommand' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'Illuminate\Queue\Console\FlushFailedCommand' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'Illuminate\Queue\Console\ForgetFailedCommand' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'Illuminate\Queue\Console\ListFailedCommand' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'Illuminate\Queue\Console\ListenCommand' => \Illuminate\Queue\Console\ListenCommand::class, + 'Illuminate\Queue\Console\MonitorCommand' => \Illuminate\Queue\Console\MonitorCommand::class, + 'Illuminate\Queue\Console\PruneBatchesCommand' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'Illuminate\Queue\Console\PruneFailedJobsCommand' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, + 'Illuminate\Queue\Console\RestartCommand' => \Illuminate\Queue\Console\RestartCommand::class, + 'Illuminate\Queue\Console\RetryBatchCommand' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'Illuminate\Queue\Console\RetryCommand' => \Illuminate\Queue\Console\RetryCommand::class, + 'Illuminate\Queue\Console\TableCommand' => \Illuminate\Queue\Console\TableCommand::class, + 'Illuminate\Queue\Console\WorkCommand' => \Illuminate\Queue\Console\WorkCommand::class, + 'Illuminate\Routing\Console\ControllerMakeCommand' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'Illuminate\Routing\Console\MiddlewareMakeCommand' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Console\SessionTableCommand' => \Illuminate\Session\Console\SessionTableCommand::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Livewire\LivewireComponentsFinder' => \Livewire\LivewireComponentsFinder::class, 'Livewire\LivewireManager' => \Livewire\LivewireManager::class, - 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, - 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, - 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, 'Spatie\ImageOptimizer\OptimizerChain' => \Spatie\ImageOptimizer\OptimizerChain::class, - 'Webauthn\AttestationStatement\AttestationObjectLoader' => \Webauthn\AttestationStatement\AttestationObjectLoader::class, - 'Webauthn\AttestationStatement\AttestationStatementSupportManager' => \Webauthn\AttestationStatement\AttestationStatementSupportManager::class, - 'Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs' => \Webauthn\AuthenticationExtensions\AuthenticationExtensionsClientInputs::class, - 'Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler' => \Webauthn\AuthenticationExtensions\ExtensionOutputCheckerHandler::class, - 'Webauthn\AuthenticatorAssertionResponseValidator' => \Webauthn\AuthenticatorAssertionResponseValidator::class, - 'Webauthn\AuthenticatorAttestationResponseValidator' => \Webauthn\AuthenticatorAttestationResponseValidator::class, - 'Webauthn\AuthenticatorSelectionCriteria' => \DarkGhostHunter\Larapass\WebAuthn\AuthenticatorSelectionCriteria::class, - 'Webauthn\Counter\CounterChecker' => \Webauthn\Counter\ThrowExceptionIfInvalid::class, - 'Webauthn\PublicKeyCredentialLoader' => \Webauthn\PublicKeyCredentialLoader::class, - 'Webauthn\PublicKeyCredentialRpEntity' => \Webauthn\PublicKeyCredentialRpEntity::class, - 'Webauthn\PublicKeyCredentialSourceRepository' => \DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential::class, - 'Webauthn\TokenBinding\TokenBindingHandler' => \Webauthn\TokenBinding\IgnoreTokenBindingHandler::class, 'auth' => \Illuminate\Auth\AuthManager::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, @@ -2229,97 +2187,19 @@ 'clockwork.request' => \Clockwork\Request\Request::class, 'clockwork.storage' => \Clockwork\Storage\FileStorage::class, 'clockwork.support' => \Clockwork\Support\Laravel\ClockworkSupport::class, - 'clockwork.swift' => \Clockwork\DataSource\SwiftDataSource::class, 'clockwork.views' => \Clockwork\DataSource\LaravelViewsDataSource::class, 'clockwork.xdebug' => \Clockwork\DataSource\XdebugDataSource::class, - 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, - 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, - 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, - 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, - 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, - 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, - 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, - 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, - 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, - 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, - 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, - 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, - 'command.db.prune' => \Illuminate\Database\Console\PruneCommand::class, - 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, - 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, - 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, - 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, - 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, - 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, - 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, - 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, - 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, - 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, - 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, - 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, - 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, - 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, - 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, - 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, - 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, - 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, - 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, - 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, - 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, - 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, - 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, - 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, - 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, - 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, - 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, - 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, - 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, - 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, - 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, - 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, - 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, - 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, - 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, - 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, - 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, - 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, - 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, - 'command.queue.monitor' => \Illuminate\Queue\Console\MonitorCommand::class, - 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, - 'command.queue.prune-failed-jobs' => \Illuminate\Queue\Console\PruneFailedJobsCommand::class, - 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, - 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, - 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, - 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, - 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, - 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, - 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, - 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, - 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, - 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, - 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, - 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, - 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, - 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, - 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, - 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, - 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, - 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, - 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, - 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, - 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, - 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, - 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, 'composer' => \Illuminate\Support\Composer::class, 'cookie' => \Illuminate\Cookie\CookieJar::class, 'db' => \Illuminate\Database\DatabaseManager::class, - 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.connection' => \Illuminate\Database\SQLiteConnection::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\SQLiteBuilder::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class, 'events' => \Illuminate\Events\Dispatcher::class, @@ -2331,7 +2211,6 @@ 'image-optimizer' => \Spatie\ImageOptimizer\OptimizerChain::class, 'log' => \Illuminate\Log\LogManager::class, 'mail.manager' => \Illuminate\Mail\MailManager::class, - 'mailer' => \Illuminate\Mail\Mailer::class, 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, diff --git a/app/Actions/Album/Delete.php b/app/Actions/Album/Delete.php index 9bf634add63..c7dd44c41a1 100644 --- a/app/Actions/Album/Delete.php +++ b/app/Actions/Album/Delete.php @@ -20,7 +20,6 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Gate; use Safe\Exceptions\ArrayException; -use function Safe\usort; /** * Deletes the albums with the designated IDs **efficiently**. @@ -101,6 +100,8 @@ public function do(array $albumIDs): FileDeleter $recursiveAlbumIDs = array_merge($recursiveAlbumIDs, $subAlbums->pluck('id')->all()); $recursiveAlbumTracks = $recursiveAlbumTracks->merge($subAlbums->pluck('track_short_path')); } + // prune the null values + $recursiveAlbumTracks = $recursiveAlbumTracks->filter(fn ($val) => $val !== null); // Delete the photos from DB and obtain the list of files which need // to be deleted later diff --git a/app/Actions/Albums/Tree.php b/app/Actions/Albums/Tree.php index d09d3cf26a9..900eb7e782c 100644 --- a/app/Actions/Albums/Tree.php +++ b/app/Actions/Albums/Tree.php @@ -72,7 +72,7 @@ public function get(): AlbumTree // (sub)-tree and then `toTree` will return garbage as it does // not find connected paths within `$albums` or `$sharedAlbums`, // resp. - list($albums, $sharedAlbums) = $albums->partition(fn ($album) => $album->owner_id === $userID); + list($albums, $sharedAlbums) = $albums->partition(fn (Album $album) => $album->owner_id === $userID); } // We must explicitly pass `null` as the ID of the root album diff --git a/app/Actions/Diagnostics/Checks/BasicPermissionCheck.php b/app/Actions/Diagnostics/Checks/BasicPermissionCheck.php index dab1e5bfc3b..1af15d4acdd 100644 --- a/app/Actions/Diagnostics/Checks/BasicPermissionCheck.php +++ b/app/Actions/Diagnostics/Checks/BasicPermissionCheck.php @@ -11,10 +11,14 @@ use Illuminate\Contracts\Container\BindingResolutionException; use Illuminate\Contracts\Filesystem\Filesystem; use Illuminate\Support\Facades\Storage; -use League\Flysystem\Adapter\Local as LocalFlysystem; +use League\Flysystem\Local\LocalFilesystemAdapter; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; -use function Safe\sprintf; +use Safe\Exceptions\FilesystemException; +use Safe\Exceptions\PosixException; +use function Safe\fileperms; +use function Safe\posix_getgrgid; +use function Safe\posix_getgroups; class BasicPermissionCheck implements DiagnosticCheckInterface { @@ -62,8 +66,9 @@ public function folders(array &$errors): void $this->numOwnerIssues = 0; $this->numPermissionIssues = 0; $this->numAccessIssues = 0; - $groupIDsOrFalse = posix_getgroups(); - if ($groupIDsOrFalse === false) { + try { + $groupIDsOrFalse = posix_getgroups(); + } catch (PosixException) { $errors[] = 'Error: Could not determine groups of process'; return; @@ -74,9 +79,11 @@ public function folders(array &$errors): void $this->groupIDs = array_unique($this->groupIDs); $this->groupNames = implode(', ', array_map( function (int $gid): string { - $groupNameOrFalse = posix_getgrgid($gid); - - return $groupNameOrFalse === false ? '' : $groupNameOrFalse['name']; + try { + return posix_getgrgid($gid)['name']; + } catch (PosixException) { + return ''; + } }, $this->groupIDs )); @@ -88,7 +95,7 @@ function (int $gid): string { ]; foreach ($disks as $disk) { - if ($disk->getDriver()->getAdapter() instanceof LocalFlysystem) { + if ($disk->getAdapter() instanceof LocalFilesystemAdapter) { $this->checkDirectoryPermissionsRecursively($disk->path(''), $errors); } } @@ -134,8 +141,9 @@ private function checkDirectoryPermissionsRecursively(string $path, array &$erro return; } - $actualPerm = fileperms($path); - if ($actualPerm === false) { + try { + $actualPerm = fileperms($path); + } catch (FilesystemException) { $errors[] = sprintf('Warning: Unable to determine permissions for %s' . PHP_EOL, $path); return; @@ -146,7 +154,15 @@ private function checkDirectoryPermissionsRecursively(string $path, array &$erro // interested in $actualPerm &= 07777; $owningGroupIdOrFalse = filegroup($path); - $owningGroupNameOrFalse = $owningGroupIdOrFalse === false ? false : posix_getgrgid($owningGroupIdOrFalse); + if ($owningGroupIdOrFalse !== false) { + try { + $owningGroupNameOrFalse = posix_getgrgid($owningGroupIdOrFalse); + } catch (PosixException) { + $owningGroupNameOrFalse = false; + } + } else { + $owningGroupNameOrFalse = false; + } $owningGroupName = $owningGroupNameOrFalse === false ? '' : $owningGroupNameOrFalse['name']; $expectedPerm = self::getConfiguredDirectoryPerm(); diff --git a/app/Actions/Diagnostics/Checks/ImageOptCheck.php b/app/Actions/Diagnostics/Checks/ImageOptCheck.php index 6cfbb76d5ca..4fb61bed2b6 100644 --- a/app/Actions/Diagnostics/Checks/ImageOptCheck.php +++ b/app/Actions/Diagnostics/Checks/ImageOptCheck.php @@ -5,7 +5,7 @@ use App\Contracts\DiagnosticCheckInterface; use App\Facades\Helpers; use App\Models\Configs; -use function Safe\substr; +use function Safe\exec; use Spatie\ImageOptimizer\Optimizers\Cwebp; use Spatie\ImageOptimizer\Optimizers\Gifsicle; use Spatie\ImageOptimizer\Optimizers\Jpegoptim; diff --git a/app/Actions/Diagnostics/Diagnostics.php b/app/Actions/Diagnostics/Diagnostics.php index ad0aa319f00..17b7c15ff0c 100644 --- a/app/Actions/Diagnostics/Diagnostics.php +++ b/app/Actions/Diagnostics/Diagnostics.php @@ -2,8 +2,6 @@ namespace App\Actions\Diagnostics; -use function Safe\sprintf; - abstract class Diagnostics { /** diff --git a/app/Actions/Import/Exec.php b/app/Actions/Import/Exec.php index 7c5d03844bb..4b1b8270277 100644 --- a/app/Actions/Import/Exec.php +++ b/app/Actions/Import/Exec.php @@ -28,10 +28,10 @@ use function Safe\file; use function Safe\glob; use function Safe\ini_get; +use function Safe\ob_flush; use function Safe\preg_match; use function Safe\realpath; use function Safe\set_time_limit; -use function Safe\substr; use Symfony\Component\HttpFoundation\StreamedResponse; class Exec diff --git a/app/Actions/Import/FromUrl.php b/app/Actions/Import/FromUrl.php index 00ff3eae27d..a83a7407754 100644 --- a/app/Actions/Import/FromUrl.php +++ b/app/Actions/Import/FromUrl.php @@ -49,6 +49,8 @@ public function do(array $urls, ?Album $album): Collection // Silently do nothing, if `set_time_limit` is denied. } + // If the component parameter is specified, this function returns a string (or int in case of PHP_URL_PORT) + /** @var string $path */ $path = parse_url($url, PHP_URL_PATH); $extension = '.' . pathinfo($path, PATHINFO_EXTENSION); diff --git a/app/Actions/Install/PermissionsChecker.php b/app/Actions/Install/PermissionsChecker.php index 98a10690ba7..ef899baafe1 100644 --- a/app/Actions/Install/PermissionsChecker.php +++ b/app/Actions/Install/PermissionsChecker.php @@ -3,7 +3,6 @@ namespace App\Actions\Install; use function Safe\preg_match; -use function Safe\substr; class PermissionsChecker { diff --git a/app/Actions/Photo/Create.php b/app/Actions/Photo/Create.php index e61e35c49e4..b38f644c962 100644 --- a/app/Actions/Photo/Create.php +++ b/app/Actions/Photo/Create.php @@ -28,7 +28,6 @@ use App\SmartAlbums\PublicAlbum; use App\SmartAlbums\StarredAlbum; use Illuminate\Database\Eloquent\ModelNotFoundException; -use function Safe\substr; class Create { diff --git a/app/Actions/Photo/Strategies/AddVideoPartnerStrategy.php b/app/Actions/Photo/Strategies/AddVideoPartnerStrategy.php index b53927232b2..7abb4ea67b0 100644 --- a/app/Actions/Photo/Strategies/AddVideoPartnerStrategy.php +++ b/app/Actions/Photo/Strategies/AddVideoPartnerStrategy.php @@ -14,7 +14,6 @@ use App\Image\NativeLocalFile; use App\Image\StreamStat; use App\Models\Photo; -use function Safe\substr; /** * Adds a video as partner to an existing photo. diff --git a/app/Actions/RSS/Generate.php b/app/Actions/RSS/Generate.php index 05b442822ee..8665025e00a 100644 --- a/app/Actions/RSS/Generate.php +++ b/app/Actions/RSS/Generate.php @@ -65,6 +65,7 @@ public function do(): Collection throw new FrameworkException('Date/Time component (Carbon)', $e); } + /** @var Collection $photos */ $photos = $this->photoQueryPolicy ->applySearchabilityFilter( Photo::with(['album', 'owner', 'size_variants', 'size_variants.sym_links']) diff --git a/app/Actions/Update/Apply.php b/app/Actions/Update/Apply.php index b7ce6c2ce65..45d3b06d8c3 100644 --- a/app/Actions/Update/Apply.php +++ b/app/Actions/Update/Apply.php @@ -12,6 +12,7 @@ use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Config; use function Safe\chdir; +use function Safe\exec; use function Safe\preg_replace; use function Safe\putenv; diff --git a/app/Actions/Update/Check.php b/app/Actions/Update/Check.php index b3626ca086c..402e7884bfd 100644 --- a/app/Actions/Update/Check.php +++ b/app/Actions/Update/Check.php @@ -10,6 +10,7 @@ use App\Metadata\GitRequest; use App\Metadata\LycheeVersion; use App\Models\Configs; +use function Safe\exec; class Check { diff --git a/app/Actions/User/Notify.php b/app/Actions/User/Notify.php index a1b2eeba197..e1eee62c58d 100644 --- a/app/Actions/User/Notify.php +++ b/app/Actions/User/Notify.php @@ -2,27 +2,44 @@ namespace App\Actions\User; +use App\Exceptions\ConfigurationKeyMissingException; +use App\Exceptions\Internal\QueryBuilderException; use App\Models\Configs; use App\Models\Photo; use App\Models\User; use App\Notifications\PhotoAdded; +use Illuminate\Database\Eloquent\ModelNotFoundException; +use Illuminate\Database\MultipleRecordsFoundException; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Notification; class Notify { + /** + * Notify users that a new photo has been uploaded. + * + * @param Photo $photo + * + * @return void + * + * @throws ConfigurationKeyMissingException + * @throws QueryBuilderException + * @throws ModelNotFoundException + * @throws MultipleRecordsFoundException + */ public function do(Photo $photo): void { if (!Configs::getValueAsBool('new_photos_notification')) { return; } - // The admin is always informed - $users = new Collection([User::query()->find(0)]); + // Admin user is always notified + $users = new Collection([User::find(0)]); + $album = $photo->album; if ($album !== null) { - $users->push($album->shared_with); + $users = $users->concat($album->shared_with); $users->push($album->owner); } diff --git a/app/Actions/WebAuth/Delete.php b/app/Actions/WebAuth/Delete.php deleted file mode 100644 index 3767d55b773..00000000000 --- a/app/Actions/WebAuth/Delete.php +++ /dev/null @@ -1,20 +0,0 @@ -removeCredential($ids); - } -} diff --git a/app/Actions/WebAuth/GenerateAuthentication.php b/app/Actions/WebAuth/GenerateAuthentication.php deleted file mode 100644 index ef5e126e8ed..00000000000 --- a/app/Actions/WebAuth/GenerateAuthentication.php +++ /dev/null @@ -1,18 +0,0 @@ -where('id', $user_id)->first(); - - return WebAuthn::generateAssertion($user); - } -} diff --git a/app/Actions/WebAuth/GenerateRegistration.php b/app/Actions/WebAuth/GenerateRegistration.php deleted file mode 100644 index 7a79d534479..00000000000 --- a/app/Actions/WebAuth/GenerateRegistration.php +++ /dev/null @@ -1,22 +0,0 @@ -webAuthnCredentials->map(fn ($cred) => ['id' => $cred->id]); - } -} diff --git a/app/Actions/WebAuth/VerifyAuthentication.php b/app/Actions/WebAuth/VerifyAuthentication.php deleted file mode 100644 index fb5034f78c4..00000000000 --- a/app/Actions/WebAuth/VerifyAuthentication.php +++ /dev/null @@ -1,95 +0,0 @@ -getUserFromCredentials($credential); - if ($user !== null) { - Auth::login($user); - - return; - } - } - throw new UnauthenticatedException('Invalid login'); - } - - /** - * Return the user that should authenticate via WebAuthn. - * - * @param string[] $credentials - * - * @return User|null - * - * @throws InvalidUserIdException - */ - protected function getUserFromCredentials(array $credentials): ?User - { - // We will try to ask the User Provider for any user for the given credentials. - // If there is one, we will then return an array of credentials ID that the - // authenticator may use to sign the subsequent challenge by the server. - if ($this->isSignedChallenge($credentials)) { - $id = $this->binaryID($credentials['rawId']); - if ($id !== '') { - // PHPStan does not understand that `getFromCredentialId` returns `User`, but assumes that it returns `WebAuthnAuthenticatable` - // @phpstan-ignore-next-line - return User::getFromCredentialId($id); - } - } - - return null; - } - - /** - * Transforms the raw ID string into a binary string. - * - * @param string $rawId - * - * @return string - * - * @throws InvalidUserIdException - */ - protected function binaryID(string $rawId): string - { - try { - $result = base64_decode(strtr($rawId, '-_', '+/'), true); - } catch (\Throwable $e) { - throw new InvalidUserIdException($e); - } - - return $result; - } - - /** - * Check if the credentials are for a public key signed challenge. - * - * @param array $credentials - * - * @return bool - */ - protected function isSignedChallenge(array $credentials): bool - { - return isset($credentials['id'], $credentials['rawId'], $credentials['type'], $credentials['response']); - } -} diff --git a/app/Actions/WebAuth/VerifyRegistration.php b/app/Actions/WebAuth/VerifyRegistration.php deleted file mode 100644 index 4bc98db7a24..00000000000 --- a/app/Actions/WebAuth/VerifyRegistration.php +++ /dev/null @@ -1,33 +0,0 @@ -addCredential($credential); - } else { - throw new UnauthorizedException('Provided credentials are insufficient'); - } - } -} diff --git a/app/Assets/Helpers.php b/app/Assets/Helpers.php index 300e9d2acbe..57bb416eedc 100644 --- a/app/Assets/Helpers.php +++ b/app/Assets/Helpers.php @@ -8,7 +8,6 @@ use function Safe\getallheaders; use function Safe\ini_get; use function Safe\parse_url; -use function Safe\substr; use WhichBrowser\Parser as BrowserParser; class Helpers @@ -104,6 +103,7 @@ public function getExtension(string $filename, bool $isURI = false): string { // If $filename is an URI, get only the path component if ($isURI === true) { + /** @var string $filename this is true because PHP_URL_PATH is specified */ $filename = parse_url($filename, PHP_URL_PATH); } diff --git a/app/Assets/SizeVariantGroupedWithRandomSuffixNamingStrategy.php b/app/Assets/SizeVariantGroupedWithRandomSuffixNamingStrategy.php index bc168c3ef98..c89f016f8c7 100644 --- a/app/Assets/SizeVariantGroupedWithRandomSuffixNamingStrategy.php +++ b/app/Assets/SizeVariantGroupedWithRandomSuffixNamingStrategy.php @@ -156,11 +156,11 @@ protected static function createRndMiddlePath(): string $rndStr = bin2hex(random_bytes(self::NAME_LENGTH / 2)); return - \Safe\substr($rndStr, 0, 2) . + substr($rndStr, 0, 2) . DIRECTORY_SEPARATOR . - \Safe\substr($rndStr, 2, 2) . + substr($rndStr, 2, 2) . DIRECTORY_SEPARATOR . - \Safe\substr($rndStr, 4); + substr($rndStr, 4); } catch (\Exception $e) { throw new InsufficientEntropyException($e); } diff --git a/app/Console/Commands/FixPermissions.php b/app/Console/Commands/FixPermissions.php index ca34aa70623..5104ac922a3 100644 --- a/app/Console/Commands/FixPermissions.php +++ b/app/Console/Commands/FixPermissions.php @@ -6,8 +6,9 @@ use Illuminate\Console\Command; use Illuminate\Support\Facades\Storage; use function Safe\chmod; +use Safe\Exceptions\FilesystemException; use function Safe\fileowner; -use function Safe\sprintf; +use function Safe\fileperms; use Symfony\Component\Console\Exception\InvalidArgumentException; class FixPermissions extends Command @@ -89,11 +90,6 @@ private function fixPermissionsRecursively(string $path): void { try { $actualPerm = fileperms($path); - if ($actualPerm === false) { - $this->warn(sprintf('Unable to determine permissions for %s' . PHP_EOL, $path)); - - return; - } // `fileperms` also returns the higher bits of the inode mode. // Hence, we must AND it with 07777 to only get what we are @@ -141,6 +137,8 @@ private function fixPermissionsRecursively(string $path): void } } } + } catch (FilesystemException) { + $this->warn(sprintf('Unable to determine permissions for %s' . PHP_EOL, $path)); } catch (\Exception $e) { $this->error($e->getMessage()); } diff --git a/app/Console/Commands/GenerateThumbs.php b/app/Console/Commands/GenerateThumbs.php index 43e7fb68f28..0498ddb55bc 100644 --- a/app/Console/Commands/GenerateThumbs.php +++ b/app/Console/Commands/GenerateThumbs.php @@ -10,10 +10,8 @@ use App\Models\SizeVariant; use Illuminate\Console\Command; use Illuminate\Database\Eloquent\Builder; -use function Safe\array_flip; use Safe\Exceptions\InfoException; use function Safe\set_time_limit; -use function Safe\sprintf; use Symfony\Component\Console\Exception\ExceptionInterface as SymfonyConsoleException; class GenerateThumbs extends Command diff --git a/app/Console/Commands/Ghostbuster.php b/app/Console/Commands/Ghostbuster.php index fe5031dbe7f..d6c052b84ef 100644 --- a/app/Console/Commands/Ghostbuster.php +++ b/app/Console/Commands/Ghostbuster.php @@ -11,7 +11,7 @@ use Illuminate\Console\Command; use Illuminate\Database\Eloquent\Collection; use Illuminate\Support\Facades\Storage; -use League\Flysystem\Adapter\Local as LocalFlysystem; +use League\Flysystem\Local\LocalFilesystemAdapter; use function Safe\readlink; use function Safe\scandir; use function Safe\unlink; @@ -74,7 +74,7 @@ public function handle(): int $dryrun = filter_var($this->option('dryrun'), FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) !== false; $uploadDisk = SizeVariantNamingStrategy::getImageDisk(); $symlinkDisk = Storage::disk(SymLink::DISK_NAME); - $isLocalDisk = $uploadDisk->getDriver()->getAdapter() instanceof LocalFlysystem; + $isLocalDisk = $uploadDisk->getAdapter() instanceof LocalFilesystemAdapter; $this->line(''); diff --git a/app/Console/Commands/Npm.php b/app/Console/Commands/Npm.php index f29860d10ab..ae2d5d06492 100644 --- a/app/Console/Commands/Npm.php +++ b/app/Console/Commands/Npm.php @@ -5,6 +5,7 @@ use App\Contracts\ExternalLycheeException; use App\Exceptions\UnexpectedException; use Illuminate\Console\Command; +use function Safe\exec; use Symfony\Component\Console\Exception\ExceptionInterface as SymfonyConsoleException; class Npm extends Command diff --git a/app/Console/Commands/Optimize.php b/app/Console/Commands/Optimize.php index a1505ecea0f..1e5428c0e87 100644 --- a/app/Console/Commands/Optimize.php +++ b/app/Console/Commands/Optimize.php @@ -6,7 +6,6 @@ use Illuminate\Foundation\Console\OptimizeCommand; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; -use function Safe\sprintf; use Symfony\Component\Console\Exception\ExceptionInterface as ConsoleException; use Symfony\Component\Console\Exception\InvalidOptionException; @@ -57,7 +56,7 @@ public function handle(): void 'assume-yes' => true, 'assume-no' => false, null => null, - default => throw new InvalidOptionException(sprintf('Unexpected option value %s for --dont-confirm', $this->option('dont-confirm'))) + default => throw new InvalidOptionException(sprintf('Unexpected option value %s for --dont-confirm', strval($this->option('dont-confirm')))) }; $hasPreviousCache = file_exists($this->laravel->getCachedConfigPath()) || file_exists($this->laravel->getCachedRoutesPath()); diff --git a/app/Console/Commands/Sync.php b/app/Console/Commands/Sync.php index 879b913b3c9..98bb7cfa083 100644 --- a/app/Console/Commands/Sync.php +++ b/app/Console/Commands/Sync.php @@ -12,7 +12,6 @@ use Exception; use Illuminate\Console\Command; use Illuminate\Support\Facades\Auth; -use function Safe\sprintf; use Symfony\Component\Console\Exception\ExceptionInterface as SymfonyConsoleException; class Sync extends Command diff --git a/app/Console/Commands/VideoData.php b/app/Console/Commands/VideoData.php index c66adf255ea..e68613fba98 100644 --- a/app/Console/Commands/VideoData.php +++ b/app/Console/Commands/VideoData.php @@ -14,7 +14,6 @@ use Illuminate\Database\Eloquent\Builder; use Safe\Exceptions\InfoException; use function Safe\set_time_limit; -use function Safe\sprintf; use Symfony\Component\Console\Exception\ExceptionInterface as SymfonyConsoleException; class VideoData extends Command diff --git a/app/DTO/ArrayableDTO.php b/app/DTO/ArrayableDTO.php index 993b332cc34..880d614db6d 100644 --- a/app/DTO/ArrayableDTO.php +++ b/app/DTO/ArrayableDTO.php @@ -6,7 +6,6 @@ use Illuminate\Contracts\Support\Arrayable; use ReflectionClass; use ReflectionProperty; -use function Safe\sprintf; /** * In some cases, when a DTO does not need to apply casts on attributes diff --git a/app/DTO/DTO.php b/app/DTO/DTO.php index 020ffb8b9c5..8376ccc1b10 100644 --- a/app/DTO/DTO.php +++ b/app/DTO/DTO.php @@ -6,7 +6,6 @@ use Illuminate\Contracts\Support\Jsonable; use Illuminate\Database\Eloquent\JsonEncodingException; use function Safe\json_encode; -use function Safe\json_last_error_msg; /** * Base class for all Data Transfer Objects (DTO). diff --git a/app/DTO/LycheeGitInfo.php b/app/DTO/LycheeGitInfo.php index a21fdbe4fa8..614d5e15412 100644 --- a/app/DTO/LycheeGitInfo.php +++ b/app/DTO/LycheeGitInfo.php @@ -2,8 +2,6 @@ namespace App\DTO; -use function Safe\sprintf; - class LycheeGitInfo extends ArrayableDTO { public function __construct( diff --git a/app/Exceptions/FlySystemLycheeException.php b/app/Exceptions/FlySystemLycheeException.php new file mode 100644 index 00000000000..a98ab0692b8 --- /dev/null +++ b/app/Exceptions/FlySystemLycheeException.php @@ -0,0 +1,19 @@ +with(['photos', 'children', 'photos.size_variants']); } + /** @var Collection $result */ $result = new Collection(array_merge( $tagAlbumQuery->findMany($albumIDs)->all(), $albumQuery->findMany($albumIDs)->all(), diff --git a/app/Factories/DiagnosticsChecksFactory.php b/app/Factories/DiagnosticsChecksFactory.php index 014c4388559..df3ae8a57b7 100644 --- a/app/Factories/DiagnosticsChecksFactory.php +++ b/app/Factories/DiagnosticsChecksFactory.php @@ -4,7 +4,6 @@ use App\Contracts\DiagnosticCheckInterface; use function Safe\scandir; -use function Safe\substr; class DiagnosticsChecksFactory { diff --git a/app/Factories/LangFactory.php b/app/Factories/LangFactory.php index 5ea6c4f02ea..5383db01808 100644 --- a/app/Factories/LangFactory.php +++ b/app/Factories/LangFactory.php @@ -5,7 +5,6 @@ use App\Contracts\Language; use App\Locale\English; use function Safe\scandir; -use function Safe\substr; class LangFactory { diff --git a/app/Http/Controllers/Administration/SettingsController.php b/app/Http/Controllers/Administration/SettingsController.php index d7717901c64..2161f07a26f 100644 --- a/app/Http/Controllers/Administration/SettingsController.php +++ b/app/Http/Controllers/Administration/SettingsController.php @@ -387,7 +387,7 @@ public function setCSS(Request $request): void $request->validate(['css' => 'present|nullable|string']); $css = $request->get('css') ?? ''; - if (!Storage::disk('dist')->put('user.css', $css)) { + if (Storage::disk('dist')->put('user.css', $css) === false) { throw new InsufficientFilesystemPermissions('Could not save CSS'); } } diff --git a/app/Http/Controllers/Administration/WebAuthController.php b/app/Http/Controllers/Administration/WebAuthController.php deleted file mode 100644 index dc8119a589e..00000000000 --- a/app/Http/Controllers/Administration/WebAuthController.php +++ /dev/null @@ -1,96 +0,0 @@ -generateRegistration = $generateRegistration; - $this->verifyRegistration = $verifyRegistration; - $this->generateAuthentication = $generateAuthentication; - $this->verifyAuthentication = $verifyAuthentication; - $this->listDevices = $listDevices; - $this->deleteDevices = $deleteDevices; - } - - /** - * You can manage the user credentials thanks to the WebAuthnAuthenticatable contract directly from within the user instance. The most useful methods are:. - * - * hasCredential(): Checks if the user has a given Credential ID. - * addCredential(): Adds a new Credential Source. - * removeCredential(): Removes an existing Credential by its ID. - * flushCredentials(): Removes all credentials. You can exclude credentials by their id. - * enableCredential(): Includes an existing Credential ID from authentication. - * disableCredential(): Excludes an existing Credential ID from authentication. - * getFromCredentialId(): Returns the user using the given Credential ID, if any. - */ - public function generateRegistration(): PublicKeyCredentialCreationOptions - { - return $this->generateRegistration->do(); - } - - public function verifyRegistration(Request $request): void - { - $data = $request->validate($this->attestationRules()); - - $this->verifyRegistration->do($data); - } - - public function generateAuthentication(Request $request): PublicKeyCredentialRequestOptions - { - return $this->generateAuthentication->do($request['user_id']); - } - - /** - * @throws UnauthenticatedException - * @throws InvalidUserIdException - */ - public function verifyAuthentication(Request $request): void - { - $credential = $request->validate($this->assertionRules()); - - $this->verifyAuthentication->do($credential); - } - - public function list(): Collection - { - return $this->listDevices->do(); - } - - public function delete(Request $request): void - { - $id = $request->validate(['id' => 'required|string']); - $this->deleteDevices->do($id); - } -} diff --git a/app/Http/Controllers/WebAuthn/WebAuthnLoginController.php b/app/Http/Controllers/WebAuthn/WebAuthnLoginController.php new file mode 100644 index 00000000000..6d1808fcfbd --- /dev/null +++ b/app/Http/Controllers/WebAuthn/WebAuthnLoginController.php @@ -0,0 +1,50 @@ +toVerify($request->validate(['user_id' => 'sometimes|int'])['user_id']); + } + + /** + * Log the user in. + * + * @param AssertedRequest $request + * + * @return void + */ + public function login(AssertedRequest $request, AssertionValidator $assertion): void + { + $credential = $assertion + ->send(new AssertionValidation($request, User::findOrFail(0))) + ->thenReturn() + ->credential; + + if ($credential === null) { + throw new UnauthenticatedException('Invalid credentials'); + } + + /** @var \Illuminate\Contracts\Auth\Authenticatable $authenticatable */ + $authenticatable = $credential->authenticatable; + Auth::login($authenticatable); + } +} diff --git a/app/Http/Controllers/WebAuthn/WebAuthnManageController.php b/app/Http/Controllers/WebAuthn/WebAuthnManageController.php new file mode 100644 index 00000000000..9038c8f572c --- /dev/null +++ b/app/Http/Controllers/WebAuthn/WebAuthnManageController.php @@ -0,0 +1,33 @@ +webAuthnCredentials; + } + + /** + * @throws UnauthenticatedException + */ + public function delete(Request $request): void + { + /** @var \App\Models\User $user */ + $user = Auth::user() ?? throw new UnauthenticatedException(); + $id = $request->validate(['id' => 'required|string']); + $user->webAuthnCredentials()->where('id', $id)->delete(); + } +} diff --git a/app/Http/Controllers/WebAuthn/WebAuthnRegisterController.php b/app/Http/Controllers/WebAuthn/WebAuthnRegisterController.php new file mode 100644 index 00000000000..c2bb1ebd77d --- /dev/null +++ b/app/Http/Controllers/WebAuthn/WebAuthnRegisterController.php @@ -0,0 +1,41 @@ +user = Auth::user() ?? throw new UnauthenticatedException(); + + return $request + ->fastRegistration() + ->toCreate(); + } + + /** + * Registers a device for further WebAuthn authentication. + * + * @param \Laragear\WebAuthn\Http\Requests\AttestedRequest $request + * + * @return void + */ + public function register(AttestedRequest $request): void + { + $request->user = Auth::user() ?? throw new UnauthenticatedException(); + $request->save(); + } +} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index dc007a8526e..e36a16fe56b 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -17,7 +17,7 @@ class Kernel extends HttpKernel */ protected $middleware = [ \App\Http\Middleware\FixStatusCode::class, - \Fideloper\Proxy\TrustProxies::class, // required to get proper (i.e. original) client IP instead of proxy IP, if run behind a reverse proxy + \Illuminate\Http\Middleware\TrustProxies::class, \Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, diff --git a/app/Http/Livewire/Sidebar.php b/app/Http/Livewire/Sidebar.php index 294fea739e3..2315195cf92 100644 --- a/app/Http/Livewire/Sidebar.php +++ b/app/Http/Livewire/Sidebar.php @@ -8,6 +8,7 @@ use App\Models\TagAlbum; use DebugBar\DebugBar; use Illuminate\Contracts\Container\BindingResolutionException; +use Illuminate\Support\Facades\Auth; use Livewire\Component; class Sidebar extends Component diff --git a/app/Http/Middleware/LocalStorageOnly.php b/app/Http/Middleware/LocalStorageOnly.php index d6367d56679..511e70334d5 100644 --- a/app/Http/Middleware/LocalStorageOnly.php +++ b/app/Http/Middleware/LocalStorageOnly.php @@ -5,7 +5,7 @@ use App\Contracts\SizeVariantNamingStrategy; use App\Exceptions\RequestUnsupportedException; use Illuminate\Http\Request; -use League\Flysystem\Adapter\Local; +use League\Flysystem\Local\LocalFilesystemAdapter; class LocalStorageOnly { @@ -21,8 +21,8 @@ class LocalStorageOnly */ public function handle(Request $request, \Closure $next) { - $storageAdapter = SizeVariantNamingStrategy::getImageDisk()->getDriver()->getAdapter(); - if (!($storageAdapter instanceof Local)) { + $storageAdapter = SizeVariantNamingStrategy::getImageDisk()->getAdapter(); + if (!($storageAdapter instanceof LocalFilesystemAdapter)) { throw new RequestUnsupportedException($request->url() . ' not implemented for non-local storage'); } diff --git a/app/Image/BinaryBlob.php b/app/Image/BinaryBlob.php index 7d16ef613e0..b13ebb0e628 100644 --- a/app/Image/BinaryBlob.php +++ b/app/Image/BinaryBlob.php @@ -3,6 +3,7 @@ namespace App\Image; use App\Exceptions\MediaFileOperationException; +use function Safe\stream_filter_append; /** * Class BinaryBlob. @@ -104,7 +105,7 @@ public function close(): void protected static function appendStatFilter($stream): StreamStat { $streamStat = new StreamStat(); - \Safe\stream_filter_append( + stream_filter_append( $stream, StreamStatFilter::REGISTERED_NAME, STREAM_FILTER_READ, diff --git a/app/Image/DownloadedFile.php b/app/Image/DownloadedFile.php index 79553fa0836..9b57fc0b354 100644 --- a/app/Image/DownloadedFile.php +++ b/app/Image/DownloadedFile.php @@ -27,6 +27,7 @@ class DownloadedFile extends TemporaryLocalFile public function __construct(string $url) { try { + /** @var string $path because we provide directly PHP_URL_PATH */ $path = parse_url($url, PHP_URL_PATH); $basename = pathinfo($path, PATHINFO_FILENAME); $extension = '.' . pathinfo($path, PATHINFO_EXTENSION); diff --git a/app/Image/FileDeleter.php b/app/Image/FileDeleter.php index 48b4e09428b..f8126458a70 100644 --- a/app/Image/FileDeleter.php +++ b/app/Image/FileDeleter.php @@ -7,7 +7,7 @@ use App\Models\SymLink; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Storage; -use League\Flysystem\Adapter\Local as LocalAdapter; +use League\Flysystem\Local\LocalFilesystemAdapter; use function Safe\unlink; /** @@ -104,7 +104,7 @@ public function do(): void // If the disk uses the local driver, we use low-level routines as // these are also able to handle symbolic links in case of doubt - $isLocalDisk = $defaultDisk->getDriver()->getAdapter() instanceof LocalAdapter; + $isLocalDisk = $defaultDisk->getAdapter() instanceof LocalFilesystemAdapter; if ($isLocalDisk) { foreach ($this->regularFilesOrSymbolicLinks as $fileOrLink) { try { diff --git a/app/Image/FlysystemFile.php b/app/Image/FlysystemFile.php index 6bf80ffebd4..1878bd1a076 100644 --- a/app/Image/FlysystemFile.php +++ b/app/Image/FlysystemFile.php @@ -2,22 +2,16 @@ namespace App\Image; +use App\Exceptions\FlySystemLycheeException; use App\Exceptions\MediaFileOperationException; use Illuminate\Contracts\Filesystem\FileNotFoundException; use Illuminate\Contracts\Filesystem\Filesystem; -use League\Flysystem\Adapter\Local as LocalAdapter; -use League\Flysystem\Exception as FlyException; +use League\Flysystem\FilesystemException; +use League\Flysystem\Local\LocalFilesystemAdapter; use function Safe\fclose; /** * Class FlysystemFile. - * - * This class is based on legacy Flysystem v1 which ships with Laravel 8. - * Laravel 9 will migrate to Flysystem v2 which provides a different and - * more consistent API. - * - * For v1, this documentation is relevant: - * https://flysystem.thephpleague.com/v1/docs/usage/filesystem-api/ */ class FlysystemFile extends MediaFile { @@ -43,9 +37,9 @@ public function read() $this->stream = $this->disk->readStream($this->relativePath); if (!is_resource($this->stream)) { $this->stream = null; - throw new FlyException('Filesystem::readStream failed'); + throw new FlySystemLycheeException('Filesystem::readStream failed'); } - } catch (\ErrorException|FlyException|FileNotFoundException $e) { + } catch (\ErrorException|FilesystemException|FileNotFoundException $e) { throw new MediaFileOperationException($e->getMessage(), $e); } @@ -60,16 +54,12 @@ public function write($stream, bool $collectStatistics = false): ?StreamStat try { $streamStat = $collectStatistics ? static::appendStatFilter($stream) : null; - // TODO: `put` must be replaced by `writeStream` when Flysystem 2 is shipped with Laravel 9 - // This will also be more consistent with `readStream`. - // Note that v1 also provides a method `writeStream`, but this is a misnomer. - // See: https://flysystem.thephpleague.com/v2/docs/what-is-new/ - if (!$this->disk->put($this->relativePath, $stream)) { - throw new FlyException('Filesystem::put failed'); + if (!$this->disk->writeStream($this->relativePath, $stream)) { + throw new FlySystemLycheeException('Filesystem::writeStream failed'); } return $streamStat; - } catch (\ErrorException|FlyException $e) { + } catch (\ErrorException|FilesystemException $e) { throw new MediaFileOperationException($e->getMessage(), $e); } } @@ -81,9 +71,9 @@ public function delete(): void { try { if (!$this->disk->delete($this->relativePath)) { - throw new FlyException('Filesystem::delete failed'); + throw new FlySystemLycheeException('Filesystem::delete failed'); } - } catch (\ErrorException|FlyException $e) { + } catch (\ErrorException|FilesystemException $e) { throw new MediaFileOperationException($e->getMessage(), $e); } } @@ -166,7 +156,7 @@ public function getBasename(): string */ public function isLocalFile(): bool { - return $this->disk->getDriver()->getAdapter() instanceof LocalAdapter; + return $this->disk->getAdapter() instanceof LocalFilesystemAdapter; } /** diff --git a/app/Image/GdHandler.php b/app/Image/GdHandler.php index e5c328d172a..6ac24647ecd 100644 --- a/app/Image/GdHandler.php +++ b/app/Image/GdHandler.php @@ -11,6 +11,7 @@ use Safe\Exceptions\ImageException; use function Safe\imagecopyresampled; use function Safe\imagecopyresized; +use function Safe\imagecreatefromstring; use function Safe\imagecreatetruecolor; use function Safe\imagecrop; use function Safe\imageflip; @@ -151,7 +152,6 @@ public function load(MediaFile $file): void // Determine the type of image, so that we can later save the // image using the same type - // TODO: Replace `imagecreatefromstring` by `\Safe\imagecreatefromstring` after https://github.com/thecodingmachine/safe/issues/352 has been resolved error_clear_last(); $gdImgStat = getimagesizefromstring($imgBinary); if ($gdImgStat === false) { @@ -166,11 +166,8 @@ public function load(MediaFile $file): void // Load image error_clear_last(); - // TODO: Replace `imagecreatefromstring` by `\Safe\imagecreatefromstring` after https://github.com/thecodingmachine/safe/issues/352 has been resolved + /** @var \GdImage $img */ $img = imagecreatefromstring($imgBinary); - if ($img === false) { - throw ImageException::createFromPhpError(); - } $this->gdImage = $img; // Get EXIF data to determine whether rotation is required diff --git a/app/Image/StreamStatFilter.php b/app/Image/StreamStatFilter.php index af6d5a02687..d1fb8bf309b 100644 --- a/app/Image/StreamStatFilter.php +++ b/app/Image/StreamStatFilter.php @@ -9,7 +9,7 @@ class StreamStatFilter extends \php_user_filter { public const REGISTERED_NAME = 'stream-stat-filter'; - /** @var string the used hashing algorithm; value must be supported by PHP, see {@link hash_algos()} */ + /** @var string HASH_ALGO_NAME the used hashing algorithm; value must be supported by PHP, see {@link hash_algos()} */ public const HASH_ALGO_NAME = 'sha1'; /** @var \HashContext|null the hash context for progressive hashing */ diff --git a/app/Metadata/DiskUsage.php b/app/Metadata/DiskUsage.php index c65486c57b5..5aa15795bc7 100644 --- a/app/Metadata/DiskUsage.php +++ b/app/Metadata/DiskUsage.php @@ -5,9 +5,8 @@ use App\Facades\Helpers; use function Safe\disk_free_space; use function Safe\disk_total_space; +use function Safe\exec; use function Safe\filesize; -use function Safe\sprintf; -use function Safe\substr; class DiskUsage { diff --git a/app/Metadata/Extractor.php b/app/Metadata/Extractor.php index c59707821f4..647e94cc5b7 100644 --- a/app/Metadata/Extractor.php +++ b/app/Metadata/Extractor.php @@ -16,7 +16,6 @@ use PHPExif\Exif; use PHPExif\Reader\Reader; use Safe\Exceptions\StringsException; -use function Safe\substr; /** * Collects normalized EXIF info about an image/video. diff --git a/app/Metadata/GitHubFunctions.php b/app/Metadata/GitHubFunctions.php index dcd3f5dad7c..8bcd1de22ce 100644 --- a/app/Metadata/GitHubFunctions.php +++ b/app/Metadata/GitHubFunctions.php @@ -9,8 +9,6 @@ use Illuminate\Contracts\Container\BindingResolutionException; use Illuminate\Support\Facades\Config; use function Safe\file_get_contents; -use function Safe\sprintf; -use function Safe\substr; class GitHubFunctions { diff --git a/app/ModelFunctions/LogFunctions.php b/app/ModelFunctions/LogFunctions.php index 65950eef6c8..3b34f1c83ba 100644 --- a/app/ModelFunctions/LogFunctions.php +++ b/app/ModelFunctions/LogFunctions.php @@ -4,6 +4,7 @@ use App\Models\Logs; use Psr\Log\AbstractLogger; +use Stringable; // Class for FFMpeg to convert files to mov format class LogFunctions extends AbstractLogger @@ -37,7 +38,7 @@ private function interpolate(string $message, array $context = []): string /** * Implements log so that AbstractLogger works. */ - public function log($loglevel, $message, $context = []) + public function log($level, Stringable|string $message, array $context = []): void { $dbt = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3); // debug_backtrace return the backtrace of all the function calls @@ -52,7 +53,7 @@ public function log($loglevel, $message, $context = []) } $log = Logs::create([ - 'type' => $loglevel, + 'type' => $level, 'function' => $fun, 'line' => $line, 'text' => $text, diff --git a/app/Models/Album.php b/app/Models/Album.php index bef8d9e7884..c1358b557c6 100644 --- a/app/Models/Album.php +++ b/app/Models/Album.php @@ -76,8 +76,8 @@ class Album extends BaseAlbum implements Node ]; /** - * @var string[] The list of attributes which exist as columns of the DB - * relation but shall not be serialized to JSON + * @var array The list of attributes which exist as columns of the DB + * relation but shall not be serialized to JSON */ protected $hidden = [ 'base_class', // don't serialize base class as a relation, the attributes of the base class are flatly merged into the JSON result diff --git a/app/Models/BaseAlbumImpl.php b/app/Models/BaseAlbumImpl.php index 72f3cd67e0a..945954b61d3 100644 --- a/app/Models/BaseAlbumImpl.php +++ b/app/Models/BaseAlbumImpl.php @@ -170,8 +170,8 @@ class BaseAlbumImpl extends Model implements HasRandomID ]; /** - * @var string[] The list of attributes which exist as columns of the DB - * relation but shall not be serialized to JSON + * @var array The list of attributes which exist as columns of the DB + * relation but shall not be serialized to JSON */ protected $hidden = [ HasRandomID::LEGACY_ID_NAME, @@ -183,9 +183,9 @@ class BaseAlbumImpl extends Model implements HasRandomID ]; /** - * @var string[] The list of "virtual" attributes which do not exist as - * columns of the DB relation but which shall be appended to - * JSON from accessors + * @var array The list of "virtual" attributes which do not exist as + * columns of the DB relation but which shall be appended to + * JSON from accessors */ protected $appends = [ 'has_password', diff --git a/app/Models/Configs.php b/app/Models/Configs.php index fec1143679c..b4d0a8d0b4a 100644 --- a/app/Models/Configs.php +++ b/app/Models/Configs.php @@ -14,7 +14,6 @@ use App\Models\Extensions\UseFixedQueryBuilder; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\ModelNotFoundException; -use function Safe\sprintf; /** * App\Configs. diff --git a/app/Models/Extensions/ConfigsHas.php b/app/Models/Extensions/ConfigsHas.php index f7034b25dc3..2a7312c8d40 100644 --- a/app/Models/Extensions/ConfigsHas.php +++ b/app/Models/Extensions/ConfigsHas.php @@ -7,6 +7,7 @@ use App\Exceptions\Internal\InvalidConfigOption; use App\Exceptions\Internal\QueryBuilderException; use App\Facades\Helpers; +use function Safe\exec; trait ConfigsHas { diff --git a/app/Models/Extensions/HasBidirectionalRelationships.php b/app/Models/Extensions/HasBidirectionalRelationships.php index 9fee21effb0..f903b877e54 100644 --- a/app/Models/Extensions/HasBidirectionalRelationships.php +++ b/app/Models/Extensions/HasBidirectionalRelationships.php @@ -9,7 +9,6 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Support\Str; -use function Safe\sprintf; trait HasBidirectionalRelationships { diff --git a/app/Models/Extensions/HasRandomIDAndLegacyTimeBasedID.php b/app/Models/Extensions/HasRandomIDAndLegacyTimeBasedID.php index 87834d82c11..b42364a87f2 100644 --- a/app/Models/Extensions/HasRandomIDAndLegacyTimeBasedID.php +++ b/app/Models/Extensions/HasRandomIDAndLegacyTimeBasedID.php @@ -11,7 +11,6 @@ use Illuminate\Database\Eloquent\InvalidCastException; use Illuminate\Database\Eloquent\JsonEncodingException; use Illuminate\Database\QueryException; -use function Safe\sprintf; /** * Trait HasTimeBasedID. diff --git a/app/Models/Extensions/ThrowsConsistentExceptions.php b/app/Models/Extensions/ThrowsConsistentExceptions.php index 42b49e14da9..662fba56ac8 100644 --- a/app/Models/Extensions/ThrowsConsistentExceptions.php +++ b/app/Models/Extensions/ThrowsConsistentExceptions.php @@ -6,7 +6,6 @@ use Illuminate\Database\Eloquent\JsonEncodingException; use Illuminate\Support\Str; use function Safe\json_encode; -use function Safe\json_last_error_msg; /** * Fixed Eloquent model for all Lychee models. diff --git a/app/Models/Logs.php b/app/Models/Logs.php index 88ee2e3f1c5..50b91c47b2a 100644 --- a/app/Models/Logs.php +++ b/app/Models/Logs.php @@ -7,7 +7,6 @@ use App\Models\Extensions\UTCBasedTimes; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Carbon; -use function Safe\substr; /** * App\Logs. diff --git a/app/Models/Photo.php b/app/Models/Photo.php index ebedad725f8..562c32fa682 100644 --- a/app/Models/Photo.php +++ b/app/Models/Photo.php @@ -117,8 +117,8 @@ class Photo extends Model implements HasRandomID ]; /** - * @var string[] The list of attributes which exist as columns of the DB - * relation but shall not be serialized to JSON + * @var array The list of attributes which exist as columns of the DB + * relation but shall not be serialized to JSON */ protected $hidden = [ HasRandomID::LEGACY_ID_NAME, diff --git a/app/Models/SizeVariant.php b/app/Models/SizeVariant.php index 930534e5005..b3e5e1a084b 100644 --- a/app/Models/SizeVariant.php +++ b/app/Models/SizeVariant.php @@ -22,7 +22,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Storage; -use League\Flysystem\Adapter\Local; +use League\Flysystem\Local\LocalFilesystemAdapter; // TODO: Uncomment the following line, if Lychee really starts to support AWS s3. // The previous code already contained some first steps for S3, but relied @@ -82,7 +82,7 @@ class SizeVariant extends Model public $timestamps = false; /** - * @var string[] + * @var array */ protected $casts = [ 'id' => 'integer', @@ -95,8 +95,8 @@ class SizeVariant extends Model ]; /** - * @var string[] The list of attributes which exist as columns of the DB - * relation but shall not be serialized to JSON + * @var array The list of attributes which exist as columns of the DB + * relation but shall not be serialized to JSON */ protected $hidden = [ 'id', // irrelevant, because a size variant is always serialized as an embedded object of its photo @@ -168,14 +168,14 @@ public function getUrlAttribute(): string $maxLifetime = Configs::getValueAsInt('SL_life_time_days') * 24 * 60 * 60; $gracePeriod = $maxLifetime / 3; - $storageAdapter = $imageDisk->getDriver()->getAdapter(); + $storageAdapter = $imageDisk->getAdapter(); // TODO: Uncomment these line when Laravel really starts to support s3 /*if ($storageAdapter instanceof AwsS3Adapter) { return $imageDisk->temporaryUrl($this->short_path, now()->addSeconds($maxLifetime)); }*/ - if ($storageAdapter instanceof Local) { + if ($storageAdapter instanceof LocalFilesystemAdapter) { /** @var ?SymLink $symLink */ $symLink = $this->sym_links()->latest()->first(); if ($symLink === null || $symLink->created_at->isBefore(now()->subSeconds($gracePeriod))) { diff --git a/app/Models/SymLink.php b/app/Models/SymLink.php index b9aca431248..7b0c857a777 100644 --- a/app/Models/SymLink.php +++ b/app/Models/SymLink.php @@ -55,8 +55,8 @@ class SymLink extends Model ]; /** - * @var string[] The list of attributes which exist as columns of the DB - * relation but shall not be serialized to JSON + * @var array The list of attributes which exist as columns of the DB + * relation but shall not be serialized to JSON */ protected $hidden = [ 'size_variant', // see above and otherwise infinite loops will occur diff --git a/app/Models/TagAlbum.php b/app/Models/TagAlbum.php index fe424104817..dad262f221a 100644 --- a/app/Models/TagAlbum.php +++ b/app/Models/TagAlbum.php @@ -46,8 +46,8 @@ class TagAlbum extends BaseAlbum ]; /** - * @var string[] The list of attributes which exist as columns of the DB - * relation but shall not be serialized to JSON + * @var array The list of attributes which exist as columns of the DB + * relation but shall not be serialized to JSON */ protected $hidden = [ 'base_class', // don't serialize base class as a relation, the attributes of the base class are flatly merged into the JSON result diff --git a/app/Models/User.php b/app/Models/User.php index 7e7af951b69..ae406cc3f29 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -8,8 +8,6 @@ use App\Models\Extensions\UseFixedQueryBuilder; use App\Models\Extensions\UTCBasedTimes; use Carbon\Exceptions\InvalidFormatException; -use DarkGhostHunter\Larapass\Contracts\WebAuthnAuthenticatable; -use DarkGhostHunter\Larapass\WebAuthnAuthentication; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; @@ -19,7 +17,8 @@ use Illuminate\Notifications\Notifiable; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Auth; -use function Safe\substr; +use Laragear\WebAuthn\Contracts\WebAuthnAuthenticatable; +use Laragear\WebAuthn\WebAuthnAuthentication; /** * App\Models\User. @@ -61,7 +60,7 @@ class User extends Authenticatable implements WebAuthnAuthenticatable ]; /** - * @var string[] the attributes that should be hidden for arrays + * @var array the attributes that should be hidden for arrays */ protected $hidden = [ 'password', diff --git a/app/Pipelines/AssertionValidator.php b/app/Pipelines/AssertionValidator.php new file mode 100644 index 00000000000..4c732467e61 --- /dev/null +++ b/app/Pipelines/AssertionValidator.php @@ -0,0 +1,64 @@ +user !== null) { + $this->validateUser($validation); + + if ($validation->request->json('response.userHandle') !== null) { + $this->validateId($validation); + } + } else { + $this->validateId($validation); + } + + return $next($validation); + } + + /** + * Validate the user owns the Credential if it already exists in the validation procedure. + * + * @param \Laragear\WebAuthn\Assertion\Validator\AssertionValidation $validation + * + * @return void + */ + protected function validateUser(AssertionValidation $validation): void + { + // @phpstan-ignore-next-line + if ($validation->user->id !== $validation->credential?->authenticatable?->id) { + throw AssertionException::make('User is not owner of the stored credential.'); + } + } + + /** + * Validate the user ID of the response. + * + * @param \Laragear\WebAuthn\Assertion\Validator\AssertionValidation $validation + * + * @return void + */ + protected function validateId(AssertionValidation $validation): void + { + $handle = $validation->request->json('response.userHandle'); + + if ($handle === null || !hash_equals(Uuid::fromString($validation->credential->user_id)->getHex()->toString(), $handle)) { + throw AssertionException::make('User ID is not owner of the stored credential.'); + } + } +} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 685424acfc4..d39a9b7a961 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -23,7 +23,7 @@ class AuthServiceProvider extends ServiceProvider /** * The policy mappings for the application. * - * @var array + * @var array */ protected $policies = [ User::class => UserPolicy::class, diff --git a/app/Rules/LicenseRule.php b/app/Rules/LicenseRule.php index 79d9d1444c4..5bf7fb89634 100644 --- a/app/Rules/LicenseRule.php +++ b/app/Rules/LicenseRule.php @@ -22,7 +22,7 @@ public function passes($attribute, $value): bool */ public function message(): string { - return ':attribute must be one out of ' . + return ':attribute must be one out of: ' . implode(', ', Helpers::get_all_licenses()); } } diff --git a/composer.json b/composer.json index 12dd9d6d4fd..3f49ed5cc92 100644 --- a/composer.json +++ b/composer.json @@ -19,17 +19,21 @@ "repositories": [ { "type": "vcs", - "url": "https://github.com/LycheeOrg/Larapass" + "url": "https://github.com/LycheeOrg/phpstan-lychee" }, { "type": "vcs", - "url": "https://github.com/LycheeOrg/phpstan-lychee" + "url": "https://github.com/LycheeOrg/php-exif" + }, + { + "type": "vcs", + "url": "https://github.com/Laragear/WebAuthn" } ], "license": "MIT", "type": "project", "require": { - "php": "^8.0", + "php": "^8.0.2", "ext-bcmath": "*", "ext-ctype": "*", "ext-exif": "*", @@ -41,16 +45,15 @@ "ext-pdo": "*", "ext-tokenizer": "*", "ext-xml": "*", - "bepsvpt/secure-headers": "^7.1", - "darkghosthunter/larapass": "dev-LycheeSpecial", + "bepsvpt/secure-headers": "^7.2", "doctrine/dbal": "^3.1", - "fideloper/proxy": "^4.3", "geocoder-php/cache-provider": "^4.3", "geocoder-php/nominatim-provider": "^5.5", - "laravel/framework": "^8.83.14", + "laragear/webauthn": "1.x-dev", + "laravel/framework": "^9.2", "livewire/livewire": "^2.7", "lychee-org/nestedset": "^6", - "lychee-org/php-exif": "^0.7.12", + "lychee-org/php-exif": "^0.7.13", "maennchen/zipstream-php": "^2.1", "php-ffmpeg/php-ffmpeg": "^1.0", "php-http/guzzle7-adapter": "^1.0", @@ -59,7 +62,8 @@ "spatie/laravel-feed": "^4.0", "spatie/laravel-image-optimizer": "^1.6.2", "symfony/cache": "^v6.0.0", - "whichbrowser/parser": "^2.0" + "thecodingmachine/safe": "^2.4", + "whichbrowser/parser": "^2.1" }, "require-dev": { "ext-imagick": "*", @@ -69,13 +73,12 @@ "barryvdh/laravel-ide-helper": "^2.10", "filp/whoops": "^2.5", "friendsofphp/php-cs-fixer": "^3.3", - "itsgoingd/clockwork": "^5.0", + "itsgoingd/clockwork": "^5.1", "lychee-org/phpstan-lychee": "dev-master", "mockery/mockery": "^1.5", - "nunomaduro/collision": "^5.0", - "nunomaduro/larastan": "^1.0", - "php-parallel-lint/php-parallel-lint": "^1.3", - "phpunit/phpunit": "^9" + "phpunit/phpunit": "^9", + "nunomaduro/larastan": "^2.0", + "php-parallel-lint/php-parallel-lint": "^1.3" }, "autoload": { "classmap": [ diff --git a/composer.lock b/composer.lock index afd2dcd9aff..c470b76a8ab 100644 --- a/composer.lock +++ b/composer.lock @@ -4,75 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d7eae03f089adf021766a67d9892d154", + "content-hash": "1061802c57a1df0955dfc63f1c9156c9", "packages": [ - { - "name": "beberlei/assert", - "version": "v3.3.2", - "source": { - "type": "git", - "url": "https://github.com/beberlei/assert.git", - "reference": "cb70015c04be1baee6f5f5c953703347c0ac1655" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/beberlei/assert/zipball/cb70015c04be1baee6f5f5c953703347c0ac1655", - "reference": "cb70015c04be1baee6f5f5c953703347c0ac1655", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "php": "^7.0 || ^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "*", - "phpstan/phpstan": "*", - "phpunit/phpunit": ">=6.0.0", - "yoast/phpunit-polyfills": "^0.1.0" - }, - "suggest": { - "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles" - }, - "type": "library", - "autoload": { - "files": [ - "lib/Assert/functions.php" - ], - "psr-4": { - "Assert\\": "lib/Assert" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-2-Clause" - ], - "authors": [ - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de", - "role": "Lead Developer" - }, - { - "name": "Richard Quadling", - "email": "rquadling@gmail.com", - "role": "Collaborator" - } - ], - "description": "Thin assertion library for input validation in business models.", - "keywords": [ - "assert", - "assertion", - "validation" - ], - "support": { - "issues": "https://github.com/beberlei/assert/issues", - "source": "https://github.com/beberlei/assert/tree/v3.3.2" - }, - "time": "2021-12-16T21:41:27+00:00" - }, { "name": "bepsvpt/secure-headers", "version": "7.2.0", @@ -155,26 +88,26 @@ }, { "name": "brick/math", - "version": "0.9.3", + "version": "0.10.2", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae" + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", - "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae", + "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f", "shasum": "" }, "require": { "ext-json": "*", - "php": "^7.1 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", - "vimeo/psalm": "4.9.2" + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "4.25.0" }, "type": "library", "autoload": { @@ -199,19 +132,15 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.9.3" + "source": "https://github.com/brick/math/tree/0.10.2" }, "funding": [ { "url": "https://github.com/BenMorel", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/brick/math", - "type": "tidelift" } ], - "time": "2021-08-15T20:50:18+00:00" + "time": "2022-08-10T22:54:19+00:00" }, { "name": "clue/stream-filter", @@ -279,94 +208,6 @@ ], "time": "2022-02-21T13:15:14+00:00" }, - { - "name": "darkghosthunter/larapass", - "version": "dev-LycheeSpecial", - "source": { - "type": "git", - "url": "https://github.com/LycheeOrg/Larapass.git", - "reference": "b4a7ab0ed6072daefa9ba9ee4fa4376f7c4e030c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/LycheeOrg/Larapass/zipball/b4a7ab0ed6072daefa9ba9ee4fa4376f7c4e030c", - "reference": "b4a7ab0ed6072daefa9ba9ee4fa4376f7c4e030c", - "shasum": "" - }, - "require": { - "ext-json": "*", - "illuminate/support": "^8.0", - "nyholm/psr7": "^1.3", - "php": ">=7.4.0", - "ramsey/uuid": "^4.0", - "symfony/psr-http-message-bridge": "^2.0", - "thecodingmachine/safe": "^1.3.3", - "web-auth/webauthn-lib": "^3.3" - }, - "require-dev": { - "laravel/framework": "8.*", - "orchestra/testbench": "^6.7.2", - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "DarkGhostHunter\\Larapass\\LarapassServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "DarkGhostHunter\\Larapass\\": "src/" - } - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } - }, - "scripts": { - "test": [ - "vendor/bin/phpunit" - ], - "test-coverage": [ - "vendor/bin/phpunit --coverage-html coverage" - ] - }, - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Italo Israel Baeza Cabrera", - "email": "darkghosthunter@gmail.com", - "role": "Developer" - } - ], - "description": "Authenticate users with just their device, fingerprint or biometric data. Goodbye passwords!", - "homepage": "https://github.com/darkghosthunter/larapass", - "keywords": [ - "darkghosthunter", - "laravel", - "webauthn" - ], - "support": { - "source": "https://github.com/LycheeOrg/Larapass/tree/LycheeSpecial" - }, - "funding": [ - { - "type": "ko_fi", - "url": "https://ko-fi.com/DarkGhostHunter" - }, - { - "type": "custom", - "url": "https://paypal.me/darkghosthunter" - } - ], - "abandoned": true, - "time": "2022-09-12T07:06:12+00:00" - }, { "name": "dflydev/dot-access-data", "version": "v3.0.1", @@ -691,34 +532,35 @@ }, { "name": "doctrine/event-manager", - "version": "1.1.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "eb2ecf80e3093e8f3c2769ac838e27d8ede8e683" + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/eb2ecf80e3093e8f3c2769ac838e27d8ede8e683", - "reference": "eb2ecf80e3093e8f3c2769ac838e27d8ede8e683", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", "shasum": "" }, "require": { + "doctrine/deprecations": "^0.5.3 || ^1", "php": "^7.1 || ^8.0" }, "conflict": { "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "~1.4.10 || ^1.5.4", + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.8", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.24" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -762,7 +604,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.2" + "source": "https://github.com/doctrine/event-manager/tree/1.2.0" }, "funding": [ { @@ -778,27 +620,27 @@ "type": "tidelift" } ], - "time": "2022-07-27T22:18:11+00:00" + "time": "2022-10-12T20:51:15+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392" + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/ade2b3bbfb776f27f0558e26eed43b5d9fe1b392", - "reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^10", "phpstan/phpstan": "^1.8", "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-strict-rules": "^1.3", @@ -853,7 +695,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.5" + "source": "https://github.com/doctrine/inflector/tree/2.0.6" }, "funding": [ { @@ -869,7 +711,7 @@ "type": "tidelift" } ], - "time": "2022-09-07T09:01:28+00:00" + "time": "2022-10-20T09:10:12+00:00" }, { "name": "doctrine/lexer", @@ -1010,27 +852,27 @@ }, { "name": "egulias/email-validator", - "version": "2.1.25", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f88dcf4b14af14a98ad96b14b2b317969eab6715", + "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715", "shasum": "" }, "require": { - "doctrine/lexer": "^1.0.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.10" + "doctrine/lexer": "^1.2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" }, "require-dev": { - "dominicsayers/isemail": "^3.0.7", - "phpunit/phpunit": "^4.8.36|^7.5.15", - "satooshi/php-coveralls": "^1.0.1" + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -1038,7 +880,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -1066,7 +908,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/2.1.25" + "source": "https://github.com/egulias/EmailValidator/tree/3.2.1" }, "funding": [ { @@ -1074,7 +916,7 @@ "type": "github" } ], - "time": "2020-12-29T14:50:06+00:00" + "time": "2022-06-18T20:57:19+00:00" }, { "name": "evenement/evenement", @@ -1124,41 +966,37 @@ "time": "2017-07-23T21:35:13+00:00" }, { - "name": "fgrosse/phpasn1", - "version": "v2.4.0", + "name": "fruitcake/php-cors", + "version": "v1.2.0", "source": { "type": "git", - "url": "https://github.com/fgrosse/PHPASN1.git", - "reference": "eef488991d53e58e60c9554b09b1201ca5ba9296" + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fgrosse/PHPASN1/zipball/eef488991d53e58e60c9554b09b1201ca5ba9296", - "reference": "eef488991d53e58e60c9554b09b1201ca5ba9296", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e", + "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e", "shasum": "" }, "require": { - "php": "~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0" + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6" }, "require-dev": { - "php-coveralls/php-coveralls": "~2.0", - "phpunit/phpunit": "^6.3 || ^7.0 || ^8.0" - }, - "suggest": { - "ext-bcmath": "BCmath is the fallback extension for big integer calculations", - "ext-curl": "For loading OID information from the web if they have not bee defined statically", - "ext-gmp": "GMP is the preferred extension for big integer calculations", - "phpseclib/bcmath_compat": "BCmath polyfill for servers where neither GMP nor BCmath is available" + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "1.1-dev" } }, "autoload": { "psr-4": { - "FG\\": "lib/" + "Fruitcake\\Cors\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1167,94 +1005,36 @@ ], "authors": [ { - "name": "Friedrich Große", - "email": "friedrich.grosse@gmail.com", - "homepage": "https://github.com/FGrosse", - "role": "Author" + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" }, { - "name": "All contributors", - "homepage": "https://github.com/FGrosse/PHPASN1/contributors" + "name": "Barryvdh", + "email": "barryvdh@gmail.com" } ], - "description": "A PHP Framework that allows you to encode and decode arbitrary ASN.1 structures using the ITU-T X.690 Encoding Rules.", - "homepage": "https://github.com/FGrosse/PHPASN1", + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", "keywords": [ - "DER", - "asn.1", - "asn1", - "ber", - "binary", - "decoding", - "encoding", - "x.509", - "x.690", - "x509", - "x690" + "cors", + "laravel", + "symfony" ], "support": { - "issues": "https://github.com/fgrosse/PHPASN1/issues", - "source": "https://github.com/fgrosse/PHPASN1/tree/v2.4.0" - }, - "time": "2021-12-11T12:41:06+00:00" - }, - { - "name": "fideloper/proxy", - "version": "4.4.2", - "source": { - "type": "git", - "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "a751f2bc86dd8e6cfef12dc0cbdada82f5a18750" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/a751f2bc86dd8e6cfef12dc0cbdada82f5a18750", - "reference": "a751f2bc86dd8e6cfef12dc0cbdada82f5a18750", - "shasum": "" - }, - "require": { - "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0", - "php": ">=5.4.0" - }, - "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0|^8.0|^9.0", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^8.5.8|^9.3.3" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Fideloper\\Proxy\\": "src/" - } + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, { - "name": "Chris Fidao", - "email": "fideloper@gmail.com" + "url": "https://github.com/barryvdh", + "type": "github" } ], - "description": "Set trusted proxies for Laravel", - "keywords": [ - "load balancing", - "proxy", - "trusted proxy" - ], - "support": { - "issues": "https://github.com/fideloper/TrustedProxy/issues", - "source": "https://github.com/fideloper/TrustedProxy/tree/4.4.2" - }, - "time": "2022-02-09T13:33:34+00:00" + "time": "2022-02-20T15:07:15+00:00" }, { "name": "geocoder-php/cache-provider", @@ -1829,58 +1609,169 @@ ], "time": "2022-08-28T14:45:39+00:00" }, + { + "name": "laragear/webauthn", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/Laragear/WebAuthn.git", + "reference": "7f628f9a7979dc69cf2dc581895030c2b9e493dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laragear/WebAuthn/zipball/7f628f9a7979dc69cf2dc581895030c2b9e493dc", + "reference": "7f628f9a7979dc69cf2dc581895030c2b9e493dc", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-openssl": "*", + "illuminate/auth": "9.*", + "illuminate/config": "9.*", + "illuminate/database": "9.*", + "illuminate/encryption": "9.*", + "illuminate/http": "9.*", + "illuminate/session": "9.*", + "illuminate/support": "9.*", + "php": ">=8.0.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "^1.0", + "mockery/mockery": "^1.5", + "orchestra/testbench": "7.*", + "phpunit/phpunit": "^9.5" + }, + "default-branch": true, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laragear\\WebAuthn\\WebAuthnServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laragear\\WebAuthn\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests", + "App\\Http\\Controllers\\WebAuthn\\": "stubs/controllers" + } + }, + "scripts": { + "test": [ + "vendor/bin/phpunit --coverage-clover build/logs/clover.xml" + ], + "test-coverage": [ + "vendor/bin/phpunit --coverage-html coverage" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lukas Buchs", + "role": "Original developer" + }, + { + "name": "Italo Israel Baeza Cabrera", + "email": "DarkGhostHunter@Gmail.com", + "role": "Developer", + "homepage": "https://patreon.com/packagesforlaravel" + } + ], + "description": "Authenticate your users with biometric data, devices or USB keys.", + "homepage": "https://github.com/laragear/webauthn", + "keywords": [ + "authentication", + "faceid", + "laravel", + "passkeys", + "touchid", + "webauthn", + "windows hello" + ], + "support": { + "source": "https://github.com/Laragear/TwoFactor", + "issues": "https://github.com/Laragear/TwoFactor/issues" + }, + "funding": [ + { + "type": "Patreon", + "url": "https://patreon.com/PackagesForLaravel" + }, + { + "type": "Ko-Fi", + "url": "https://ko-fi.com/DarkGhostHunter" + }, + { + "type": "Buy me a cofee", + "url": "https://www.buymeacoffee.com/darkghosthunter" + }, + { + "type": "Paypal", + "url": "https://paypal.me/darkghosthunter" + } + ], + "time": "2022-08-26T04:25:25+00:00" + }, { "name": "laravel/framework", - "version": "v8.83.25", + "version": "v9.36.4", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "b77b908a9426efa41d6286a2ef4c3adbf5398ca1" + "reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/b77b908a9426efa41d6286a2ef4c3adbf5398ca1", - "reference": "b77b908a9426efa41d6286a2ef4c3adbf5398ca1", + "url": "https://api.github.com/repos/laravel/framework/zipball/15ce569fd93124e8e2257c24e3ed85b9ef9951d6", + "reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6", "shasum": "" }, "require": { - "doctrine/inflector": "^1.4|^2.0", - "dragonmantank/cron-expression": "^3.0.2", - "egulias/email-validator": "^2.1.10", - "ext-json": "*", + "doctrine/inflector": "^2.0", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1", "ext-mbstring": "*", "ext-openssl": "*", - "laravel/serializable-closure": "^1.0", - "league/commonmark": "^1.3|^2.0.2", - "league/flysystem": "^1.1", + "fruitcake/php-cors": "^1.2", + "laravel/serializable-closure": "^1.2.2", + "league/commonmark": "^2.2", + "league/flysystem": "^3.8.0", "monolog/monolog": "^2.0", - "nesbot/carbon": "^2.53.1", - "opis/closure": "^3.6", - "php": "^7.3|^8.0", - "psr/container": "^1.0", - "psr/log": "^1.0|^2.0", - "psr/simple-cache": "^1.0", + "nesbot/carbon": "^2.62.1", + "nunomaduro/termwind": "^1.13", + "php": "^8.0.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.2.2", - "swiftmailer/swiftmailer": "^6.3", - "symfony/console": "^5.4", - "symfony/error-handler": "^5.4", - "symfony/finder": "^5.4", - "symfony/http-foundation": "^5.4", - "symfony/http-kernel": "^5.4", - "symfony/mime": "^5.4", - "symfony/process": "^5.4", - "symfony/routing": "^5.4", - "symfony/var-dumper": "^5.4", - "tijsverkoyen/css-to-inline-styles": "^2.2.2", + "symfony/console": "^6.0.9", + "symfony/error-handler": "^6.0", + "symfony/finder": "^6.0", + "symfony/http-foundation": "^6.0", + "symfony/http-kernel": "^6.0", + "symfony/mailer": "^6.0", + "symfony/mime": "^6.0", + "symfony/process": "^6.0", + "symfony/routing": "^6.0", + "symfony/uid": "^6.0", + "symfony/var-dumper": "^6.0", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.4.1", - "voku/portable-ascii": "^1.6.1" + "voku/portable-ascii": "^2.0" }, "conflict": { "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" + "psr/container-implementation": "1.1|2.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" }, "replace": { "illuminate/auth": "self.version", @@ -1888,6 +1779,7 @@ "illuminate/bus": "self.version", "illuminate/cache": "self.version", "illuminate/collections": "self.version", + "illuminate/conditionable": "self.version", "illuminate/config": "self.version", "illuminate/console": "self.version", "illuminate/container": "self.version", @@ -1916,21 +1808,27 @@ "illuminate/view": "self.version" }, "require-dev": { - "aws/aws-sdk-php": "^3.198.1", + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.235.5", "doctrine/dbal": "^2.13.3|^3.1.4", - "filp/whoops": "^2.14.3", - "guzzlehttp/guzzle": "^6.5.5|^7.0.1", - "league/flysystem-cached-adapter": "^1.0", - "mockery/mockery": "^1.4.4", - "orchestra/testbench-core": "^6.27", + "fakerphp/faker": "^1.9.2", + "guzzlehttp/guzzle": "^7.5", + "league/flysystem-aws-s3-v3": "^3.0", + "league/flysystem-ftp": "^3.0", + "league/flysystem-path-prefixing": "^3.3", + "league/flysystem-read-only": "^3.3", + "league/flysystem-sftp-v3": "^3.0", + "mockery/mockery": "^1.5.1", + "orchestra/testbench-core": "^7.11", "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.5.19|^9.5.8", - "predis/predis": "^1.1.9", - "symfony/cache": "^5.4" + "phpstan/phpstan": "^1.4.7", + "phpunit/phpunit": "^9.5.8", + "predis/predis": "^1.1.9|^2.0.2", + "symfony/cache": "^6.0" }, "suggest": { "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.198.1).", + "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).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", "ext-bcmath": "Required to use the multiple_of validation rule.", @@ -1942,27 +1840,31 @@ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", - "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", "laravel/tinker": "Required to use the tinker console command (^2.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", - "mockery/mockery": "Required to use mocking (^1.4.4).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", + "league/flysystem-read-only": "Required to use read-only disks (^3.3)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", + "mockery/mockery": "Required to use mocking (^1.5.1).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).", - "predis/predis": "Required to use the predis connector (^1.1.9).", + "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).", + "predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).", "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 (^4.0|^5.0|^6.0|^7.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.4).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", - "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.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/filesystem": "Required to enable support for relative symbolic links (^6.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "8.x-dev" + "dev-master": "9.x-dev" } }, "autoload": { @@ -1976,7 +1878,8 @@ "Illuminate\\": "src/Illuminate/", "Illuminate\\Support\\": [ "src/Illuminate/Macroable/", - "src/Illuminate/Collections/" + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" ] } }, @@ -2000,7 +1903,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-09-30T13:00:40+00:00" + "time": "2022-10-20T16:11:03+00:00" }, { "name": "laravel/serializable-closure", @@ -2252,54 +2155,49 @@ }, { "name": "league/flysystem", - "version": "1.1.10", + "version": "3.9.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1" + "reference": "60f3760352fe08e918bc3b1acae4e91af092ebe1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1", - "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/60f3760352fe08e918bc3b1acae4e91af092ebe1", + "reference": "60f3760352fe08e918bc3b1acae4e91af092ebe1", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" }, "conflict": { - "league/flysystem-sftp": "<1.0.6" + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" }, "require-dev": { - "phpspec/prophecy": "^1.11.1", - "phpunit/phpunit": "^8.5.8" - }, - "suggest": { - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + "async-aws/s3": "^1.5", + "async-aws/simple-s3": "^1.0", + "aws/aws-sdk-php": "^3.198.1", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "microsoft/azure-storage-blob": "^1.1", + "phpseclib/phpseclib": "^3.0.14", + "phpstan/phpstan": "^0.12.26", + "phpunit/phpunit": "^9.5.11", + "sabre/dav": "^4.3.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "psr-4": { - "League\\Flysystem\\": "src/" + "League\\Flysystem\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2309,40 +2207,42 @@ "authors": [ { "name": "Frank de Jonge", - "email": "info@frenky.net" + "email": "info@frankdejonge.nl" } ], - "description": "Filesystem abstraction: Many filesystems, one API.", + "description": "File storage abstraction for PHP", "keywords": [ - "Cloud Files", "WebDAV", - "abstraction", "aws", "cloud", - "copy.com", - "dropbox", - "file systems", + "file", "files", "filesystem", "filesystems", "ftp", - "rackspace", - "remote", "s3", "sftp", "storage" ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.10" + "source": "https://github.com/thephpleague/flysystem/tree/3.9.0" }, "funding": [ { - "url": "https://offset.earth/frankdejonge", - "type": "other" - } + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } ], - "time": "2022-10-04T09:16:37+00:00" + "time": "2022-10-18T21:02:43+00:00" }, { "name": "league/mime-type-detection", @@ -2400,176 +2300,6 @@ ], "time": "2022-04-17T13:12:02+00:00" }, - { - "name": "league/uri", - "version": "6.7.2", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/uri.git", - "reference": "d3b50812dd51f3fbf176344cc2981db03d10fe06" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/d3b50812dd51f3fbf176344cc2981db03d10fe06", - "reference": "d3b50812dd51f3fbf176344cc2981db03d10fe06", - "shasum": "" - }, - "require": { - "ext-json": "*", - "league/uri-interfaces": "^2.3", - "php": "^7.4 || ^8.0", - "psr/http-message": "^1.0" - }, - "conflict": { - "league/uri-schemes": "^1.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^v3.3.2", - "nyholm/psr7": "^1.5", - "php-http/psr7-integration-tests": "^1.1", - "phpstan/phpstan": "^1.2.0", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.0.0", - "phpstan/phpstan-strict-rules": "^1.1.0", - "phpunit/phpunit": "^9.5.10", - "psr/http-factory": "^1.0" - }, - "suggest": { - "ext-fileinfo": "Needed to create Data URI from a filepath", - "ext-intl": "Needed to improve host validation", - "league/uri-components": "Needed to easily manipulate URI objects", - "psr/http-factory": "Needed to use the URI factory" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.x-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Uri\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ignace Nyamagana Butera", - "email": "nyamsprod@gmail.com", - "homepage": "https://nyamsprod.com" - } - ], - "description": "URI manipulation library", - "homepage": "https://uri.thephpleague.com", - "keywords": [ - "data-uri", - "file-uri", - "ftp", - "hostname", - "http", - "https", - "middleware", - "parse_str", - "parse_url", - "psr-7", - "query-string", - "querystring", - "rfc3986", - "rfc3987", - "rfc6570", - "uri", - "uri-template", - "url", - "ws" - ], - "support": { - "docs": "https://uri.thephpleague.com", - "forum": "https://thephpleague.slack.com", - "issues": "https://github.com/thephpleague/uri/issues", - "source": "https://github.com/thephpleague/uri/tree/6.7.2" - }, - "funding": [ - { - "url": "https://github.com/sponsors/nyamsprod", - "type": "github" - } - ], - "time": "2022-09-13T19:50:42+00:00" - }, - { - "name": "league/uri-interfaces", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", - "reference": "00e7e2943f76d8cb50c7dfdc2f6dee356e15e383", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.19", - "phpstan/phpstan": "^0.12.90", - "phpstan/phpstan-phpunit": "^0.12.19", - "phpstan/phpstan-strict-rules": "^0.12.9", - "phpunit/phpunit": "^8.5.15 || ^9.5" - }, - "suggest": { - "ext-intl": "to use the IDNA feature", - "symfony/intl": "to use the IDNA feature via Symfony Polyfill" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Uri\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ignace Nyamagana Butera", - "email": "nyamsprod@gmail.com", - "homepage": "https://nyamsprod.com" - } - ], - "description": "Common interface for URI representation", - "homepage": "http://github.com/thephpleague/uri-interfaces", - "keywords": [ - "rfc3986", - "rfc3987", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/thephpleague/uri-interfaces/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/2.3.0" - }, - "funding": [ - { - "url": "https://github.com/sponsors/nyamsprod", - "type": "github" - } - ], - "time": "2021-06-28T04:27:21+00:00" - }, { "name": "livewire/livewire", "version": "v2.10.7", @@ -2708,16 +2438,16 @@ }, { "name": "lychee-org/php-exif", - "version": "v0.7.12", + "version": "v0.7.13", "source": { "type": "git", "url": "https://github.com/LycheeOrg/php-exif.git", - "reference": "e60845c9e1132f70e3973d529149c523eb095857" + "reference": "ada5def97d3845e646f6975b3ea2b9e0fcb0e87d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/LycheeOrg/php-exif/zipball/e60845c9e1132f70e3973d529149c523eb095857", - "reference": "e60845c9e1132f70e3973d529149c523eb095857", + "url": "https://api.github.com/repos/LycheeOrg/php-exif/zipball/ada5def97d3845e646f6975b3ea2b9e0fcb0e87d", + "reference": "ada5def97d3845e646f6975b3ea2b9e0fcb0e87d", "shasum": "" }, "require": { @@ -2725,10 +2455,11 @@ "neitanod/forceutf8": "^2.0.4", "php": "^8.0", "php-ffmpeg/php-ffmpeg": "^1.0", - "thecodingmachine/safe": "^1.3" + "thecodingmachine/safe": "^2.2" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.3", + "infection/infection": "^0.26.13", "lychee-org/phpstan-lychee": "dev-master", "php-parallel-lint/php-parallel-lint": "^1.2", "phpmd/phpmd": "^2.9", @@ -2749,7 +2480,21 @@ "PHPExif": "lib/" } }, - "notification-url": "https://packagist.org/downloads/", + "scripts": { + "check-code-style": [ + "vendor/bin/phpcs --standard=PSR2 ./lib/" + ], + "run-tests": [ + "vendor/bin/phpunit -c phpunit.xml.dist", + "vendor/bin/phpunit --coverage-clover=coverage.xml" + ], + "validate-files": [ + "vendor/bin/parallel-lint --exclude vendor --exclude imagick ." + ], + "phpstan": [ + "vendor/bin/phpstan analyze" + ] + }, "license": [ "MIT" ], @@ -2762,21 +2507,21 @@ ], "description": "Object-Oriented EXIF parsing", "keywords": [ + "EXIF", + "FFmpeg", + "FFprobe", "IPTC", "ImageMagick", - "exif", + "Imagick", "exiftool", - "ffmpeg", - "ffprobe", - "imagick", "jpeg", "tiff" ], "support": { - "issues": "https://github.com/LycheeOrg/php-exif/issues", - "source": "https://github.com/LycheeOrg/php-exif/tree/v0.7.12" + "source": "https://github.com/LycheeOrg/php-exif/tree/v0.7.13", + "issues": "https://github.com/LycheeOrg/php-exif/issues" }, - "time": "2022-08-25T15:29:12+00:00" + "time": "2022-10-21T12:50:48+00:00" }, { "name": "maennchen/zipstream-php", @@ -3307,44 +3052,50 @@ "time": "2022-09-12T23:36:20+00:00" }, { - "name": "nyholm/psr7", - "version": "1.5.1", + "name": "nunomaduro/termwind", + "version": "v1.14.1", "source": { "type": "git", - "url": "https://github.com/Nyholm/psr7.git", - "reference": "f734364e38a876a23be4d906a2a089e1315be18a" + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7/zipball/f734364e38a876a23be4d906a2a089e1315be18a", - "reference": "f734364e38a876a23be4d906a2a089e1315be18a", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/86fc30eace93b9b6d4c844ba6de76db84184e01b", + "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b", "shasum": "" }, "require": { - "php": ">=7.1", - "php-http/message-factory": "^1.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0" - }, - "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" + "ext-mbstring": "*", + "php": "^8.0", + "symfony/console": "^5.3.0|^6.0.0" }, "require-dev": { - "http-interop/http-factory-tests": "^0.9", - "php-http/psr7-integration-tests": "^1.0", - "phpunit/phpunit": "^7.5 || 8.5 || 9.4", - "symfony/error-handler": "^4.4" + "ergebnis/phpstan-rules": "^1.0.", + "illuminate/console": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "laravel/pint": "^1.0.0", + "pestphp/pest": "^1.21.0", + "pestphp/pest-plugin-mock": "^1.0", + "phpstan/phpstan": "^1.4.6", + "phpstan/phpstan-strict-rules": "^1.1.0", + "symfony/var-dumper": "^5.2.7|^6.0.0", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.4-dev" + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] } }, "autoload": { + "files": [ + "src/Functions.php" + ], "psr-4": { - "Nyholm\\Psr7\\": "src/" + "Termwind\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3353,100 +3104,38 @@ ], "authors": [ { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com" - }, - { - "name": "Martijn van der Ven", - "email": "martijn@vanderven.se" + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "A fast PHP7 implementation of PSR-7", - "homepage": "https://tnyholm.se", + "description": "Its like Tailwind CSS, but for the console.", "keywords": [ - "psr-17", - "psr-7" + "cli", + "console", + "css", + "package", + "php", + "style" ], "support": { - "issues": "https://github.com/Nyholm/psr7/issues", - "source": "https://github.com/Nyholm/psr7/tree/1.5.1" + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v1.14.1" }, "funding": [ { - "url": "https://github.com/Zegnat", - "type": "github" + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" }, { - "url": "https://github.com/nyholm", + "url": "https://github.com/nunomaduro", "type": "github" - } - ], - "time": "2022-06-22T07:13:36+00:00" - }, - { - "name": "opis/closure", - "version": "3.6.3", - "source": { - "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", - "shasum": "" - }, - "require": { - "php": "^5.4 || ^7.0 || ^8.0" - }, - "require-dev": { - "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6.x-dev" - } - }, - "autoload": { - "files": [ - "functions.php" - ], - "psr-4": { - "Opis\\Closure\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" }, { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" + "url": "https://github.com/xiCO2k", + "type": "github" } ], - "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", - "homepage": "https://opis.io/closure", - "keywords": [ - "anonymous functions", - "closure", - "function", - "serializable", - "serialization", - "serialize" - ], - "support": { - "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.3" - }, - "time": "2022-01-27T09:35:39+00:00" + "time": "2022-10-17T15:20:29+00:00" }, { "name": "php-ffmpeg/php-ffmpeg", @@ -4039,22 +3728,27 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", "shasum": "" }, "require": { "php": ">=7.4.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -4081,9 +3775,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/2.0.2" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-11-05T16:47:00+00:00" }, { "name": "psr/event-dispatcher", @@ -4297,30 +3991,30 @@ }, { "name": "psr/log", - "version": "1.1.4", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4341,31 +4035,31 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "time": "2021-05-03T11:20:27+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { "name": "psr/simple-cache", - "version": "1.0.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -4380,7 +4074,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interfaces for simple caching", @@ -4392,9 +4086,9 @@ "simple-cache" ], "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" }, - "time": "2017-10-23T01:57:42+00:00" + "time": "2021-10-29T13:26:27+00:00" }, { "name": "ralouphie/getallheaders", @@ -4882,27 +4576,27 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.12.1", + "version": "1.13.6", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "09f80fa240d44fafb1c70657c74ee44ffa929357" + "reference": "c377cc7223655c2278c148c1685b8b5a78af5c65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/09f80fa240d44fafb1c70657c74ee44ffa929357", - "reference": "09f80fa240d44fafb1c70657c74ee44ffa929357", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/c377cc7223655c2278c148c1685b8b5a78af5c65", + "reference": "c377cc7223655c2278c148c1685b8b5a78af5c65", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0|^8.0|^9.0", - "php": "^7.4|^8.0" + "illuminate/contracts": "^9.28", + "php": "^8.0" }, "require-dev": { - "mockery/mockery": "^1.4", - "orchestra/testbench": "^5.0|^6.23|^7.0", - "phpunit/phpunit": "^9.4", - "spatie/test-time": "^1.2" + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7", + "phpunit/phpunit": "^9.5.24", + "spatie/test-time": "^1.3" }, "type": "library", "autoload": { @@ -4929,7 +4623,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.12.1" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.13.6" }, "funding": [ { @@ -4937,7 +4631,7 @@ "type": "github" } ], - "time": "2022-06-28T14:29:26+00:00" + "time": "2022-10-11T06:37:42+00:00" }, { "name": "spatie/temporary-directory", @@ -5001,258 +4695,37 @@ "time": "2022-08-23T07:15:15+00:00" }, { - "name": "spomky-labs/base64url", - "version": "v2.0.4", + "name": "symfony/cache", + "version": "v6.0.13", "source": { "type": "git", - "url": "https://github.com/Spomky-Labs/base64url.git", - "reference": "7752ce931ec285da4ed1f4c5aa27e45e097be61d" + "url": "https://github.com/symfony/cache.git", + "reference": "908edffec894ef7c60d6a66869ecb826d76a491f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/base64url/zipball/7752ce931ec285da4ed1f4c5aa27e45e097be61d", - "reference": "7752ce931ec285da4ed1f4c5aa27e45e097be61d", + "url": "https://api.github.com/repos/symfony/cache/zipball/908edffec894ef7c60d6a66869ecb826d76a491f", + "reference": "908edffec894ef7c60d6a66869ecb826d76a491f", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.0.2", + "psr/cache": "^2.0|^3.0", + "psr/log": "^1.1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2|^3", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/var-exporter": "^5.4|^6.0" }, - "require-dev": { - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.11|^0.12", - "phpstan/phpstan-beberlei-assert": "^0.11|^0.12", - "phpstan/phpstan-deprecation-rules": "^0.11|^0.12", - "phpstan/phpstan-phpunit": "^0.11|^0.12", - "phpstan/phpstan-strict-rules": "^0.11|^0.12" + "conflict": { + "doctrine/dbal": "<2.13.1", + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/var-dumper": "<5.4" }, - "type": "library", - "autoload": { - "psr-4": { - "Base64Url\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky-Labs/base64url/contributors" - } - ], - "description": "Base 64 URL Safe Encoding/Decoding PHP Library", - "homepage": "https://github.com/Spomky-Labs/base64url", - "keywords": [ - "base64", - "rfc4648", - "safe", - "url" - ], - "support": { - "issues": "https://github.com/Spomky-Labs/base64url/issues", - "source": "https://github.com/Spomky-Labs/base64url/tree/v2.0.4" - }, - "funding": [ - { - "url": "https://github.com/Spomky", - "type": "github" - }, - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], - "time": "2020-11-03T09:10:25+00:00" - }, - { - "name": "spomky-labs/cbor-php", - "version": "v2.1.0", - "source": { - "type": "git", - "url": "https://github.com/Spomky-Labs/cbor-php.git", - "reference": "28e2712cfc0b48fae661a48ffc6896d7abe83684" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/28e2712cfc0b48fae661a48ffc6896d7abe83684", - "reference": "28e2712cfc0b48fae661a48ffc6896d7abe83684", - "shasum": "" - }, - "require": { - "brick/math": "^0.8.15|^0.9.0", - "ext-mbstring": "*", - "php": ">=7.3" - }, - "require-dev": { - "ekino/phpstan-banned-code": "^1.0", - "ext-json": "*", - "infection/infection": "^0.18|^0.25", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-beberlei-assert": "^1.0", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.12", - "roave/security-advisories": "dev-latest", - "symplify/easy-coding-standard": "^10.0" - }, - "suggest": { - "ext-bcmath": "GMP or BCMath extensions will drastically improve the library performance. BCMath extension needed to handle the Big Float and Decimal Fraction Tags", - "ext-gmp": "GMP or BCMath extensions will drastically improve the library performance" - }, - "type": "library", - "autoload": { - "psr-4": { - "CBOR\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/Spomky-Labs/cbor-php/contributors" - } - ], - "description": "CBOR Encoder/Decoder for PHP", - "keywords": [ - "Concise Binary Object Representation", - "RFC7049", - "cbor" - ], - "support": { - "issues": "https://github.com/Spomky-Labs/cbor-php/issues", - "source": "https://github.com/Spomky-Labs/cbor-php/tree/v2.1.0" - }, - "funding": [ - { - "url": "https://github.com/Spomky", - "type": "github" - }, - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], - "time": "2021-12-13T12:46:26+00:00" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v6.3.0", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", - "shasum": "" - }, - "require": { - "egulias/email-validator": "^2.0|^3.1", - "php": ">=7.0.0", - "symfony/polyfill-iconv": "^1.0", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.4" - }, - "suggest": { - "ext-intl": "Needed to support internationalized email addresses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ], - "support": { - "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", - "type": "tidelift" - } - ], - "abandoned": "symfony/mailer", - "time": "2021-10-18T15:26:12+00:00" - }, - { - "name": "symfony/cache", - "version": "v6.0.13", - "source": { - "type": "git", - "url": "https://github.com/symfony/cache.git", - "reference": "908edffec894ef7c60d6a66869ecb826d76a491f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/908edffec894ef7c60d6a66869ecb826d76a491f", - "reference": "908edffec894ef7c60d6a66869ecb826d76a491f", - "shasum": "" - }, - "require": { - "php": ">=8.0.2", - "psr/cache": "^2.0|^3.0", - "psr/log": "^1.1|^2|^3", - "symfony/cache-contracts": "^1.1.7|^2|^3", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/var-exporter": "^5.4|^6.0" - }, - "conflict": { - "doctrine/dbal": "<2.13.1", - "symfony/dependency-injection": "<5.4", - "symfony/http-kernel": "<5.4", - "symfony/var-dumper": "<5.4" - }, - "provide": { - "psr/cache-implementation": "2.0|3.0", - "psr/simple-cache-implementation": "1.0|2.0|3.0", - "symfony/cache-implementation": "1.1|2.0|3.0" + "provide": { + "psr/cache-implementation": "2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0", + "symfony/cache-implementation": "1.1|2.0|3.0" }, "require-dev": { "cache/integration-tests": "dev-master", @@ -5395,46 +4868,42 @@ }, { "name": "symfony/console", - "version": "v5.4.13", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3f97f6c7b7e26848a90c0c0cfb91eeb2bb8618be" + "reference": "1f89cab8d52c84424f798495b3f10342a7b1a070" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3f97f6c7b7e26848a90c0c0cfb91eeb2bb8618be", - "reference": "3f97f6c7b7e26848a90c0c0cfb91eeb2bb8618be", + "url": "https://api.github.com/repos/symfony/console/zipball/1f89cab8d52c84424f798495b3f10342a7b1a070", + "reference": "1f89cab8d52c84424f798495b3f10342a7b1a070", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "symfony/string": "^5.4|^6.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -5474,7 +4943,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.13" + "source": "https://github.com/symfony/console/tree/v6.0.14" }, "funding": [ { @@ -5490,7 +4959,7 @@ "type": "tidelift" } ], - "time": "2022-08-26T13:50:20+00:00" + "time": "2022-10-07T08:02:12+00:00" }, { "name": "symfony/css-selector", @@ -5626,27 +5095,27 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.11", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8" + "reference": "81e57c793d9a573f29f8b5296d5d8ee4602badcb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/f75d17cb4769eb38cd5fccbda95cd80a054d35c8", - "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/81e57c793d9a573f29f8b5296d5d8ee4602badcb", + "reference": "81e57c793d9a573f29f8b5296d5d8ee4602badcb", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "symfony/var-dumper": "^5.4|^6.0" }, "require-dev": { "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/http-kernel": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -5677,7 +5146,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.11" + "source": "https://github.com/symfony/error-handler/tree/v6.0.14" }, "funding": [ { @@ -5693,7 +5162,7 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:37:50+00:00" + "time": "2022-10-07T08:02:12+00:00" }, { "name": "symfony/event-dispatcher", @@ -5859,22 +5328,20 @@ }, { "name": "symfony/finder", - "version": "v5.4.11", + "version": "v6.0.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + "reference": "09cb683ba5720385ea6966e5e06be2a34f2568b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", + "url": "https://api.github.com/repos/symfony/finder/zipball/09cb683ba5720385ea6966e5e06be2a34f2568b1", + "reference": "09cb683ba5720385ea6966e5e06be2a34f2568b1", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -5902,7 +5369,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.11" + "source": "https://github.com/symfony/finder/tree/v6.0.11" }, "funding": [ { @@ -5918,35 +5385,34 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:37:50+00:00" + "time": "2022-07-29T07:39:48+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.13", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "54be067587a4f2b7fffb7a699f9481ec3daf9379" + "reference": "e8aa505d35660877e6695d68be53df2ceac7cf57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/54be067587a4f2b7fffb7a699f9481ec3daf9379", - "reference": "54be067587a4f2b7fffb7a699f9481ec3daf9379", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8aa505d35660877e6695d68be53df2ceac7cf57", + "reference": "e8aa505d35660877e6695d68be53df2ceac7cf57", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/cache": "^5.4|^6.0", "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^5.4|^6.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.4|^6.0", "symfony/rate-limiter": "^5.2|^6.0" }, "suggest": { @@ -5978,7 +5444,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.13" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.14" }, "funding": [ { @@ -5994,67 +5460,64 @@ "type": "tidelift" } ], - "time": "2022-09-17T07:31:22+00:00" + "time": "2022-10-02T08:16:40+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.13", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "4f25330c216b7bb178603b2e25fb7a9325015507" + "reference": "f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4f25330c216b7bb178603b2e25fb7a9325015507", - "reference": "4f25330c216b7bb178603b2e25fb7a9325015507", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc", + "reference": "f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^5.0|^6.0", - "symfony/http-foundation": "^5.3.7|^6.0", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2", + "psr/log": "^1|^2|^3", + "symfony/error-handler": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { "symfony/browser-kit": "<5.4", - "symfony/cache": "<5.0", - "symfony/config": "<5.0", - "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.3", - "symfony/doctrine-bridge": "<5.0", - "symfony/form": "<5.0", - "symfony/http-client": "<5.0", - "symfony/mailer": "<5.0", - "symfony/messenger": "<5.0", - "symfony/translation": "<5.0", - "symfony/twig-bridge": "<5.0", - "symfony/validator": "<5.0", + "symfony/cache": "<5.4", + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<5.4", "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", "symfony/browser-kit": "^5.4|^6.0", - "symfony/config": "^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, @@ -6090,7 +5553,81 @@ "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/v5.4.13" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.14" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T07:43:45+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.0.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "6269c872ab4792e8facbf8af27a2fbee8429f217" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/6269c872ab4792e8facbf8af27a2fbee8429f217", + "reference": "6269c872ab4792e8facbf8af27a2fbee8429f217", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3", + "php": ">=8.0.2", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<5.4" + }, + "require-dev": { + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/messenger": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.0.13" }, "funding": [ { @@ -6106,42 +5643,41 @@ "type": "tidelift" } ], - "time": "2022-09-30T07:40:28+00:00" + "time": "2022-08-29T06:49:22+00:00" }, { "name": "symfony/mime", - "version": "v5.4.13", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "bb2ccf759e2b967dcd11bdee5bdf30dddd2290bd" + "reference": "c01b88b63418131daf2edd0bdc17fc8a6d1c939a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/bb2ccf759e2b967dcd11bdee5bdf30dddd2290bd", - "reference": "bb2ccf759e2b967dcd11bdee5bdf30dddd2290bd", + "url": "https://api.github.com/repos/symfony/mime/zipball/c01b88b63418131daf2edd0bdc17fc8a6d1c939a", + "reference": "c01b88b63418131daf2edd0bdc17fc8a6d1c939a", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-mbstring": "^1.0" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" + "symfony/mailer": "<5.4", + "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.1|^6.0", - "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.2|^6.0" + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" }, "type": "library", "autoload": { @@ -6173,7 +5709,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.13" + "source": "https://github.com/symfony/mime/tree/v6.0.14" }, "funding": [ { @@ -6189,7 +5725,7 @@ "type": "tidelift" } ], - "time": "2022-09-01T18:18:29+00:00" + "time": "2022-10-07T08:02:12+00:00" }, { "name": "symfony/polyfill-ctype", @@ -6274,90 +5810,7 @@ "time": "2022-05-24T11:49:31+00:00" }, { - "name": "symfony/polyfill-iconv", - "version": "v1.26.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "143f1881e655bebca1312722af8068de235ae5dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/143f1881e655bebca1312722af8068de235ae5dc", - "reference": "143f1881e655bebca1312722af8068de235ae5dc", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-iconv": "*" - }, - "suggest": { - "ext-iconv": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - } - }, - "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 for the Iconv extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.26.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-05-24T11:49:31+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", + "name": "symfony/polyfill-intl-grapheme", "version": "v1.26.0", "source": { "type": "git", @@ -6768,17 +6221,17 @@ "time": "2022-05-24T11:49:31+00:00" }, { - "name": "symfony/polyfill-php73", + "name": "symfony/polyfill-php80", "version": "v1.26.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", "shasum": "" }, "require": { @@ -6799,7 +6252,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, "classmap": [ "Resources/stubs" @@ -6810,6 +6263,10 @@ "MIT" ], "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -6819,7 +6276,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -6828,7 +6285,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" }, "funding": [ { @@ -6844,20 +6301,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-05-10T07:21:04+00:00" }, { - "name": "symfony/polyfill-php80", + "name": "symfony/polyfill-php81", "version": "v1.26.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", "shasum": "" }, "require": { @@ -6878,7 +6335,7 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Polyfill\\Php81\\": "" }, "classmap": [ "Resources/stubs" @@ -6889,10 +6346,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -6902,7 +6355,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -6911,7 +6364,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" }, "funding": [ { @@ -6927,25 +6380,31 @@ "type": "tidelift" } ], - "time": "2022-05-10T07:21:04+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { - "name": "symfony/polyfill-php81", + "name": "symfony/polyfill-uuid", "version": "v1.26.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/a41886c1c81dc075a09c71fe6db5b9d68c79de23", + "reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, "type": "library", "extra": { "branch-alias": { @@ -6961,11 +6420,8 @@ "bootstrap.php" ], "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] + "Symfony\\Polyfill\\Uuid\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6973,24 +6429,24 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "description": "Symfony polyfill for uuid functions", "homepage": "https://symfony.com", "keywords": [ "compatibility", "polyfill", "portable", - "shim" + "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.26.0" }, "funding": [ { @@ -7010,21 +6466,20 @@ }, { "name": "symfony/process", - "version": "v5.4.11", + "version": "v6.0.11", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" + "reference": "44270a08ccb664143dede554ff1c00aaa2247a43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", + "url": "https://api.github.com/repos/symfony/process/zipball/44270a08ccb664143dede554ff1c00aaa2247a43", + "reference": "44270a08ccb664143dede554ff1c00aaa2247a43", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -7052,95 +6507,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.11" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2022-06-27T16:58:25+00:00" - }, - { - "name": "symfony/psr-http-message-bridge", - "version": "v2.1.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "d444f85dddf65c7e57c58d8e5b3a4dbb593b1840" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d444f85dddf65c7e57c58d8e5b3a4dbb593b1840", - "reference": "d444f85dddf65c7e57c58d8e5b3a4dbb593b1840", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "psr/http-message": "^1.0", - "symfony/http-foundation": "^4.4 || ^5.0 || ^6.0" - }, - "require-dev": { - "nyholm/psr7": "^1.1", - "psr/log": "^1.1 || ^2 || ^3", - "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0", - "symfony/config": "^4.4 || ^5.0 || ^6.0", - "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0", - "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0", - "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0", - "symfony/phpunit-bridge": "^5.4@dev || ^6.0" - }, - "suggest": { - "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" - }, - "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-main": "2.1-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bridge\\PsrHttpMessage\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - } - ], - "description": "PSR HTTP message bridge", - "homepage": "http://symfony.com", - "keywords": [ - "http", - "http-message", - "psr-17", - "psr-7" - ], - "support": { - "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.3" + "source": "https://github.com/symfony/process/tree/v6.0.11" }, "funding": [ { @@ -7156,41 +6523,39 @@ "type": "tidelift" } ], - "time": "2022-09-05T10:34:54+00:00" + "time": "2022-06-27T17:10:44+00:00" }, { "name": "symfony/routing", - "version": "v5.4.11", + "version": "v6.0.11", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226" + "reference": "434b64f7d3a582ec33fcf69baaf085473e67d639" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3e01ccd9b2a3a4167ba2b3c53612762300300226", - "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226", + "url": "https://api.github.com/repos/symfony/routing/zipball/434b64f7d3a582ec33fcf69baaf085473e67d639", + "reference": "434b64f7d3a582ec33fcf69baaf085473e67d639", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.0.2" }, "conflict": { "doctrine/annotations": "<1.12", - "symfony/config": "<5.3", - "symfony/dependency-injection": "<4.4", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" }, "require-dev": { "doctrine/annotations": "^1.12", "psr/log": "^1|^2|^3", - "symfony/config": "^5.3|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -7230,7 +6595,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.11" + "source": "https://github.com/symfony/routing/tree/v6.0.11" }, "funding": [ { @@ -7246,26 +6611,25 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2022-07-20T13:45:53+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66", + "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" + "php": ">=8.0.2", + "psr/container": "^2.0" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -7276,7 +6640,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -7313,7 +6677,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.0.2" }, "funding": [ { @@ -7329,20 +6693,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2022-05-30T19:17:58+00:00" }, { "name": "symfony/string", - "version": "v6.0.13", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "65e99fb179e7241606377e4042cd2161f3dd1c05" + "reference": "3db7da820a6e4a584b714b3933c34c6a7db4d86c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/65e99fb179e7241606377e4042cd2161f3dd1c05", - "reference": "65e99fb179e7241606377e4042cd2161f3dd1c05", + "url": "https://api.github.com/repos/symfony/string/zipball/3db7da820a6e4a584b714b3933c34c6a7db4d86c", + "reference": "3db7da820a6e4a584b714b3933c34c6a7db4d86c", "shasum": "" }, "require": { @@ -7398,7 +6762,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.13" + "source": "https://github.com/symfony/string/tree/v6.0.14" }, "funding": [ { @@ -7414,20 +6778,20 @@ "type": "tidelift" } ], - "time": "2022-09-02T08:05:03+00:00" + "time": "2022-10-10T09:34:08+00:00" }, { "name": "symfony/translation", - "version": "v6.0.12", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "5e71973b4991e141271465dacf4bf9e719941424" + "reference": "6f99eb179aee4652c0a7cd7c11f2a870d904330c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/5e71973b4991e141271465dacf4bf9e719941424", - "reference": "5e71973b4991e141271465dacf4bf9e719941424", + "url": "https://api.github.com/repos/symfony/translation/zipball/6f99eb179aee4652c0a7cd7c11f2a870d904330c", + "reference": "6f99eb179aee4652c0a7cd7c11f2a870d904330c", "shasum": "" }, "require": { @@ -7493,7 +6857,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.0.12" + "source": "https://github.com/symfony/translation/tree/v6.0.14" }, "funding": [ { @@ -7509,7 +6873,7 @@ "type": "tidelift" } ], - "time": "2022-08-02T16:01:06+00:00" + "time": "2022-10-07T08:02:12+00:00" }, { "name": "symfony/translation-contracts", @@ -7590,50 +6954,30 @@ "time": "2022-06-27T17:10:44+00:00" }, { - "name": "symfony/var-dumper", - "version": "v5.4.13", + "name": "symfony/uid", + "version": "v6.0.13", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "2bf2ccab581bec363191672f0df40e0c85569e1c" + "url": "https://github.com/symfony/uid.git", + "reference": "db426b27173f5e2d8b960dd10fa8ce19ea9ca5f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2bf2ccab581bec363191672f0df40e0c85569e1c", - "reference": "2bf2ccab581bec363191672f0df40e0c85569e1c", + "url": "https://api.github.com/repos/symfony/uid/zipball/db426b27173f5e2d8b960dd10fa8ce19ea9ca5f3", + "reference": "db426b27173f5e2d8b960dd10fa8ce19ea9ca5f3", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" + "php": ">=8.0.2", + "symfony/polyfill-uuid": "^1.15" }, "require-dev": { - "ext-iconv": "*", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", - "twig/twig": "^2.13|^3.0.4" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + "symfony/console": "^5.4|^6.0" }, - "bin": [ - "Resources/bin/var-dump-server" - ], "type": "library", "autoload": { - "files": [ - "Resources/functions/dump.php" - ], "psr-4": { - "Symfony\\Component\\VarDumper\\": "" + "Symfony\\Component\\Uid\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -7644,6 +6988,10 @@ "MIT" ], "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -7653,14 +7001,15 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "description": "Provides an object-oriented API to generate and represent UIDs", "homepage": "https://symfony.com", "keywords": [ - "debug", - "dump" + "UID", + "ulid", + "uuid" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.13" + "source": "https://github.com/symfony/uid/tree/v6.0.13" }, "funding": [ { @@ -7676,24 +7025,112 @@ "type": "tidelift" } ], - "time": "2022-09-06T13:23:31+00:00" + "time": "2022-09-09T09:33:56+00:00" }, { - "name": "symfony/var-exporter", - "version": "v6.0.10", + "name": "symfony/var-dumper", + "version": "v6.0.14", "source": { "type": "git", - "url": "https://github.com/symfony/var-exporter.git", - "reference": "e3df004a8d0fb572c420a6915cd23db9254c8366" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "72af925ddd41ca0372d166d004bc38a00c4608cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/e3df004a8d0fb572c420a6915cd23db9254c8366", - "reference": "e3df004a8d0fb572c420a6915cd23db9254c8366", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/72af925ddd41ca0372d166d004bc38a00c4608cc", + "reference": "72af925ddd41ca0372d166d004bc38a00c4608cc", "shasum": "" }, "require": { - "php": ">=8.0.2" + "php": ">=8.0.2", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.0.14" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-07T08:02:12+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v6.0.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "e3df004a8d0fb572c420a6915cd23db9254c8366" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/e3df004a8d0fb572c420a6915cd23db9254c8366", + "reference": "e3df004a8d0fb572c420a6915cd23db9254c8366", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" }, "require-dev": { "symfony/var-dumper": "^5.4|^6.0" @@ -7752,39 +7189,46 @@ }, { "name": "thecodingmachine/safe", - "version": "v1.3.3", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/thecodingmachine/safe.git", - "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc" + "reference": "e788f3d09dcd36f806350aedb77eac348fafadd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/a8ab0876305a4cdaef31b2350fcb9811b5608dbc", - "reference": "a8ab0876305a4cdaef31b2350fcb9811b5608dbc", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/e788f3d09dcd36f806350aedb77eac348fafadd3", + "reference": "e788f3d09dcd36f806350aedb77eac348fafadd3", "shasum": "" }, "require": { - "php": ">=7.2" + "php": "^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12", + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^9.5", "squizlabs/php_codesniffer": "^3.2", - "thecodingmachine/phpstan-strict-rules": "^0.12" + "thecodingmachine/phpstan-strict-rules": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.1-dev" + "dev-master": "2.2.x-dev" } }, "autoload": { "files": [ "deprecated/apc.php", + "deprecated/array.php", + "deprecated/datetime.php", "deprecated/libevent.php", + "deprecated/misc.php", + "deprecated/password.php", "deprecated/mssql.php", "deprecated/stats.php", + "deprecated/strings.php", "lib/special_cases.php", + "deprecated/mysqli.php", "generated/apache.php", "generated/apcu.php", "generated/array.php", @@ -7805,6 +7249,7 @@ "generated/fpm.php", "generated/ftp.php", "generated/funchand.php", + "generated/gettext.php", "generated/gmp.php", "generated/gnupg.php", "generated/hash.php", @@ -7814,7 +7259,6 @@ "generated/image.php", "generated/imap.php", "generated/info.php", - "generated/ingres-ii.php", "generated/inotify.php", "generated/json.php", "generated/ldap.php", @@ -7823,20 +7267,14 @@ "generated/mailparse.php", "generated/mbstring.php", "generated/misc.php", - "generated/msql.php", "generated/mysql.php", - "generated/mysqli.php", - "generated/mysqlndMs.php", - "generated/mysqlndQc.php", "generated/network.php", "generated/oci8.php", "generated/opcache.php", "generated/openssl.php", "generated/outcontrol.php", - "generated/password.php", "generated/pcntl.php", "generated/pcre.php", - "generated/pdf.php", "generated/pgsql.php", "generated/posix.php", "generated/ps.php", @@ -7847,7 +7285,6 @@ "generated/sem.php", "generated/session.php", "generated/shmop.php", - "generated/simplexml.php", "generated/sockets.php", "generated/sodium.php", "generated/solr.php", @@ -7870,13 +7307,13 @@ "generated/zip.php", "generated/zlib.php" ], - "psr-4": { - "Safe\\": [ - "lib/", - "deprecated/", - "generated/" - ] - } + "classmap": [ + "lib/DateTime.php", + "lib/DateTimeImmutable.php", + "lib/Exceptions/", + "deprecated/Exceptions/", + "generated/Exceptions/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7885,9 +7322,9 @@ "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/v1.3.3" + "source": "https://github.com/thecodingmachine/safe/tree/v2.4.0" }, - "time": "2020-10-28T17:51:34+00:00" + "time": "2022-10-07T14:02:17+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -7944,16 +7381,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.4.1", + "version": "v5.5.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f" + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/264dce589e7ce37a7ba99cb901eed8249fbec92f", - "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", "shasum": "" }, "require": { @@ -7968,15 +7405,19 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.21 || ^9.5.10" + "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" }, "suggest": { "ext-filter": "Required to use the boolean validator." }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "5.4-dev" + "dev-master": "5.5-dev" } }, "autoload": { @@ -8008,7 +7449,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.4.1" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" }, "funding": [ { @@ -8020,20 +7461,20 @@ "type": "tidelift" } ], - "time": "2021-12-12T23:22:04+00:00" + "time": "2022-10-16T01:01:54+00:00" }, { "name": "voku/portable-ascii", - "version": "1.6.1", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" + "reference": "b56450eed252f6801410d810c8e1727224ae0743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", "shasum": "" }, "require": { @@ -8070,7 +7511,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.6.1" + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" }, "funding": [ { @@ -8094,221 +7535,7 @@ "type": "tidelift" } ], - "time": "2022-01-24T18:55:24+00:00" - }, - { - "name": "web-auth/cose-lib", - "version": "v3.3.12", - "source": { - "type": "git", - "url": "https://github.com/web-auth/cose-lib.git", - "reference": "efa6ec2ba4e840bc1316a493973c9916028afeeb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/efa6ec2ba4e840bc1316a493973c9916028afeeb", - "reference": "efa6ec2ba4e840bc1316a493973c9916028afeeb", - "shasum": "" - }, - "require": { - "beberlei/assert": "^3.2", - "ext-json": "*", - "ext-mbstring": "*", - "ext-openssl": "*", - "fgrosse/phpasn1": "^2.1", - "php": ">=7.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Cose\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-auth/cose/contributors" - } - ], - "description": "CBOR Object Signing and Encryption (COSE) For PHP", - "homepage": "https://github.com/web-auth", - "keywords": [ - "COSE", - "RFC8152" - ], - "support": { - "source": "https://github.com/web-auth/cose-lib/tree/v3.3.12" - }, - "funding": [ - { - "url": "https://github.com/Spomky", - "type": "github" - }, - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], - "time": "2021-12-04T12:13:35+00:00" - }, - { - "name": "web-auth/metadata-service", - "version": "v3.3.12", - "source": { - "type": "git", - "url": "https://github.com/web-auth/webauthn-metadata-service.git", - "reference": "ef40d2b7b68c4964247d13fab52e2fa8dbd65246" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-auth/webauthn-metadata-service/zipball/ef40d2b7b68c4964247d13fab52e2fa8dbd65246", - "reference": "ef40d2b7b68c4964247d13fab52e2fa8dbd65246", - "shasum": "" - }, - "require": { - "beberlei/assert": "^3.2", - "ext-json": "*", - "league/uri": "^6.0", - "php": ">=7.2", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "psr/log": "^1.1" - }, - "suggest": { - "web-token/jwt-key-mgmt": "Mandatory for fetching Metadata Statement from distant sources", - "web-token/jwt-signature-algorithm-ecdsa": "Mandatory for fetching Metadata Statement from distant sources" - }, - "type": "library", - "autoload": { - "psr-4": { - "Webauthn\\MetadataService\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-auth/metadata-service/contributors" - } - ], - "description": "Metadata Service for FIDO2/Webauthn", - "homepage": "https://github.com/web-auth", - "keywords": [ - "FIDO2", - "fido", - "webauthn" - ], - "support": { - "source": "https://github.com/web-auth/webauthn-metadata-service/tree/v3.3.12" - }, - "funding": [ - { - "url": "https://github.com/Spomky", - "type": "github" - }, - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], - "time": "2021-11-21T11:14:31+00:00" - }, - { - "name": "web-auth/webauthn-lib", - "version": "v3.3.12", - "source": { - "type": "git", - "url": "https://github.com/web-auth/webauthn-lib.git", - "reference": "5ef9b21c8e9f8a817e524ac93290d08a9f065b33" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/5ef9b21c8e9f8a817e524ac93290d08a9f065b33", - "reference": "5ef9b21c8e9f8a817e524ac93290d08a9f065b33", - "shasum": "" - }, - "require": { - "beberlei/assert": "^3.2", - "ext-json": "*", - "ext-mbstring": "*", - "ext-openssl": "*", - "fgrosse/phpasn1": "^2.1", - "php": ">=7.2", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "psr/log": "^1.1", - "ramsey/uuid": "^3.8|^4.0", - "spomky-labs/base64url": "^2.0", - "spomky-labs/cbor-php": "^1.0|^2.0", - "symfony/process": "^3.0|^4.0|^5.0", - "thecodingmachine/safe": "^1.1", - "web-auth/cose-lib": "self.version", - "web-auth/metadata-service": "self.version" - }, - "suggest": { - "psr/log-implementation": "Recommended to receive logs from the library", - "web-token/jwt-key-mgmt": "Mandatory for the AndroidSafetyNet Attestation Statement support", - "web-token/jwt-signature-algorithm-ecdsa": "Recommended for the AndroidSafetyNet Attestation Statement support", - "web-token/jwt-signature-algorithm-eddsa": "Recommended for the AndroidSafetyNet Attestation Statement support", - "web-token/jwt-signature-algorithm-rsa": "Mandatory for the AndroidSafetyNet Attestation Statement support" - }, - "type": "library", - "autoload": { - "psr-4": { - "Webauthn\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Florent Morselli", - "homepage": "https://github.com/Spomky" - }, - { - "name": "All contributors", - "homepage": "https://github.com/web-auth/webauthn-library/contributors" - } - ], - "description": "FIDO2/Webauthn Support For PHP", - "homepage": "https://github.com/web-auth", - "keywords": [ - "FIDO2", - "fido", - "webauthn" - ], - "support": { - "source": "https://github.com/web-auth/webauthn-lib/tree/v3.3.12" - }, - "funding": [ - { - "url": "https://github.com/Spomky", - "type": "github" - }, - { - "url": "https://www.patreon.com/FlorentMorselli", - "type": "patreon" - } - ], - "time": "2022-02-18T07:13:44+00:00" + "time": "2022-03-08T17:03:00+00:00" }, { "name": "webmozart/assert", @@ -8692,332 +7919,23 @@ "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "~4.0,<4.5" - }, - "suggest": { - "dflydev/markdown": "~1.0", - "erusev/parsedown": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Barryvdh": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.0.6" - }, - "time": "2018-12-13T10:34:14+00:00" - }, - { - "name": "composer/ca-bundle", - "version": "1.3.3", - "source": { - "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/30897edbfb15e784fe55587b4f73ceefd3c4d98c", - "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-pcre": "*", - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "psr/log": "^1.0", - "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\CaBundle\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", - "keywords": [ - "cabundle", - "cacert", - "certificate", - "ssl", - "tls" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.3" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-07-20T07:14:26+00:00" - }, - { - "name": "composer/class-map-generator", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/composer/class-map-generator.git", - "reference": "1e1cb2b791facb2dfe32932a7718cf2571187513" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/1e1cb2b791facb2dfe32932a7718cf2571187513", - "reference": "1e1cb2b791facb2dfe32932a7718cf2571187513", - "shasum": "" - }, - "require": { - "composer/pcre": "^2 || ^3", - "php": "^7.2 || ^8.0", - "symfony/finder": "^4.4 || ^5.3 || ^6" - }, - "require-dev": { - "phpstan/phpstan": "^1.6", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/filesystem": "^5.4 || ^6", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\ClassMapGenerator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Utilities to scan PHP code and generate class maps.", - "keywords": [ - "classmap" - ], - "support": { - "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.0.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-06-19T11:31:27+00:00" - }, - { - "name": "composer/composer", - "version": "2.4.2", - "source": { - "type": "git", - "url": "https://github.com/composer/composer.git", - "reference": "7d887621e69a0311eb50aed4a16f7044b2b385b9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/7d887621e69a0311eb50aed4a16f7044b2b385b9", - "reference": "7d887621e69a0311eb50aed4a16f7044b2b385b9", - "shasum": "" - }, - "require": { - "composer/ca-bundle": "^1.0", - "composer/class-map-generator": "^1.0", - "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2 || ^3", - "composer/semver": "^3.0", - "composer/spdx-licenses": "^1.5.7", - "composer/xdebug-handler": "^2.0.2 || ^3.0.3", - "justinrainbow/json-schema": "^5.2.11", - "php": "^7.2.5 || ^8.0", - "psr/log": "^1.0 || ^2.0 || ^3.0", - "react/promise": "^2.8", - "seld/jsonlint": "^1.4", - "seld/phar-utils": "^1.2", - "seld/signal-handler": "^2.0", - "symfony/console": "^5.4.11 || ^6.0.11", - "symfony/filesystem": "^5.4 || ^6.0", - "symfony/finder": "^5.4 || ^6.0", - "symfony/polyfill-php73": "^1.24", - "symfony/polyfill-php80": "^1.24", - "symfony/process": "^5.4 || ^6.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.4.1", - "phpstan/phpstan-deprecation-rules": "^1", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1", - "phpstan/phpstan-symfony": "^1.2.10", - "symfony/phpunit-bridge": "^6.0" - }, - "suggest": { - "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", - "ext-zip": "Enabling the zip extension allows you to unzip archives", - "ext-zlib": "Allow gzip compression of HTTP requests" - }, - "bin": [ - "bin/composer" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "phpstan": { - "includes": [ - "phpstan/rules.neon" - ] - } - }, - "autoload": { - "psr-4": { - "Composer\\": "src/Composer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "https://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", - "homepage": "https://getcomposer.org/", - "keywords": [ - "autoload", - "dependency", - "package" - ], - "support": { - "irc": "ircs://irc.libera.chat:6697/composer", - "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.4.2" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-09-14T14:11:15+00:00" - }, - { - "name": "composer/metadata-minifier", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/composer/metadata-minifier.git", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "composer/composer": "^2", - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpunit/phpunit": "~4.0,<4.5" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "Composer\\MetadataMinifier\\": "src" + "psr-0": { + "Barryvdh": [ + "src/" + ] } }, "notification-url": "https://packagist.org/downloads/", @@ -9026,35 +7944,14 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" } ], - "description": "Small utility library that handles metadata minification and expansion.", - "keywords": [ - "composer", - "compression" - ], "support": { - "issues": "https://github.com/composer/metadata-minifier/issues", - "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.0.6" }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2021-04-07T13:37:33+00:00" + "time": "2018-12-13T10:34:14+00:00" }, { "name": "composer/pcre", @@ -9208,86 +8105,6 @@ ], "time": "2022-04-01T19:23:25+00:00" }, - { - "name": "composer/spdx-licenses", - "version": "1.5.7", - "source": { - "type": "git", - "url": "https://github.com/composer/spdx-licenses.git", - "reference": "c848241796da2abf65837d51dce1fae55a960149" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/c848241796da2abf65837d51dce1fae55a960149", - "reference": "c848241796da2abf65837d51dce1fae55a960149", - "shasum": "" - }, - "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Spdx\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nils Adermann", - "email": "naderman@naderman.de", - "homepage": "http://www.naderman.de" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - }, - { - "name": "Rob Bast", - "email": "rob.bast@gmail.com", - "homepage": "http://robbast.nl" - } - ], - "description": "SPDX licenses list and validation library.", - "keywords": [ - "license", - "spdx", - "validator" - ], - "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/spdx-licenses/issues", - "source": "https://github.com/composer/spdx-licenses/tree/1.5.7" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-05-23T07:37:50+00:00" - }, { "name": "composer/xdebug-handler", "version": "3.0.3", @@ -9575,59 +8392,6 @@ ], "time": "2021-11-08T15:37:09+00:00" }, - { - "name": "facade/ignition-contracts", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition-contracts.git", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^v2.15.8", - "phpunit/phpunit": "^9.3.11", - "vimeo/psalm": "^3.17.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Facade\\IgnitionContracts\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://flareapp.io", - "role": "Developer" - } - ], - "description": "Solution contracts for Ignition", - "homepage": "https://github.com/facade/ignition-contracts", - "keywords": [ - "contracts", - "flare", - "ignition" - ], - "support": { - "issues": "https://github.com/facade/ignition-contracts/issues", - "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" - }, - "time": "2020-10-16T08:27:54+00:00" - }, { "name": "filp/whoops", "version": "2.14.5", @@ -9701,16 +8465,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.11.0", + "version": "v3.12.0", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "7dcdea3f2f5f473464e835be9be55283ff8cfdc3" + "reference": "eae11d945e2885d86e1c080eec1bb30a2aa27998" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/7dcdea3f2f5f473464e835be9be55283ff8cfdc3", - "reference": "7dcdea3f2f5f473464e835be9be55283ff8cfdc3", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/eae11d945e2885d86e1c080eec1bb30a2aa27998", + "reference": "eae11d945e2885d86e1c080eec1bb30a2aa27998", "shasum": "" }, "require": { @@ -9743,8 +8507,8 @@ "phpspec/prophecy": "^1.15", "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "phpunitgoodpractices/polyfill": "^1.5", - "phpunitgoodpractices/traits": "^1.9.1", + "phpunitgoodpractices/polyfill": "^1.6", + "phpunitgoodpractices/traits": "^1.9.2", "symfony/phpunit-bridge": "^6.0", "symfony/yaml": "^5.4 || ^6.0" }, @@ -9778,7 +8542,7 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.11.0" + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.12.0" }, "funding": [ { @@ -9786,7 +8550,7 @@ "type": "github" } ], - "time": "2022-09-01T18:24:51+00:00" + "time": "2022-10-12T14:20:51+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -9841,16 +8605,16 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.1.8", + "version": "v5.1.10", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "74ee05a61296aa7298164ef5346f0a568aa6106e" + "reference": "8ceb38246028483750573c05dc4f9c17ddb65b7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/74ee05a61296aa7298164ef5346f0a568aa6106e", - "reference": "74ee05a61296aa7298164ef5346f0a568aa6106e", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/8ceb38246028483750573c05dc4f9c17ddb65b7b", + "reference": "8ceb38246028483750573c05dc4f9c17ddb65b7b", "shasum": "" }, "require": { @@ -9897,7 +8661,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.8" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.10" }, "funding": [ { @@ -9905,77 +8669,7 @@ "type": "github" } ], - "time": "2022-09-25T20:21:14+00:00" - }, - { - "name": "justinrainbow/json-schema", - "version": "5.2.12", - "source": { - "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" - }, - "bin": [ - "bin/validate-json" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" - } - ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", - "keywords": [ - "json", - "schema" - ], - "support": { - "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" - }, - "time": "2022-04-13T08:02:27+00:00" + "time": "2022-10-19T21:46:50+00:00" }, { "name": "lychee-org/phpstan-lychee", @@ -10260,146 +8954,59 @@ "PhpParser\\": "lib/PhpParser" } }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" - }, - "time": "2022-09-04T07:30:47+00:00" - }, - { - "name": "nunomaduro/collision", - "version": "v5.11.0", - "source": { - "type": "git", - "url": "https://github.com/nunomaduro/collision.git", - "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461", - "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461", - "shasum": "" - }, - "require": { - "facade/ignition-contracts": "^1.0", - "filp/whoops": "^2.14.3", - "php": "^7.3 || ^8.0", - "symfony/console": "^5.0" - }, - "require-dev": { - "brianium/paratest": "^6.1", - "fideloper/proxy": "^4.4.1", - "fruitcake/laravel-cors": "^2.0.3", - "laravel/framework": "8.x-dev", - "nunomaduro/larastan": "^0.6.2", - "nunomaduro/mock-final-classes": "^1.0", - "orchestra/testbench": "^6.0", - "phpstan/phpstan": "^0.12.64", - "phpunit/phpunit": "^9.5.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "NunoMaduro\\Collision\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "Cli error handling for console/command-line PHP applications.", - "keywords": [ - "artisan", - "cli", - "command-line", - "console", - "error", - "handling", - "laravel", - "laravel-zero", - "php", - "symfony" - ], - "support": { - "issues": "https://github.com/nunomaduro/collision/issues", - "source": "https://github.com/nunomaduro/collision" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" + "name": "Nikita Popov" } ], - "time": "2022-01-10T16:22:52+00:00" + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" }, { "name": "nunomaduro/larastan", - "version": "1.0.3", + "version": "2.2.5", "source": { "type": "git", "url": "https://github.com/nunomaduro/larastan.git", - "reference": "f5ce15319da184a5e461ef12c60489c15a9cf65b" + "reference": "42ee94bc30f3501a1d01a47222b49c1fbb54a316" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/f5ce15319da184a5e461ef12c60489c15a9cf65b", - "reference": "f5ce15319da184a5e461ef12c60489c15a9cf65b", + "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/42ee94bc30f3501a1d01a47222b49c1fbb54a316", + "reference": "42ee94bc30f3501a1d01a47222b49c1fbb54a316", "shasum": "" }, "require": { - "composer/composer": "^1.0 || ^2.0", + "composer/pcre": "^3.0", "ext-json": "*", - "illuminate/console": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/container": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/contracts": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/database": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/http": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/pipeline": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "illuminate/support": "^6.0 || ^7.0 || ^8.0 || ^9.0", - "mockery/mockery": "^0.9 || ^1.0", - "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.0", - "symfony/process": "^4.3 || ^5.0 || ^6.0" + "illuminate/console": "^9", + "illuminate/container": "^9", + "illuminate/contracts": "^9", + "illuminate/database": "^9", + "illuminate/http": "^9", + "illuminate/pipeline": "^9", + "illuminate/support": "^9", + "mockery/mockery": "^1.4.4", + "php": "^8.0.2", + "phpmyadmin/sql-parser": "^5.5", + "phpstan/phpstan": "^1.8.7" }, "require-dev": { - "nikic/php-parser": "^4.13.0", - "orchestra/testbench": "^4.0 || ^5.0 || ^6.0 || ^7.0", - "phpunit/phpunit": "^7.3 || ^8.2 || ^9.3" + "nikic/php-parser": "^4.13.2", + "orchestra/testbench": "^7.0.0", + "phpunit/phpunit": "^9.5.11" }, "suggest": { "orchestra/testbench": "Using Larastan for analysing a package needs Testbench" @@ -10407,7 +9014,7 @@ "type": "phpstan-extension", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" }, "phpstan": { "includes": [ @@ -10443,7 +9050,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/larastan/issues", - "source": "https://github.com/nunomaduro/larastan/tree/1.0.3" + "source": "https://github.com/nunomaduro/larastan/tree/2.2.5" }, "funding": [ { @@ -10463,7 +9070,7 @@ "type": "patreon" } ], - "time": "2022-01-20T19:33:48+00:00" + "time": "2022-10-18T10:13:18+00:00" }, { "name": "phar-io/manifest", @@ -10688,25 +9295,30 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.1", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { "ext-tokenizer": "*", - "psalm/phar": "^4.8" + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { @@ -10732,22 +9344,95 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + }, + "time": "2022-10-14T12:47:21+00:00" + }, + { + "name": "phpmyadmin/sql-parser", + "version": "5.5.0", + "source": { + "type": "git", + "url": "https://github.com/phpmyadmin/sql-parser.git", + "reference": "8ab99cd0007d880f49f5aa1807033dbfa21b1cb5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/8ab99cd0007d880f49f5aa1807033dbfa21b1cb5", + "reference": "8ab99cd0007d880f49f5aa1807033dbfa21b1cb5", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "symfony/polyfill-mbstring": "^1.3" + }, + "conflict": { + "phpmyadmin/motranslator": "<3.0" + }, + "require-dev": { + "phpmyadmin/coding-standard": "^3.0", + "phpmyadmin/motranslator": "^4.0 || ^5.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.2", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/php-code-coverage": "*", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "^0.16.1", + "vimeo/psalm": "^4.11", + "zumba/json-serializer": "^3.0" + }, + "suggest": { + "ext-mbstring": "For best performance", + "phpmyadmin/motranslator": "Translate messages to your favorite locale" + }, + "bin": [ + "bin/highlight-query", + "bin/lint-query", + "bin/tokenize-query" + ], + "type": "library", + "autoload": { + "psr-4": { + "PhpMyAdmin\\SqlParser\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "The phpMyAdmin Team", + "email": "developers@phpmyadmin.net", + "homepage": "https://www.phpmyadmin.net/team/" + } + ], + "description": "A validating SQL lexer and parser with a focus on MySQL dialect.", + "homepage": "https://github.com/phpmyadmin/sql-parser", + "keywords": [ + "analysis", + "lexer", + "parser", + "sql" + ], + "support": { + "issues": "https://github.com/phpmyadmin/sql-parser/issues", + "source": "https://github.com/phpmyadmin/sql-parser" }, - "time": "2022-03-15T21:29:03+00:00" + "time": "2021-12-09T04:31:52+00:00" }, { "name": "phpstan/phpstan", - "version": "1.8.8", + "version": "1.8.10", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "08310ce271984587e2a4cda94e1ac66510a6ea07" + "reference": "0c4459dc42c568b818b3f25186589f3acddc1823" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/08310ce271984587e2a4cda94e1ac66510a6ea07", - "reference": "08310ce271984587e2a4cda94e1ac66510a6ea07", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0c4459dc42c568b818b3f25186589f3acddc1823", + "reference": "0c4459dc42c568b818b3f25186589f3acddc1823", "shasum": "" }, "require": { @@ -10777,7 +9462,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.8.8" + "source": "https://github.com/phpstan/phpstan/tree/1.8.10" }, "funding": [ { @@ -10793,7 +9478,7 @@ "type": "tidelift" } ], - "time": "2022-10-06T12:51:57+00:00" + "time": "2022-10-17T14:23:35+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -11313,82 +9998,6 @@ ], "time": "2022-09-25T03:44:45+00:00" }, - { - "name": "react/promise", - "version": "v2.9.0", - "source": { - "type": "git", - "url": "https://github.com/reactphp/promise.git", - "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910", - "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "React\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com", - "homepage": "https://sorgalla.com/" - }, - { - "name": "Christian Lück", - "email": "christian@clue.engineering", - "homepage": "https://clue.engineering/" - }, - { - "name": "Cees-Jan Kiewiet", - "email": "reactphp@ceesjankiewiet.nl", - "homepage": "https://wyrihaximus.net/" - }, - { - "name": "Chris Boden", - "email": "cboden@gmail.com", - "homepage": "https://cboden.dev/" - } - ], - "description": "A lightweight implementation of CommonJS Promises/A for PHP", - "keywords": [ - "promise", - "promises" - ], - "support": { - "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.9.0" - }, - "funding": [ - { - "url": "https://github.com/WyriHaximus", - "type": "github" - }, - { - "url": "https://github.com/clue", - "type": "github" - } - ], - "time": "2022-02-11T10:27:51+00:00" - }, { "name": "sebastian/cli-parser", "version": "1.0.1", @@ -12353,179 +10962,6 @@ ], "time": "2020-09-28T06:39:44+00:00" }, - { - "name": "seld/jsonlint", - "version": "1.9.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "4211420d25eba80712bff236a98960ef68b866b7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7", - "reference": "4211420d25eba80712bff236a98960ef68b866b7", - "shasum": "" - }, - "require": { - "php": "^5.3 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.5", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" - }, - "bin": [ - "bin/jsonlint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Seld\\JsonLint\\": "src/Seld/JsonLint/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "JSON Linter", - "keywords": [ - "json", - "linter", - "parser", - "validator" - ], - "support": { - "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", - "type": "tidelift" - } - ], - "time": "2022-04-01T13:37:23+00:00" - }, - { - "name": "seld/phar-utils", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Seld\\PharUtils\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "PHAR file format utilities, for when PHP phars you up", - "keywords": [ - "phar" - ], - "support": { - "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1" - }, - "time": "2022-08-31T10:31:18+00:00" - }, - { - "name": "seld/signal-handler", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/signal-handler.git", - "reference": "f69d119511dc0360440cdbdaa71829c149b7be75" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/f69d119511dc0360440cdbdaa71829c149b7be75", - "reference": "f69d119511dc0360440cdbdaa71829c149b7be75", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "require-dev": { - "phpstan/phpstan": "^1", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "^7.5.20 || ^8.5.23", - "psr/log": "^1 || ^2 || ^3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Seld\\Signal\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development", - "keywords": [ - "posix", - "sigint", - "signal", - "sigterm", - "unix" - ], - "support": { - "issues": "https://github.com/Seldaek/signal-handler/issues", - "source": "https://github.com/Seldaek/signal-handler/tree/2.0.1" - }, - "time": "2022-07-20T18:31:45+00:00" - }, { "name": "slam/phpstan-extensions", "version": "v6.0.0", @@ -12955,13 +11391,13 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { - "darkghosthunter/larapass": 20, + "laragear/webauthn": 20, "lychee-org/phpstan-lychee": 20 }, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^8.0", + "php": "^8.0.2", "ext-bcmath": "*", "ext-ctype": "*", "ext-exif": "*", @@ -12982,5 +11418,5 @@ "platform-overrides": { "php": "8.0.2" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.2.0" } diff --git a/config/app.php b/config/app.php index fdced01bb68..9b244899119 100644 --- a/config/app.php +++ b/config/app.php @@ -1,5 +1,7 @@ 'en', + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'en_US', + /* |-------------------------------------------------------------------------- | Log DB SQL statements @@ -145,6 +160,24 @@ 'cipher' => env('APP_CIPHER', 'AES-256-CBC'), + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => 'file', + // 'store' => 'redis', + ], + /* |-------------------------------------------------------------------------- | Autoloaded Service Providers @@ -211,45 +244,9 @@ | */ - 'aliases' => [ - 'App' => Illuminate\Support\Facades\App::class, - 'Arr' => Illuminate\Support\Arr::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Auth' => Illuminate\Support\Facades\Auth::class, - 'Blade' => Illuminate\Support\Facades\Blade::class, - 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, - 'Bus' => Illuminate\Support\Facades\Bus::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Config' => Illuminate\Support\Facades\Config::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'DB' => Illuminate\Support\Facades\DB::class, + 'aliases' => Facade::defaultAliases()->merge([ 'DebugBar' => Barryvdh\Debugbar\Facades\Debugbar::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'File' => Illuminate\Support\Facades\File::class, - 'Gate' => Illuminate\Support\Facades\Gate::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Http' => Illuminate\Support\Facades\Http::class, - // 'Lang' => Illuminate\Support\Facades\Lang::class, 'Helpers' => App\Facades\Helpers::class, 'Lang' => App\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Mail' => Illuminate\Support\Facades\Mail::class, - 'Notification' => Illuminate\Support\Facades\Notification::class, - // 'Password' => Illuminate\Support\Facades\Password::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Schema' => Illuminate\Support\Facades\Schema::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'Str' => Illuminate\Support\Str::class, - 'URL' => Illuminate\Support\Facades\URL::class, - 'Validator' => Illuminate\Support\Facades\Validator::class, - 'View' => Illuminate\Support\Facades\View::class, - ], + ])->toArray(), ]; diff --git a/config/auth.php b/config/auth.php index 266da91513e..68c1fd95568 100644 --- a/config/auth.php +++ b/config/auth.php @@ -63,9 +63,9 @@ 'providers' => [ 'users' => [ - 'driver' => 'eloquent', - // 'driver' => 'eloquent-webauthn', + 'driver' => 'eloquent-webauthn', 'model' => App\Models\User::class, + 'password_fallback' => true, ], // 'users' => [ diff --git a/config/broadcasting.php b/config/broadcasting.php index a5284122a67..c48467a6e31 100644 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -34,9 +34,20 @@ 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => [ - 'cluster' => env('PUSHER_APP_CLUSTER'), - 'useTLS' => true, + 'host' => env('PUSHER_HOST', 'api-' . env('PUSHER_APP_CLUSTER', 'mt1') . '.pusher.com') ?: 'api-' . env('PUSHER_APP_CLUSTER', 'mt1') . '.pusher.com', + 'port' => env('PUSHER_PORT', 443), + 'scheme' => env('PUSHER_SCHEME', 'https'), + 'encrypted' => true, + 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https', ], + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + ], + + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), ], 'redis' => [ diff --git a/config/cache.php b/config/cache.php index cad0c945e87..da158160bca 100644 --- a/config/cache.php +++ b/config/cache.php @@ -28,6 +28,9 @@ | well as their drivers. You may even define multiple stores for the | same cache driver to group types of items stored in your caches. | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | */ 'stores' => [ @@ -44,6 +47,7 @@ 'driver' => 'database', 'table' => 'cache', 'connection' => env('DB_CONNECTION'), + 'lock_connection' => null, ], 'file' => [ @@ -70,6 +74,7 @@ 'redis' => [ 'driver' => 'redis', 'connection' => 'cache', + 'lock_connection' => 'default', ], 'dynamodb' => [ @@ -80,6 +85,10 @@ 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), 'endpoint' => env('DYNAMODB_ENDPOINT'), ], + + 'octane' => [ + 'driver' => 'octane', + ], ], /* @@ -93,8 +102,5 @@ | */ - 'prefix' => env( - 'CACHE_PREFIX', - Str::slug(env('APP_NAME', 'Lychee'), '_') . '_cache' - ), + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'Lychee'), '_') . '_cache_'), ]; diff --git a/config/cors.php b/config/cors.php new file mode 100644 index 00000000000..8583af2e347 --- /dev/null +++ b/config/cors.php @@ -0,0 +1,32 @@ + ['api/*', 'sanctum/csrf-cookie'], + + 'allowed_methods' => ['*'], + + 'allowed_origins' => ['*'], + + 'allowed_origins_patterns' => [], + + 'allowed_headers' => ['*'], + + 'exposed_headers' => [], + + 'max_age' => 0, + + 'supports_credentials' => false, +]; \ No newline at end of file diff --git a/config/database.php b/config/database.php index 827550ea316..16a031b58b7 100644 --- a/config/database.php +++ b/config/database.php @@ -119,7 +119,7 @@ 'timezone' => 'UTC', 'prefix' => '', 'prefix_indexes' => true, - 'schema' => 'public', + 'search_path' => 'public', 'sslmode' => 'prefer', ], diff --git a/config/filesystems.php b/config/filesystems.php index dcc0965c976..ec7a0edcd34 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -73,6 +73,8 @@ 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => true, ],*/ // Lychee uses this disk to store the customized CSS file provided by the user diff --git a/config/logging.php b/config/logging.php index 64166e9d197..e698a57f2ae 100644 --- a/config/logging.php +++ b/config/logging.php @@ -14,6 +14,22 @@ 'default' => 'log', + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => false, + ], + /* |-------------------------------------------------------------------------- | Log Channels diff --git a/config/mail.php b/config/mail.php index 96c5abde391..aa5712ae9fb 100644 --- a/config/mail.php +++ b/config/mail.php @@ -41,7 +41,7 @@ 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'timeout' => null, - 'auth_mode' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN'), ], 'ses' => [ @@ -58,12 +58,20 @@ 'sendmail' => [ 'transport' => 'sendmail', - 'path' => '/usr/sbin/sendmail -bs', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), ], 'array' => [ 'transport' => 'array', ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], ], /* diff --git a/config/queue.php b/config/queue.php index 628b39e8835..4064a5d5cfb 100644 --- a/config/queue.php +++ b/config/queue.php @@ -37,6 +37,7 @@ 'table' => 'jobs', 'queue' => 'default', 'retry_after' => 90, + 'after_commit' => false, ], 'beanstalkd' => [ @@ -45,6 +46,7 @@ 'queue' => 'default', 'retry_after' => 90, 'block_for' => 0, + 'after_commit' => false, ], 'sqs' => [ @@ -52,9 +54,10 @@ 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), - 'queue' => env('SQS_QUEUE', 'your-queue-name'), + 'queue' => env('SQS_QUEUE', 'default'), 'suffix' => env('SQS_SUFFIX'), 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, ], 'redis' => [ @@ -63,6 +66,7 @@ 'queue' => env('REDIS_QUEUE', 'default'), 'retry_after' => 90, 'block_for' => null, + 'after_commit' => false, ], ], diff --git a/config/trustedproxy.php b/config/trustedproxy.php index 5204cd7bde6..85b7b273280 100644 --- a/config/trustedproxy.php +++ b/config/trustedproxy.php @@ -33,6 +33,9 @@ * * @link https://symfony.com/doc/current/deployment/proxies.html */ - 'headers' => Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT - | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_PREFIX, + 'headers' => Request::HEADER_X_FORWARDED_FOR | + Request::HEADER_X_FORWARDED_HOST | + Request::HEADER_X_FORWARDED_PORT | + Request::HEADER_X_FORWARDED_PROTO | + Request::HEADER_X_FORWARDED_AWS_ELB, ]; diff --git a/database/migrations/2019_10_06_152017_add_force_32bit_ids.php b/database/migrations/2019_10_06_152017_add_force_32bit_ids.php index 5cd0ba44edc..b5c83df1623 100644 --- a/database/migrations/2019_10_06_152017_add_force_32bit_ids.php +++ b/database/migrations/2019_10_06_152017_add_force_32bit_ids.php @@ -2,6 +2,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; class AddForce32BitIds extends Migration { diff --git a/database/migrations/2020_06_04_104605_config_editor_enabled.php b/database/migrations/2020_06_04_104605_config_editor_enabled.php index ead9a4914cd..c4e22cb0c40 100644 --- a/database/migrations/2020_06_04_104605_config_editor_enabled.php +++ b/database/migrations/2020_06_04_104605_config_editor_enabled.php @@ -2,6 +2,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; class ConfigEditorEnabled extends Migration { diff --git a/database/migrations/2020_07_11_104605_config_lossless_optimization.php b/database/migrations/2020_07_11_104605_config_lossless_optimization.php index dda147977db..4c5e203b9ff 100644 --- a/database/migrations/2020_07_11_104605_config_lossless_optimization.php +++ b/database/migrations/2020_07_11_104605_config_lossless_optimization.php @@ -2,6 +2,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; class ConfigLosslessOptimization extends Migration { diff --git a/database/migrations/2020_07_26_085322_config_swipe_tolerance.php b/database/migrations/2020_07_26_085322_config_swipe_tolerance.php index 3a17c29e940..fcf6489fff4 100644 --- a/database/migrations/2020_07_26_085322_config_swipe_tolerance.php +++ b/database/migrations/2020_07_26_085322_config_swipe_tolerance.php @@ -2,6 +2,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; class ConfigSwipeTolerance extends Migration { diff --git a/database/migrations/2020_07_29_132731_config_local_takestamp.php b/database/migrations/2020_07_29_132731_config_local_takestamp.php index 89560099479..268297a97e1 100644 --- a/database/migrations/2020_07_29_132731_config_local_takestamp.php +++ b/database/migrations/2020_07_29_132731_config_local_takestamp.php @@ -2,6 +2,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; class ConfigLocalTakestamp extends Migration { diff --git a/database/migrations/2020_10_15_104504_add_log_max_num_line.php b/database/migrations/2020_10_15_104504_add_log_max_num_line.php index a1d6c45048f..63e08340ca1 100644 --- a/database/migrations/2020_10_15_104504_add_log_max_num_line.php +++ b/database/migrations/2020_10_15_104504_add_log_max_num_line.php @@ -2,6 +2,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; class AddLogMaxNumLine extends Migration { diff --git a/database/migrations/2020_11_12_183345_config_password_url_param_for_smart_album.php b/database/migrations/2020_11_12_183345_config_password_url_param_for_smart_album.php index b51884737ba..cf768c35c71 100644 --- a/database/migrations/2020_11_12_183345_config_password_url_param_for_smart_album.php +++ b/database/migrations/2020_11_12_183345_config_password_url_param_for_smart_album.php @@ -2,6 +2,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; class ConfigPasswordUrlParamForSmartAlbum extends Migration { diff --git a/database/migrations/2020_12_12_203831_create_web_authn_tables.php b/database/migrations/2020_12_12_203831_create_web_authn_tables.php index 62de4aac9d3..bffd6fa4526 100644 --- a/database/migrations/2020_12_12_203831_create_web_authn_tables.php +++ b/database/migrations/2020_12_12_203831_create_web_authn_tables.php @@ -1,13 +1,14 @@ uuid('user_handle')->nullable(); $table->timestamps(); - $table->softDeletes(WebAuthnCredential::DELETED_AT); + $table->softDeletes(self::DELETED_AT); Configs::where('key', '=', 'username')->orWhere('key', '=', 'password')->update(['type_range' => STRING]); $table->primary(['id', 'user_id']); diff --git a/database/migrations/2020_12_18_162155_add_nsfw_album.php b/database/migrations/2020_12_18_162155_add_nsfw_album.php index 5c19d454b0f..361416a35d3 100644 --- a/database/migrations/2020_12_18_162155_add_nsfw_album.php +++ b/database/migrations/2020_12_18_162155_add_nsfw_album.php @@ -3,6 +3,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; class AddNsfwAlbum extends Migration diff --git a/database/migrations/2021_01_30_111736_display_takedate.php b/database/migrations/2021_01_30_111736_display_takedate.php index 55c5a8ad0a4..579bc56ab5b 100644 --- a/database/migrations/2021_01_30_111736_display_takedate.php +++ b/database/migrations/2021_01_30_111736_display_takedate.php @@ -2,6 +2,7 @@ use App\Models\Configs; use Illuminate\Database\Migrations\Migration; +use Illuminate\Support\Facades\DB; class DisplayTakedate extends Migration { diff --git a/database/migrations/2022_07_09_130303_create_webauthn_credentials.php b/database/migrations/2022_07_09_130303_create_webauthn_credentials.php new file mode 100644 index 00000000000..92fbe428731 --- /dev/null +++ b/database/migrations/2022_07_09_130303_create_webauthn_credentials.php @@ -0,0 +1,111 @@ +string('id')->primary(); + + $table->morphs('authenticatable', 'webauthn_user_index'); + + // This is the user UUID that is generated automatically when a credential for the + // given user is created. If a second credential is created, this UUID is queried + // and then copied on top of the new one, this way the real User ID doesn't change. + $table->uuid('user_id'); + + // The app may allow the user to name or rename a credential to a friendly name, + // like "John's iPhone" or "Office Computer". + $table->string('alias')->nullable(); + + // Allows to detect cloned credentials when the assertion does not have this same counter. + $table->unsignedBigInteger('counter')->nullable(); + // Who created the credential. Should be the same reported by the Authenticator. + $table->string('rp_id'); + // Where the credential was created. Should be the same reported by the Authenticator. + $table->string('origin'); + $table->json('transports')->nullable(); + $table->uuid('aaguid')->nullable(); // GUID are essentially UUID + + // This is the public key the credential uses to verify the challenges. + $table->text('public_key'); + // The attestation of the public key. + $table->string('attestation_format')->default('none'); + // This would hold the certificate chain for other different attestation formats. + $table->json('certificates')->nullable(); + + // A way to disable the credential without deleting it. + $table->dateTime('disabled_at')->nullable(); + $table->dateTime('created_at')->nullable(false); + $table->dateTime('updated_at')->nullable(false); + } + + /** + * Generate the default blueprint for the WebAuthn credentials table. + * + * @param \Illuminate\Database\Schema\Blueprint $table + * + * @return void + */ + protected static function oldTable(Blueprint $table): void + { + $table->string('id', 255); + $table->dateTime('created_at', 6)->nullable(false); + $table->dateTime('updated_at', 6)->nullable(false); + $table->dateTime('disabled_at', 6)->nullable(true); + $table->unsignedInteger('user_id')->nullable(false); + $table->string('name')->nullable(); + $table->string('type', 16); + $table->json('transports'); + $table->json('attestation_type'); + $table->json('trust_path'); + $table->uuid('aaguid'); + $table->binary('public_key'); + $table->unsignedInteger('counter')->default(0); + $table->uuid('user_handle')->nullable(); + // Indices + $table->primary(['id', 'user_id']); + $table->foreign('user_id') + ->references('id')->on('users') + ->cascadeOnDelete(); + } +} \ No newline at end of file diff --git a/resources/lang/en/auth.php b/lang/en/auth.php similarity index 100% rename from resources/lang/en/auth.php rename to lang/en/auth.php diff --git a/resources/lang/en/pagination.php b/lang/en/pagination.php similarity index 100% rename from resources/lang/en/pagination.php rename to lang/en/pagination.php diff --git a/resources/lang/en/passwords.php b/lang/en/passwords.php similarity index 100% rename from resources/lang/en/passwords.php rename to lang/en/passwords.php diff --git a/resources/lang/en/validation.php b/lang/en/validation.php similarity index 100% rename from resources/lang/en/validation.php rename to lang/en/validation.php diff --git a/phpstan.neon b/phpstan.neon index abe48f3e428..ae2c1c84bc4 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -3,9 +3,11 @@ includes: - vendor/lychee-org/phpstan-lychee/phpstan.neon parameters: + checkGenericClassInNonGenericObjectType: false paths: - app - scripts + - lang excludePaths: - app/View/* - app/Http/Livewire/* @@ -15,7 +17,11 @@ parameters: - phpstan/stubs/imageexception.stub ignoreErrors: # bunch of false positives from Eloquent - - '#Dynamic call to static method App\\Models\\Extensions\\FixedQueryBuilder::from\(\).#' + - '#Dynamic call to static method (Illuminate\\Database\\Query\\Builder|Illuminate\\Database\\Eloquent\\(Builder|Relations\\.*)|App\\Models\\Extensions\\FixedQueryBuilder)(<.*>)?::from\(\).#' + - '#Dynamic call to static method (Illuminate\\Database\\Query\\Builder|Illuminate\\Database\\Eloquent\\(Builder|Relations\\.*)|App\\Models\\Extensions\\FixedQueryBuilder)(<.*>)?::limit\(\).#' + - '#Dynamic call to static method (Illuminate\\Database\\Query\\Builder|Illuminate\\Database\\Eloquent\\(Builder|Relations\\.*)|App\\Models\\Extensions\\FixedQueryBuilder)(<.*>)?::offset\(\).#' + - '#Dynamic call to static method (Illuminate\\Database\\Query\\Builder|Illuminate\\Database\\Eloquent\\(Builder|Relations\\.*)|App\\Models\\Extensions\\FixedQueryBuilder)(<.*>)?::take\(\).#' + - '#Dynamic call to static method (Illuminate\\Database\\Query\\Builder|Illuminate\\Database\\Eloquent\\(Builder|Relations\\.*)|App\\Models\\Extensions\\FixedQueryBuilder)(<.*>)?::truncate\(\).#' - '#Dynamic call to static method (Illuminate\\Database\\Query\\Builder|Illuminate\\Database\\Eloquent\\(Builder|Relations\\.*)|App\\Models\\Extensions\\FixedQueryBuilder)(<.*>)?::insert\(\).#' - '#Dynamic call to static method (Illuminate\\Database\\Query\\Builder|Illuminate\\Database\\Eloquent\\(Builder|Relations\\.*)|App\\Models\\Extensions\\FixedQueryBuilder)(<.*>)?::select\(\).#' - '#Dynamic call to static method (Illuminate\\Database\\Query\\Builder|Illuminate\\Database\\Eloquent\\(Builder|Relations\\.*)|App\\Models\\Extensions\\FixedQueryBuilder)(<.*>)?::orderBy\(\)#' @@ -35,20 +41,26 @@ parameters: - '#Return type \(Illuminate\\Support\\Carbon\|null\) of method App\\Models\\.*::asDateTime\(\) should be covariant with return type \(Illuminate\\Support\\Carbon\) of method Illuminate\\Database\\Eloquent\\Model::asDateTime\(\)#' - '#Return type \(App\\Models\\Photo\) of method App\\Models\\Photo::replicate\(\) should be covariant with return type \(static\(.*\)\) of method Illuminate\\Database\\Eloquent\\Model::replicate\(\)#' - '#Return type \(Illuminate\\Support\\Collection&iterable\) of method App\\Http\\Requests\\Album\\.*::albums\(\) should be covariant with return type \(Illuminate\\Support\\Collection&iterable\) of method App\\Http\\Requests\\Contracts\\HasAlbums::albums\(\)#' - - '#Parameter \#1 \$column \(array\|Closure\|Illuminate\\Database\\Query\\Expression\|string\) of method .* should be contravariant with parameter \$column \(array\|Closure\|Illuminate\\Database\\Query\\Expression\|string\) of method .*#' + - + message: '#Parameter \#1 \$column \(array\|Closure\|Illuminate\\Database\\Query\\Expression\|string\) of method .* should be contravariant with parameter \$column \(array\|\(Closure.*\)\|\(Closure.*\)\|Illuminate\\Database\\Query\\Expression\|string\) of method .*#' + paths: + - app/Models/Extensions/FixedQueryBuilderTrait.php - '#Parameter \#1 \$models \(array<.*>\) of method .*::initRelation\(\) should be contravariant with parameter \$models \(array\) of method .*::initRelation\(\)#' - '#Parameter \#1 \$models \(array<.*>\) of method .*::match\(\) should be contravariant with parameter \$models \(array\) of method .*::match\(\)#' - '#Parameter \#1 \$models \(array<.*>\) of method .*::addEagerConstraints\(\) should be contravariant with parameter \$models \(array\) of method .*::addEagerConstraints\(\)#' - '#Parameter \#1 \$albums \(array<.*>\) of method .*::addEagerConstraints\(\) should be contravariant with parameter \$models \(array\) of method .*::addEagerConstraints\(\)#' + - '#Parameter \#1 \$key of method .*::partition\(\) expects \(callable\(.*\): bool\)\|Illuminate\\Database\\Eloquent\\Model\|string, Closure\(.*\): bool given.#' + + - '#Call to an undefined( static)? method Kalnoy\\Nestedset\\.*::(whereIn|select|join|leftJoin|orderBy|addSelect)\(\)#' - '#Parameter .* of method .*::newEloquentBuilder\(\) should be contravariant with parameter \$query \(mixed\) of method Kalnoy\\Nestedset\\Node::newEloquentBuilder\(\)#' - '#Call to an undefined method Geocoder\\Location::getDisplayName\(\)#' - '#Call to an undefined method COM::getfolder\(\).#' - - '#Call to an undefined method League\\Flysystem\\FilesystemInterface::getAdapter\(\)#' + - '#Dynamic call to static method Laragear\\WebAuthn\\Http\\Requests\\AssertionRequest::validate\(\).#' - - '#Property .* \(App\\Models\\.*(\|null)?\) does not accept (Illuminate\\Database\\Eloquent\\Collection\|)?Illuminate\\Database\\Eloquent\\Model(\|null)?.#' - - '#Property .* \(Illuminate\\Database\\Eloquent\\Collection\) does not accept Illuminate\\Database\\Eloquent\\Collection(\|Illuminate\\Database\\Eloquent\\Model)?.#' + - '#Property .* \(App\\Models\\.*(\|null)?\) does not accept (Illuminate\\Database\\Eloquent\\Collection\|)?Illuminate\\Database\\Eloquent\\Model(\|null)?.#' + - '#Property .* \(Illuminate\\Database\\Eloquent\\Collection&iterable\) does not accept Illuminate\\Database\\Eloquent\\Collection(\|Illuminate\\Database\\Eloquent\\Model)?.#' # False positive as stub code for PHP has not yet been updated to 2nd parameter, see https://github.com/php/doc-en/issues/1529 and https://www.php.net/imagick.writeimagefile - '#Method Imagick::writeImageFile\(\) invoked with 2 parameters, 1 required#' diff --git a/public/Lychee-front b/public/Lychee-front index 50efe769e9d..5cadab5233a 160000 --- a/public/Lychee-front +++ b/public/Lychee-front @@ -1 +1 @@ -Subproject commit 50efe769e9d53b9a617d79232512cb667adbe892 +Subproject commit 5cadab5233a78b9bf408e1468a7e890ccdb7041b diff --git a/public/dist/Larapass.js b/public/dist/Larapass.js deleted file mode 100644 index 7459055b5be..00000000000 --- a/public/dist/Larapass.js +++ /dev/null @@ -1,295 +0,0 @@ -/** - * MIT License - * - * Copyright (c) Italo Israel Baeza Cabrera - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -class Larapass -{ - /** - * Headers to use in ALL requests done. - * - * @type {{Accept: string, "X-Requested-With": string, "Content-Type": string}} - */ - headers = { - 'Content-Type': 'application/json', - 'Accept': 'application/json', - 'X-Requested-With': 'XMLHttpRequest' - }; - - /** - * Routes for WebAuthn assertion (login) and attestation (register). - * - * @type {{registerOptions: string, loginOptions: string, login: string, register: string}} - */ - routes = { - loginOptions: 'webauthn/login/options', - login: 'webauthn/login', - registerOptions: 'webauthn/register/options', - register: 'webauthn/register', - } - - /** - * Create a new Larapass instance. - * - * @param routes {{registerOptions: string, loginOptions: string, login: string, register: string}} - * @param headers {{string}} - */ - constructor(routes = {}, headers = {}) - { - this.routes = {...this.routes, ...routes}; - - this.headers = { - ...this.headers, - ...headers - } - - // If the developer didn't issue an XSRF token, we will find it ourselves. - if (headers['X-XSRF-TOKEN'] === undefined) { - this.headers['X-XSRF-TOKEN'] = Larapass.#getXsrfToken() - } - } - - /** - * Returns the XSRF token if it exists. - * - * @returns string|undefined - * @throws TypeError - */ - static #getXsrfToken() - { - let tokenContainer; - - // First, let's get the token if it exists as a cookie, since most apps use it by default. - tokenContainer = document.cookie.split('; ').find(row => row.startsWith('XSRF-TOKEN')) - if (tokenContainer !== undefined) { - return decodeURIComponent(tokenContainer.split('=')[1]); - } - - // If it doesn't exists, we will try to get it from the head meta tags as last resort. - tokenContainer = document.getElementsByName('csrf-token')[0]; - if (tokenContainer !== undefined) { - return tokenContainer.content; - } - - throw new TypeError('There is no cookie with "X-XSRF-TOKEN" or meta tag with "csrf-token".') - } - - /** - * Returns a fetch promise to resolve later. - * - * @param data {{string}} - * @param route {string} - * @param headers {{string}} - * @returns {Promise} - */ - #fetch(data, route, headers = {}) - { - return fetch(route, { - method: 'POST', - credentials: 'same-origin', - redirect: 'error', - headers: {...this.headers, ...headers}, - body: JSON.stringify(data) - }) - } - - /** - * Decodes a BASE64 URL string into a normal string. - * - * @param input {string} - * @returns {string|Iterable} - */ - static #base64UrlDecode(input) - { - input = input.replace(/-/g, '+').replace(/_/g, '/'); - - const pad = input.length % 4; - if (pad) { - if (pad === 1) { - throw new Error('InvalidLengthError: Input base64url string is the wrong length to determine padding'); - } - input += new Array(5-pad).join('='); - } - - return window.atob(input); - } - - /** - * Transform an string into Uint8Array instance. - * - * @param input {string} - * @param atob {boolean} - * @returns {Uint8Array} - */ - static #uint8Array(input, atob = false) - { - return Uint8Array.from( - atob ? window.atob(input) : Larapass.#base64UrlDecode(input), - c => c.charCodeAt(0) - ) - } - - /** - * Encodes an array of bytes to a BASE64 URL string - * - * @param arrayBuffer {ArrayBuffer|Uint8Array} - * @returns {string} - */ - static #arrayToBase64String(arrayBuffer) - { - return btoa(String.fromCharCode(...new Uint8Array(arrayBuffer))); - } - - /** - * Parses the Public Key Options received from the Server for the browser. - * - * @param publicKey {Object} - * @returns {Object} - */ - #parseIncomingServerOptions(publicKey) - { - publicKey.challenge = Larapass.#uint8Array(publicKey.challenge) - - if (publicKey.user !== undefined) { - publicKey.user = { - ...publicKey.user, - id: Larapass.#uint8Array(publicKey.user.id, true), - }; - } - - ['excludeCredentials', 'allowCredentials'] - .filter(key => publicKey[key] !== undefined) - .forEach(key => { - publicKey[key] = publicKey[key].map( - data => { - return { - ...data, - id: Larapass.#uint8Array(data.id), - }; - } - ) - }) - - return publicKey; - } - - /** - * Parses the outgoing credentials from the browser to the server. - * - * @param credentials {Credential|PublicKeyCredential} - * @return {{response: {string}, rawId: string, id: string, type: string}} - */ - #parseOutgoingCredentials(credentials) - { - let parseCredentials = { - id: credentials.id, - type: credentials.type, - rawId: Larapass.#arrayToBase64String(credentials.rawId), - response: {}, - }; - - ['clientDataJSON', 'attestationObject', 'authenticatorData', 'signature', 'userHandle'] - .filter(key => credentials.response[key] !== undefined) - .forEach(key => { - parseCredentials.response[key] = Larapass.#arrayToBase64String(credentials.response[key]); - }) - - return parseCredentials; - } - - /** - * Checks if the browser supports WebAuthn. - * - * @returns {boolean} - */ - static supportsWebAuthn() - { - return typeof(PublicKeyCredential) != 'undefined'; - } - - /** - * Handles the response from the Server. - * - * Throws the entire response if is not OK (HTTP 2XX). - * - * @param response {Response} - * @returns Promise - * @throws Response - */ - static #handleResponse(response) - { - if (! response.ok) { - throw response; - } - - // Here we will do a small trick. Since most of the responses from the server - // are JSON, we will automatically parse the JSON body from the response. If - // it's not JSON, we will push the body verbatim and let the dev handle it. - return new Promise(resolve => { - response.json() - .then(json => resolve(json)) - .catch(() => resolve(response.body)) - }) - } - - /** - * Log in an user with his credentials. - * - * If no credentials are given, Larapass can return a blank assertion for typeless login. - * - * @param data {{string}} - * @param headers {{string}} - * @returns Promise - */ - async login(data = {}, headers = {}) - { - const optionsResponse = await this.#fetch(data, this.routes.loginOptions) - const json = await optionsResponse.json() - const publicKey = this.#parseIncomingServerOptions(json) - const credentials = await navigator.credentials.get({publicKey}) - const publicKeyCredential = this.#parseOutgoingCredentials(credentials) - - return await this.#fetch(publicKeyCredential, this.routes.login, headers) - .then(Larapass.#handleResponse); - } - - /** - * Register the user credentials from the browser/device. - * - * You can add data if you are planning to register an user with WebAuthn from scratch. - * - * @param data {{string}} - * @param headers {{string}} - * @returns Promise - */ - async register(data = {}, headers = {}) - { - const optionsResponse = await this.#fetch(data, this.routes.registerOptions) - const json = await optionsResponse.json() - const publicKey = this.#parseIncomingServerOptions(json) - const credentials = await navigator.credentials.create({publicKey}) - const publicKeyCredential = this.#parseOutgoingCredentials(credentials) - - return await this.#fetch(publicKeyCredential, this.routes.register, headers) - .then(Larapass.#handleResponse); - } -} \ No newline at end of file diff --git a/public/dist/WebAuthn.js b/public/dist/WebAuthn.js new file mode 100644 index 00000000000..ab32c4e681f --- /dev/null +++ b/public/dist/WebAuthn.js @@ -0,0 +1,356 @@ +/** + * MIT License + * + * Copyright (c) Italo Israel Baeza Cabrera + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + + class WebAuthn { + /** + * Routes for WebAuthn assertion (login) and attestation (register). + * + * @type {{registerOptions: string, register: string, loginOptions: string, login: string, }} + */ + #routes = { + registerOptions: "WebAuthn/register/options", + register: "WebAuthn/register", + loginOptions: "WebAuthn/login/options", + login: "WebAuthn/login", + } + + /** + * Headers to use in ALL requests done. + * + * @type {{Accept: string, "Content-Type": string, "X-Requested-With": string}} + */ + #headers = { + "Accept": "application/json", + "Content-Type": "application/json", + "X-Requested-With": "XMLHttpRequest" + }; + + /** + * If set to true, the credentials option will be set to 'include' on all fetch calls, + * or else it will use the default 'same-origin'. Use this if the backend is not the + * same origin as the client or the XSRF protection will break without the session. + * + * @type {boolean} + */ + #includeCredentials = false + + /** + * Create a new WebAuthn instance. + * + * @param routes {{registerOptions: string, register: string, loginOptions: string, login: string}} + * @param headers {{string}} + * @param includeCredentials {boolean} + * @param xcsrfToken {string|null} Either a csrf token (40 chars) or xsrfToken (224 chars) + */ + constructor(routes = {}, headers = {}, includeCredentials = false, xcsrfToken = null) { + Object.assign(this.#routes, routes); + Object.assign(this.#headers, headers); + + this.#includeCredentials = includeCredentials; + + let xsrfToken; + let csrfToken; + + if (xcsrfToken === null) { + // If the developer didn't issue an XSRF token, we will find it ourselves. + xsrfToken = WebAuthn.#XsrfToken; + csrfToken = WebAuthn.#firstInputWithCsrfToken; + } else{ + // Check if it is a CSRF or XSRF token + if (xcsrfToken.length === 40) { + csrfToken = xcsrfToken; + } else if (xcsrfToken.length === 224) { + xsrfToken = xcsrfToken; + } else { + throw new TypeError('CSRF token or XSRF token provided does not match requirements. Must be 40 or 224 characters.'); + } + } + + if (xsrfToken !== null) { + this.#headers["X-XSRF-TOKEN"] ??= xsrfToken; + } else if (csrfToken !== null) { + this.#headers["X-CSRF-TOKEN"] ??= csrfToken; + } else { + // We didn't find it, and since is required, we will bail out. + throw new TypeError('Ensure a CSRF/XSRF token is manually set, or provided in a cookie "XSRF-TOKEN" or or there is meta tag named "csrf-token".'); + } + } + + /** + * Returns the CSRF token if it exists as a form input tag. + * + * @returns string + * @throws TypeError + */ + static get #firstInputWithCsrfToken() { + // First, try finding an CSRF Token in the head. + let token = Array.from(document.head.getElementsByTagName("meta")) + .find(element => element.name === "csrf-token"); + + if (token) { + return token.content; + } + + // Then, try to find a hidden input containing the CSRF token. + token = Array.from(document.getElementsByTagName('input')) + .find(input => input.name === "_token" && input.type === "hidden") + + if (token) { + return token.value; + } + + return null; + } + + /** + * Returns the value of the XSRF token if it exists in a cookie. + * + * Inspired by https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#example_2_get_a_sample_cookie_named_test2 + * + * @returns {?string} + */ + static get #XsrfToken() { + const cookie = document.cookie.split(";").find((row) => /^\s*(X-)?[XC]SRF-TOKEN\s*=/.test(row)); + // We must remove all '%3D' from the end of the string. + // Background: + // The actual binary value of the CSFR value is encoded in Base64. + // If the length of original, binary value is not a multiple of 3 bytes, + // the encoding gets padded with `=` on the right; i.e. there might be + // zero, one or two `=` at the end of the encoded value. + // If the value is sent from the server to the client as part of a cookie, + // the `=` character is URL-encoded as `%3D`, because `=` is already used + // to separate a cookie key from its value. + // When we send back the value to the server as part of an AJAX request, + // Laravel expects an unpadded value. + // Hence, we must remove the `%3D`. + return cookie ? cookie.split("=")[1].trim().replaceAll("%3D", "") : null; + }; + + /** + * Returns a fetch promise to resolve later. + * + * @param data {Object} + * @param route {string} + * @param headers {{string}} + * @returns {Promise} + */ + #fetch(data, route, headers = {}) { + return fetch(route, { + method: "POST", + credentials: this.#includeCredentials ? "include" : "same-origin", + redirect: "error", + headers: {...this.#headers, ...headers}, + body: JSON.stringify(data) + }); + } + + /** + * Decodes a BASE64 URL string into a normal string. + * + * @param input {string} + * @returns {string|Iterable} + */ + static #base64UrlDecode(input) { + input = input.replace(/-/g, "+").replace(/_/g, "/"); + + const pad = input.length % 4; + + if (pad) { + if (pad === 1) { + throw new Error("InvalidLengthError: Input base64url string is the wrong length to determine padding"); + } + + input += new Array(5 - pad).join("="); + } + + return atob(input); + } + + /** + * Transform a string into Uint8Array instance. + * + * @param input {string} + * @param useAtob {boolean} + * @returns {Uint8Array} + */ + static #uint8Array(input, useAtob = false) { + return Uint8Array.from( + useAtob ? atob(input) : WebAuthn.#base64UrlDecode(input), c => c.charCodeAt(0) + ); + } + + /** + * Encodes an array of bytes to a BASE64 URL string + * + * @param arrayBuffer {ArrayBuffer|Uint8Array} + * @returns {string} + */ + static #arrayToBase64String(arrayBuffer) { + return btoa(String.fromCharCode(...new Uint8Array(arrayBuffer))); + } + + /** + * Parses the Public Key Options received from the Server for the browser. + * + * @param publicKey {Object} + * @returns {Object} + */ + #parseIncomingServerOptions(publicKey) { + console.debug(publicKey); + + publicKey.challenge = WebAuthn.#uint8Array(publicKey.challenge); + + if ('user' in publicKey) { + publicKey.user = { + ...publicKey.user, + id: WebAuthn.#uint8Array(publicKey.user.id) + }; + } + + [ + "excludeCredentials", + "allowCredentials" + ] + .filter(key => key in publicKey) + .forEach(key => { + publicKey[key] = publicKey[key].map(data => { + return {...data, id: WebAuthn.#uint8Array(data.id)}; + }); + }); + + return publicKey; + } + + /** + * Parses the outgoing credentials from the browser to the server. + * + * @param credentials {Credential|PublicKeyCredential} + * @return {{response: {string}, rawId: string, id: string, type: string}} + */ + #parseOutgoingCredentials(credentials) { + let parseCredentials = { + id: credentials.id, + type: credentials.type, + rawId: WebAuthn.#arrayToBase64String(credentials.rawId), + response: {} + }; + + [ + "clientDataJSON", + "attestationObject", + "authenticatorData", + "signature", + "userHandle" + ] + .filter(key => key in credentials.response) + .forEach(key => parseCredentials.response[key] = WebAuthn.#arrayToBase64String(credentials.response[key])); + + return parseCredentials; + } + + /** + * Handles the response from the Server. + * + * Throws the entire response if is not OK (HTTP 2XX). + * + * @param response {Response} + * @returns Promise + * @throws Response + */ + static #handleResponse(response) { + if (!response.ok) { + throw response; + } + + // Here we will do a small trick. Since most of the responses from the server + // are JSON, we will automatically parse the JSON body from the response. If + // it's not JSON, we will push the body verbatim and let the dev handle it. + return new Promise((resolve) => { + response + .json() + .then((json) => resolve(json)) + .catch(() => resolve(response.body)); + }); + } + + /** + * Register the user credentials from the browser/device. + * + * You can add request input if you are planning to register a user with WebAuthn from scratch. + * + * @param request {{string}} + * @param response {{string}} + * @returns Promise + */ + async register(request = {}, response = {}) { + const optionsResponse = await this.#fetch(request, this.#routes.registerOptions); + const json = await optionsResponse.json(); + const publicKey = this.#parseIncomingServerOptions(json); + const credentials = await navigator.credentials.create({publicKey}); + const publicKeyCredential = this.#parseOutgoingCredentials(credentials); + + Object.assign(publicKeyCredential, response); + + return await this.#fetch(publicKeyCredential, this.#routes.register).then(WebAuthn.#handleResponse); + } + + /** + * Log in a user with his credentials. + * + * If no credentials are given, the app may return a blank assertion for userless login. + * + * @param request {{string}} + * @param response {{string}} + * @returns Promise + */ + async login(request = {}, response = {}) { + const optionsResponse = await this.#fetch(request, this.#routes.loginOptions); + const json = await optionsResponse.json(); + const publicKey = this.#parseIncomingServerOptions(json); + const credentials = await navigator.credentials.get({publicKey}); + const publicKeyCredential = this.#parseOutgoingCredentials(credentials); + + Object.assign(publicKeyCredential, response); + + return await this.#fetch(publicKeyCredential, this.#routes.login, response).then(WebAuthn.#handleResponse); + } + + /** + * Checks if the browser supports WebAuthn. + * + * @returns {boolean} + */ + static supportsWebAuthn() { + return typeof PublicKeyCredential != "undefined"; + } + + /** + * Checks if the browser doesn't support WebAuthn. + * + * @returns {boolean} + */ + static doesntSupportWebAuthn() { + return !this.supportsWebAuthn(); + } +} diff --git a/public/dist/frame.js b/public/dist/frame.js index eae546b423f..b773879f7be 100644 --- a/public/dist/frame.js +++ b/public/dist/frame.js @@ -4,888 +4,7 @@ /*! lazysizes - v5.3.2 */ !function(e){var t=function(u,D,f){"use strict";var k,H;if(function(){var e;var t={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:true,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:true,ricTimeout:0,throttleDelay:125};H=u.lazySizesConfig||u.lazysizesConfig||{};for(e in t){if(!(e in H)){H[e]=t[e]}}}(),!D||!D.getElementsByClassName){return{init:function(){},cfg:H,noSupport:true}}var O=D.documentElement,i=u.HTMLPictureElement,P="addEventListener",$="getAttribute",q=u[P].bind(u),I=u.setTimeout,U=u.requestAnimationFrame||I,o=u.requestIdleCallback,j=/^picture$/i,r=["load","error","lazyincluded","_lazyloaded"],a={},G=Array.prototype.forEach,J=function(e,t){if(!a[t]){a[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")}return a[t].test(e[$]("class")||"")&&a[t]},K=function(e,t){if(!J(e,t)){e.setAttribute("class",(e[$]("class")||"").trim()+" "+t)}},Q=function(e,t){var a;if(a=J(e,t)){e.setAttribute("class",(e[$]("class")||"").replace(a," "))}},V=function(t,a,e){var i=e?P:"removeEventListener";if(e){V(t,a)}r.forEach(function(e){t[i](e,a)})},X=function(e,t,a,i,r){var n=D.createEvent("Event");if(!a){a={}}a.instance=k;n.initEvent(t,!i,!r);n.detail=a;e.dispatchEvent(n);return n},Y=function(e,t){var a;if(!i&&(a=u.picturefill||H.pf)){if(t&&t.src&&!e[$]("srcset")){e.setAttribute("srcset",t.src)}a({reevaluate:true,elements:[e]})}else if(t&&t.src){e.src=t.src}},Z=function(e,t){return(getComputedStyle(e,null)||{})[t]},s=function(e,t,a){a=a||e.offsetWidth;while(a49?function(){o(t,{timeout:n});if(n!==H.ricTimeout){n=H.ricTimeout}}:te(function(){I(t)},true);return function(e){var t;if(e=e===true){n=33}if(a){return}a=true;t=r-(f.now()-i);if(t<0){t=0}if(e||t<9){s()}else{I(s,t)}}},ie=function(e){var t,a;var i=99;var r=function(){t=null;e()};var n=function(){var e=f.now()-a;if(e0;if(r&&Z(i,"overflow")!="visible"){a=i.getBoundingClientRect();r=C>a.left&&pa.top-1&&g500&&O.clientWidth>500?500:370:H.expand;k._defEx=u;f=u*H.expFactor;c=H.hFac;A=null;if(w2&&h>2&&!D.hidden){w=f;N=0}else if(h>1&&N>1&&M<6){w=u}else{w=_}}if(l!==n){y=innerWidth+n*c;z=innerHeight+n;s=n*-1;l=n}a=d[t].getBoundingClientRect();if((b=a.bottom)>=s&&(g=a.top)<=z&&(C=a.right)>=s*c&&(p=a.left)<=y&&(b||C||p||g)&&(H.loadHidden||x(d[t]))&&(m&&M<3&&!o&&(h<3||N<4)||W(d[t],n))){R(d[t]);r=true;if(M>9){break}}else if(!r&&m&&!i&&M<4&&N<4&&h>2&&(v[0]||H.preloadAfterLoad)&&(v[0]||!o&&(b||C||p||g||d[t][$](H.sizesAttr)!="auto"))){i=v[0]||d[t]}}if(i&&!r){R(i)}}};var a=ae(t);var S=function(e){var t=e.target;if(t._lazyCache){delete t._lazyCache;return}L(e);K(t,H.loadedClass);Q(t,H.loadingClass);V(t,B);X(t,"lazyloaded")};var i=te(S);var B=function(e){i({target:e.target})};var T=function(e,t){var a=e.getAttribute("data-load-mode")||H.iframeLoadMode;if(a==0){e.contentWindow.location.replace(t)}else if(a==1){e.src=t}};var F=function(e){var t;var a=e[$](H.srcsetAttr);if(t=H.customMedia[e[$]("data-media")||e[$]("media")]){e.setAttribute("media",t)}if(a){e.setAttribute("srcset",a)}};var s=te(function(t,e,a,i,r){var n,s,o,l,u,f;if(!(u=X(t,"lazybeforeunveil",e)).defaultPrevented){if(i){if(a){K(t,H.autosizesClass)}else{t.setAttribute("sizes",i)}}s=t[$](H.srcsetAttr);n=t[$](H.srcAttr);if(r){o=t.parentNode;l=o&&j.test(o.nodeName||"")}f=e.firesLoad||"src"in t&&(s||n||l);u={target:t};K(t,H.loadingClass);if(f){clearTimeout(c);c=I(L,2500);V(t,B,true)}if(l){G.call(o.getElementsByTagName("source"),F)}if(s){t.setAttribute("srcset",s)}else if(n&&!l){if(d.test(t.nodeName)){T(t,n)}else{t.src=n}}if(r&&(s||l)){Y(t,{src:n})}}if(t._lazyRace){delete t._lazyRace}Q(t,H.lazyClass);ee(function(){var e=t.complete&&t.naturalWidth>1;if(!f||e){if(e){K(t,H.fastLoadedClass)}S(u);t._lazyCache=true;I(function(){if("_lazyCache"in t){delete t._lazyCache}},9)}if(t.loading=="lazy"){M--}},true)});var R=function(e){if(e._lazyRace){return}var t;var a=n.test(e.nodeName);var i=a&&(e[$](H.sizesAttr)||e[$]("sizes"));var r=i=="auto";if((r||!m)&&a&&(e[$]("src")||e.srcset)&&!e.complete&&!J(e,H.errorClass)&&J(e,H.lazyClass)){return}t=X(e,"lazyunveilread").detail;if(r){re.updateElem(e,true,e.offsetWidth)}e._lazyRace=true;M++;s(e,t,r,i,a)};var r=ie(function(){H.loadMode=3;a()});var o=function(){if(H.loadMode==3){H.loadMode=2}r()};var l=function(){if(m){return}if(f.now()-e<999){I(l,999);return}m=true;H.loadMode=3;a();q("scroll",o,true)};return{_:function(){e=f.now();k.elements=D.getElementsByClassName(H.lazyClass);v=D.getElementsByClassName(H.lazyClass+" "+H.preloadClass);q("scroll",a,true);q("resize",a,true);q("pageshow",function(e){if(e.persisted){var t=D.querySelectorAll("."+H.loadingClass);if(t.length&&t.forEach){U(function(){t.forEach(function(e){if(e.complete){R(e)}})})}}});if(u.MutationObserver){new MutationObserver(a).observe(O,{childList:true,subtree:true,attributes:true})}else{O[P]("DOMNodeInserted",a,true);O[P]("DOMAttrModified",a,true);setInterval(a,999)}q("hashchange",a,true);["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){D[P](e,a,true)});if(/d$|^c/.test(D.readyState)){l()}else{q("load",l);D[P]("DOMContentLoaded",a);I(l,2e4)}if(k.elements.length){t();ee._lsFlush()}else{a()}},checkElems:a,unveil:R,_aLSL:o}}(),re=function(){var a;var n=te(function(e,t,a,i){var r,n,s;e._lazysizesWidth=i;i+="px";e.setAttribute("sizes",i);if(j.test(t.nodeName||"")){r=t.getElementsByTagName("source");for(n=0,s=r.length;n> K), - 0 !== j - ? ((j = 255 / j), (T[b] = ((y * J) >> K) * j), (T[b + 1] = ((p * J) >> K) * j), (T[b + 2] = ((m * J) >> K) * j)) - : (T[b] = T[b + 1] = T[b + 2] = 0), - (y -= v), - (p -= w), - (m -= B), - (h -= C), - (v -= z.r), - (w -= z.g), - (B -= z.b), - (C -= z.a), - (s = (d + ((s = g + f + 1) < _ ? s : _)) << 2), - (y += E += z.r = T[s]), - (p += I += z.g = T[s + 1]), - (m += S += z.b = T[s + 2]), - (h += N += z.a = T[s + 3]), - (z = z.next), - (v += R = F.r), - (w += D = F.g), - (B += G = F.b), - (C += j = F.a), - (E -= R), - (I -= D), - (S -= G), - (N -= j), - (F = F.next), - (b += 4); - d += a; - } - for (g = 0; g < a; g++) { - for ( - I = S = N = E = p = m = h = y = 0, - v = M * (R = T[(b = g << 2)]), - w = M * (D = T[b + 1]), - B = M * (G = T[b + 2]), - C = M * (j = T[b + 3]), - y += O * R, - p += O * D, - m += O * G, - h += O * j, - q = P, - l = 0; - l < M; - l++ - ) - (q.r = R), (q.g = D), (q.b = G), (q.a = j), (q = q.next); - for (x = a, l = 1; l <= f; l++) - (b = (x + g) << 2), - (y += (q.r = R = T[b]) * (A = M - l)), - (p += (q.g = D = T[b + 1]) * A), - (m += (q.b = G = T[b + 2]) * A), - (h += (q.a = j = T[b + 3]) * A), - (E += R), - (I += D), - (S += G), - (N += j), - (q = q.next), - l < H && (x += a); - for (b = g, z = P, F = k, c = 0; c < i; c++) - (T[(s = b << 2) + 3] = j = (h * J) >> K), - j > 0 - ? ((j = 255 / j), (T[s] = ((y * J) >> K) * j), (T[s + 1] = ((p * J) >> K) * j), (T[s + 2] = ((m * J) >> K) * j)) - : (T[s] = T[s + 1] = T[s + 2] = 0), - (y -= v), - (p -= w), - (m -= B), - (h -= C), - (v -= z.r), - (w -= z.g), - (B -= z.b), - (C -= z.a), - (s = (g + ((s = c + M) < H ? s : H) * a) << 2), - (y += E += z.r = T[s]), - (p += I += z.g = T[s + 1]), - (m += S += z.b = T[s + 2]), - (h += N += z.a = T[s + 3]), - (z = z.next), - (v += R = F.r), - (w += D = F.g), - (B += G = F.b), - (C += j = F.a), - (E -= R), - (I -= D), - (S -= G), - (N -= j), - (F = F.next), - (b += a); - } - return t; - } - function f(t, e, n, r, a, i) { - if (!(isNaN(i) || i < 1)) { - i |= 0; - var f = o(t, e, n, r, a); - (f = g(f, e, n, r, a, i)), t.getContext("2d").putImageData(f, e, n); - } - } - function g(t, e, o, a, i, f) { - var g, - c, - l, - s, - x, - b, - d, - y, - p, - m, - h, - v, - w, - B, - C, - E, - I, - S, - N, - R, - D, - G = t.data, - j = 2 * f + 1, - A = a - 1, - k = i - 1, - T = f + 1, - W = (T * (T + 1)) / 2, - _ = new u(), - H = _; - for (l = 1; l < j; l++) (H = H.next = new u()), l === T && (D = H); - H.next = _; - var M = null, - O = null; - d = b = 0; - var P = n[f], - q = r[f]; - for (c = 0; c < i; c++) { - for ( - B = C = E = y = p = m = 0, - h = T * (I = G[b]), - v = T * (S = G[b + 1]), - w = T * (N = G[b + 2]), - y += W * I, - p += W * S, - m += W * N, - H = _, - l = 0; - l < T; - l++ - ) - (H.r = I), (H.g = S), (H.b = N), (H = H.next); - for (l = 1; l < T; l++) - (s = b + ((A < l ? A : l) << 2)), - (y += (H.r = I = G[s]) * (R = T - l)), - (p += (H.g = S = G[s + 1]) * R), - (m += (H.b = N = G[s + 2]) * R), - (B += I), - (C += S), - (E += N), - (H = H.next); - for (M = _, O = D, g = 0; g < a; g++) - (G[b] = (y * P) >> q), - (G[b + 1] = (p * P) >> q), - (G[b + 2] = (m * P) >> q), - (y -= h), - (p -= v), - (m -= w), - (h -= M.r), - (v -= M.g), - (w -= M.b), - (s = (d + ((s = g + f + 1) < A ? s : A)) << 2), - (y += B += M.r = G[s]), - (p += C += M.g = G[s + 1]), - (m += E += M.b = G[s + 2]), - (M = M.next), - (h += I = O.r), - (v += S = O.g), - (w += N = O.b), - (B -= I), - (C -= S), - (E -= N), - (O = O.next), - (b += 4); - d += a; - } - for (g = 0; g < a; g++) { - for ( - C = E = B = p = m = y = 0, - h = T * (I = G[(b = g << 2)]), - v = T * (S = G[b + 1]), - w = T * (N = G[b + 2]), - y += W * I, - p += W * S, - m += W * N, - H = _, - l = 0; - l < T; - l++ - ) - (H.r = I), (H.g = S), (H.b = N), (H = H.next); - for (x = a, l = 1; l <= f; l++) - (b = (x + g) << 2), - (y += (H.r = I = G[b]) * (R = T - l)), - (p += (H.g = S = G[b + 1]) * R), - (m += (H.b = N = G[b + 2]) * R), - (B += I), - (C += S), - (E += N), - (H = H.next), - l < k && (x += a); - for (b = g, M = _, O = D, c = 0; c < i; c++) - (G[(s = b << 2)] = (y * P) >> q), - (G[s + 1] = (p * P) >> q), - (G[s + 2] = (m * P) >> q), - (y -= h), - (p -= v), - (m -= w), - (h -= M.r), - (v -= M.g), - (w -= M.b), - (s = (g + ((s = c + T) < k ? s : k) * a) << 2), - (y += B += M.r = G[s]), - (p += C += M.g = G[s + 1]), - (m += E += M.b = G[s + 2]), - (M = M.next), - (h += I = O.r), - (v += S = O.g), - (w += N = O.b), - (B -= I), - (C -= S), - (E -= N), - (O = O.next), - (b += a); - } - return t; - } - var u = function t() { - !(function (t, e) { - if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function"); - })(this, t), - (this.r = 0), - (this.g = 0), - (this.b = 0), - (this.a = 0), - (this.next = null); - }; - (t.BlurStack = u), - (t.image = function (t, e, n, r) { - if (("string" == typeof t && (t = document.getElementById(t)), t && "naturalWidth" in t)) { - var o = t.naturalWidth, - i = t.naturalHeight; - if (("string" == typeof e && (e = document.getElementById(e)), e && "getContext" in e)) { - (e.style.width = o + "px"), (e.style.height = i + "px"), (e.width = o), (e.height = i); - var g = e.getContext("2d"); - g.clearRect(0, 0, o, i), g.drawImage(t, 0, 0), isNaN(n) || n < 1 || (r ? a(e, 0, 0, o, i, n) : f(e, 0, 0, o, i, n)); - } - } - }), - (t.canvasRGBA = a), - (t.canvasRGB = f), - (t.imageDataRGBA = i), - (t.imageDataRGB = g), - Object.defineProperty(t, "__esModule", { value: !0 }); -}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).StackBlur={})}(this,(function(t){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var r=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],n=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function a(t,r,n,a,o){if("string"==typeof t&&(t=document.getElementById(t)),!t||"object"!==e(t)||!("getContext"in t))throw new TypeError("Expecting canvas with `getContext` method in processCanvasRGB(A) calls!");var i=t.getContext("2d");try{return i.getImageData(r,n,a,o)}catch(t){throw new Error("unable to access image data: "+t)}}function o(t,e,r,n,o,f){if(!(isNaN(f)||f<1)){f|=0;var g=a(t,e,r,n,o);g=i(g,e,r,n,o,f),t.getContext("2d").putImageData(g,e,r)}}function i(t,e,a,o,i,f){for(var g,l=t.data,c=2*f+1,s=o-1,v=i-1,b=f+1,x=b*(b+1)/2,d=new u,y=d,h=1;h>E;if(l[B+3]=Y,0!==Y){var Z=255/Y;l[B]=(O*C>>E)*Z,l[B+1]=(P*C>>E)*Z,l[B+2]=(q*C>>E)*Z}else l[B]=l[B+1]=l[B+2]=0;O-=k,P-=H,q-=_,z-=M,k-=p.r,H-=p.g,_-=p.b,M-=p.a;var $=X+f+1;$=w+($>E,ut>0?(ut=255/ut,l[Nt]=(bt*C>>E)*ut,l[Nt+1]=(xt*C>>E)*ut,l[Nt+2]=(dt*C>>E)*ut):l[Nt]=l[Nt+1]=l[Nt+2]=0,bt-=lt,xt-=ct,dt-=st,yt-=vt,lt-=p.r,ct-=p.g,st-=p.b,vt-=p.a,Nt=ot+((Nt=St+b)>E,l[S+1]=k*C>>E,l[S+2]=H*C>>E,W-=T,k-=j,H-=A,T-=w.r,j-=w.g,A-=w.b,p=I+((p=z+f+1)>E,l[p+1]=Y*C>>E,l[p+2]=Z*C>>E,X-=Q,Y-=U,Z-=V,Q-=w.r,U-=w.g,V-=w.b,p=F+((p=ot+b)$", ""], ["$", ""]), _templateObject21 = _taggedTemplateLiteral(["
", "
"], ["
", "
"]), _templateObject22 = _taggedTemplateLiteral(["
\n\t\t\t

\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t

\n\t\t\tSave\n\t\t\tDelete\n\t\t
\n\t\t"], ["
\n\t\t\t

\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t

\n\t\t\tSave\n\t\t\tDelete\n\t\t
\n\t\t"]), - _templateObject23 = _taggedTemplateLiteral(["
\n\t\t\t

\n\t\t\t\n\t\t\t", "\n\t\t\t\n\t\t\t

\n\t\t\tDelete\n\t\t
\n\t\t"], ["
\n\t\t\t

\n\t\t\t\n\t\t\t", "\n\t\t\t\n\t\t\t

\n\t\t\tDelete\n\t\t
\n\t\t"]), + _templateObject23 = _taggedTemplateLiteral(["
\n\t\t\t

\n\t\t\t\n\t\t\t", "\n\t\t\t\n\t\t\t

\n\t\t\tDelete\n\t\t
\n\t\t"], ["
\n\t\t\t

\n\t\t\t\n\t\t\t", "\n\t\t\t\n\t\t\t

\n\t\t\tDelete\n\t\t
\n\t\t"]), _templateObject24 = _taggedTemplateLiteral(["\n\t\t\t ", "\n\t\t\t \"thumbnail\"\n\t\t\t
$", "
\n\t\t\t "], ["\n\t\t\t ", "\n\t\t\t \"thumbnail\"\n\t\t\t
$", "
\n\t\t\t "]), _templateObject25 = _taggedTemplateLiteral(["$", "", ""], ["$", "", ""]), _templateObject26 = _taggedTemplateLiteral(["\n\t\t", "\n\t\t×\n\t\t", ""], ["\n\t\t", "\n\t\t×\n\t\t", ""]), @@ -5982,11 +5982,11 @@ lychee.parseProtectedInitializationData = function (data) { */ lychee.login = function (data) { if (!data.username.trim()) { - basicModal.error("username"); + basicModal.focusError("username"); return; } if (!data.password.trim()) { - basicModal.error("password"); + basicModal.focusError("password"); return; } @@ -5994,7 +5994,7 @@ lychee.login = function (data) { return window.location.reload(); }, null, function (jqXHR) { if (jqXHR.status === 401) { - basicModal.error("password"); + basicModal.focusError("password"); return true; } else { return false; @@ -11280,10 +11280,10 @@ u2f.login = function () { return; } - new Larapass({ + new WebAuthn({ login: "/api/WebAuthn::login", - loginOptions: "/api/WebAuthn::login/gen" - }).login({ + loginOptions: "/api/WebAuthn::login/options" + }, {}, false).login({ user_id: 0 // for now it is only available to Admin user via a secret key shortcut. }).then(function () { loadingBar.show("success", lychee.locale["U2F_AUTHENTIFICATION_SUCCESS"]); @@ -11301,12 +11301,12 @@ u2f.register = function () { return; } - var larapass = new Larapass({ + var webauthn = new WebAuthn({ register: "/api/WebAuthn::register", - registerOptions: "/api/WebAuthn::register/gen" - }); - if (Larapass.supportsWebAuthn()) { - larapass.register().then(function () { + registerOptions: "/api/WebAuthn::register/options" + }, {}, false); + if (WebAuthn.supportsWebAuthn()) { + webauthn.register().then(function () { loadingBar.show("success", lychee.locale["U2F_REGISTRATION_SUCCESS"]); u2f.list(); // reload credential list }).catch(function () { diff --git a/public/dist/view.js b/public/dist/view.js index 22c635862ec..285a6457eee 100644 --- a/public/dist/view.js +++ b/public/dist/view.js @@ -34,7 +34,7 @@ var _templateObject = _taggedTemplateLiteral(["$", ""], ["$", ""]), _templateObject21 = _taggedTemplateLiteral(["
", "
"], ["
", "
"]), _templateObject22 = _taggedTemplateLiteral(["
\n\t\t\t

\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t

\n\t\t\tSave\n\t\t\tDelete\n\t\t
\n\t\t"], ["
\n\t\t\t

\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t

\n\t\t\tSave\n\t\t\tDelete\n\t\t
\n\t\t"]), - _templateObject23 = _taggedTemplateLiteral(["
\n\t\t\t

\n\t\t\t\n\t\t\t", "\n\t\t\t\n\t\t\t

\n\t\t\tDelete\n\t\t
\n\t\t"], ["
\n\t\t\t

\n\t\t\t\n\t\t\t", "\n\t\t\t\n\t\t\t

\n\t\t\tDelete\n\t\t
\n\t\t"]), + _templateObject23 = _taggedTemplateLiteral(["
\n\t\t\t

\n\t\t\t\n\t\t\t", "\n\t\t\t\n\t\t\t

\n\t\t\tDelete\n\t\t
\n\t\t"], ["
\n\t\t\t

\n\t\t\t\n\t\t\t", "\n\t\t\t\n\t\t\t

\n\t\t\tDelete\n\t\t
\n\t\t"]), _templateObject24 = _taggedTemplateLiteral(["$", "", ""], ["$", "", ""]), _templateObject25 = _taggedTemplateLiteral(["\n\t\t\t\t \n\t\t\t\t \n\t\t\t\t "], ["\n\t\t\t\t \n\t\t\t\t
\n\t\t\t\t "]), _templateObject26 = _taggedTemplateLiteral([", "], [", "]), diff --git a/resources/js/vendor/webauthn/webauthn.js b/resources/js/vendor/webauthn/webauthn.js new file mode 100644 index 00000000000..a5301930d47 --- /dev/null +++ b/resources/js/vendor/webauthn/webauthn.js @@ -0,0 +1,356 @@ +/** + * MIT License + * + * Copyright (c) Italo Israel Baeza Cabrera + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +class WebAuthn { + /** + * Routes for WebAuthn assertion (login) and attestation (register). + * + * @type {{registerOptions: string, register: string, loginOptions: string, login: string, }} + */ + #routes = { + registerOptions: "webauthn::register/options", + register: "webauthn::register", + loginOptions: "webauthn::login/options", + login: "webauthn::login", + } + + /** + * Headers to use in ALL requests done. + * + * @type {{Accept: string, "Content-Type": string, "X-Requested-With": string}} + */ + #headers = { + "Accept": "application/json", + "Content-Type": "application/json", + "X-Requested-With": "XMLHttpRequest" + }; + + /** + * If set to true, the credentials option will be set to 'include' on all fetch calls, + * or else it will use the default 'same-origin'. Use this if the backend is not the + * same origin as the client or the XSRF protection will break without the session. + * + * @type {boolean} + */ + #includeCredentials = false + + /** + * Create a new WebAuthn instance. + * + * @param routes {{registerOptions: string, register: string, loginOptions: string, login: string}} + * @param headers {{string}} + * @param includeCredentials {boolean} + * @param xcsrfToken {string|null} Either a csrf token (40 chars) or xsrfToken (224 chars) + */ + constructor(routes = {}, headers = {}, includeCredentials = false, xcsrfToken = null) { + Object.assign(this.#routes, routes); + Object.assign(this.#headers, headers); + + this.#includeCredentials = includeCredentials; + + let xsrfToken; + let csrfToken; + + if (xcsrfToken === null) { + // If the developer didn't issue an XSRF token, we will find it ourselves. + xsrfToken = WebAuthn.#XsrfToken; + csrfToken = WebAuthn.#firstInputWithCsrfToken; + } else{ + // Check if it is a CSRF or XSRF token + if (xcsrfToken.length === 40) { + csrfToken = xcsrfToken; + } else if (xcsrfToken.length === 224) { + xsrfToken = xcsrfToken; + } else { + throw new TypeError('CSRF token or XSRF token provided does not match requirements. Must be 40 or 224 characters.'); + } + } + + if (xsrfToken !== null) { + this.#headers["X-XSRF-TOKEN"] ??= xsrfToken; + } else if (csrfToken !== null) { + this.#headers["X-CSRF-TOKEN"] ??= csrfToken; + } else { + // We didn't find it, and since is required, we will bail out. + throw new TypeError('Ensure a CSRF/XSRF token is manually set, or provided in a cookie "XSRF-TOKEN" or or there is meta tag named "csrf-token".'); + } + } + + /** + * Returns the CSRF token if it exists as a form input tag. + * + * @returns string + * @throws TypeError + */ + static get #firstInputWithCsrfToken() { + // First, try finding an CSRF Token in the head. + let token = Array.from(document.head.getElementsByTagName("meta")) + .find(element => element.name === "csrf-token"); + + if (token) { + return token.content; + } + + // Then, try to find a hidden input containing the CSRF token. + token = Array.from(document.getElementsByTagName('input')) + .find(input => input.name === "_token" && input.type === "hidden") + + if (token) { + return token.value; + } + + return null; + } + + /** + * Returns the value of the XSRF token if it exists in a cookie. + * + * Inspired by https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#example_2_get_a_sample_cookie_named_test2 + * + * @returns {?string} + */ + static get #XsrfToken() { + const cookie = document.cookie.split(";").find((row) => /^\s*(X-)?[XC]SRF-TOKEN\s*=/.test(row)); + // We must remove all '%3D' from the end of the string. + // Background: + // The actual binary value of the CSFR value is encoded in Base64. + // If the length of original, binary value is not a multiple of 3 bytes, + // the encoding gets padded with `=` on the right; i.e. there might be + // zero, one or two `=` at the end of the encoded value. + // If the value is sent from the server to the client as part of a cookie, + // the `=` character is URL-encoded as `%3D`, because `=` is already used + // to separate a cookie key from its value. + // When we send back the value to the server as part of an AJAX request, + // Laravel expects an unpadded value. + // Hence, we must remove the `%3D`. + return cookie ? cookie.split("=")[1].trim().replaceAll("%3D", "") : null; + }; + + /** + * Returns a fetch promise to resolve later. + * + * @param data {Object} + * @param route {string} + * @param headers {{string}} + * @returns {Promise} + */ + #fetch(data, route, headers = {}) { + return fetch(route, { + method: "POST", + credentials: this.#includeCredentials ? "include" : "same-origin", + redirect: "error", + headers: {...this.#headers, ...headers}, + body: JSON.stringify(data) + }); + } + + /** + * Decodes a BASE64 URL string into a normal string. + * + * @param input {string} + * @returns {string|Iterable} + */ + static #base64UrlDecode(input) { + input = input.replace(/-/g, "+").replace(/_/g, "/"); + + const pad = input.length % 4; + + if (pad) { + if (pad === 1) { + throw new Error("InvalidLengthError: Input base64url string is the wrong length to determine padding"); + } + + input += new Array(5 - pad).join("="); + } + + return atob(input); + } + + /** + * Transform a string into Uint8Array instance. + * + * @param input {string} + * @param useAtob {boolean} + * @returns {Uint8Array} + */ + static #uint8Array(input, useAtob = false) { + return Uint8Array.from( + useAtob ? atob(input) : WebAuthn.#base64UrlDecode(input), c => c.charCodeAt(0) + ); + } + + /** + * Encodes an array of bytes to a BASE64 URL string + * + * @param arrayBuffer {ArrayBuffer|Uint8Array} + * @returns {string} + */ + static #arrayToBase64String(arrayBuffer) { + return btoa(String.fromCharCode(...new Uint8Array(arrayBuffer))); + } + + /** + * Parses the Public Key Options received from the Server for the browser. + * + * @param publicKey {Object} + * @returns {Object} + */ + #parseIncomingServerOptions(publicKey) { + console.debug(publicKey); + + publicKey.challenge = WebAuthn.#uint8Array(publicKey.challenge); + + if ('user' in publicKey) { + publicKey.user = { + ...publicKey.user, + id: WebAuthn.#uint8Array(publicKey.user.id) + }; + } + + [ + "excludeCredentials", + "allowCredentials" + ] + .filter(key => key in publicKey) + .forEach(key => { + publicKey[key] = publicKey[key].map(data => { + return {...data, id: WebAuthn.#uint8Array(data.id)}; + }); + }); + + return publicKey; + } + + /** + * Parses the outgoing credentials from the browser to the server. + * + * @param credentials {Credential|PublicKeyCredential} + * @return {{response: {string}, rawId: string, id: string, type: string}} + */ + #parseOutgoingCredentials(credentials) { + let parseCredentials = { + id: credentials.id, + type: credentials.type, + rawId: WebAuthn.#arrayToBase64String(credentials.rawId), + response: {} + }; + + [ + "clientDataJSON", + "attestationObject", + "authenticatorData", + "signature", + "userHandle" + ] + .filter(key => key in credentials.response) + .forEach(key => parseCredentials.response[key] = WebAuthn.#arrayToBase64String(credentials.response[key])); + + return parseCredentials; + } + + /** + * Handles the response from the Server. + * + * Throws the entire response if is not OK (HTTP 2XX). + * + * @param response {Response} + * @returns Promise + * @throws Response + */ + static #handleResponse(response) { + if (!response.ok) { + throw response; + } + + // Here we will do a small trick. Since most of the responses from the server + // are JSON, we will automatically parse the JSON body from the response. If + // it's not JSON, we will push the body verbatim and let the dev handle it. + return new Promise((resolve) => { + response + .json() + .then((json) => resolve(json)) + .catch(() => resolve(response.body)); + }); + } + + /** + * Register the user credentials from the browser/device. + * + * You can add request input if you are planning to register a user with WebAuthn from scratch. + * + * @param request {{string}} + * @param response {{string}} + * @returns Promise + */ + async register(request = {}, response = {}) { + const optionsResponse = await this.#fetch(request, this.#routes.registerOptions); + const json = await optionsResponse.json(); + const publicKey = this.#parseIncomingServerOptions(json); + const credentials = await navigator.credentials.create({publicKey}); + const publicKeyCredential = this.#parseOutgoingCredentials(credentials); + + Object.assign(publicKeyCredential, response); + + return await this.#fetch(publicKeyCredential, this.#routes.register).then(WebAuthn.#handleResponse); + } + + /** + * Log in a user with his credentials. + * + * If no credentials are given, the app may return a blank assertion for userless login. + * + * @param request {{string}} + * @param response {{string}} + * @returns Promise + */ + async login(request = {}, response = {}) { + const optionsResponse = await this.#fetch(request, this.#routes.loginOptions); + const json = await optionsResponse.json(); + const publicKey = this.#parseIncomingServerOptions(json); + const credentials = await navigator.credentials.get({publicKey}); + const publicKeyCredential = this.#parseOutgoingCredentials(credentials); + + Object.assign(publicKeyCredential, response); + + return await this.#fetch(publicKeyCredential, this.#routes.login, response).then(WebAuthn.#handleResponse); + } + + /** + * Checks if the browser supports WebAuthn. + * + * @returns {boolean} + */ + static supportsWebAuthn() { + return typeof PublicKeyCredential != "undefined"; + } + + /** + * Checks if the browser doesn't support WebAuthn. + * + * @returns {boolean} + */ + static doesntSupportWebAuthn() { + return !this.supportsWebAuthn(); + } +} diff --git a/resources/views/includes/head.blade.php b/resources/views/includes/head.blade.php index 369cff467dd..5eecde58621 100644 --- a/resources/views/includes/head.blade.php +++ b/resources/views/includes/head.blade.php @@ -17,6 +17,6 @@ @include('feed::links') @endif - + @yield('head-meta') diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 3a05d4925ac..58e46f04aab 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -26,7 +26,7 @@ @include('feed::links') @endif --}} - + @yield('head-meta') @livewireStyles diff --git a/routes/api.php b/routes/api.php index 58150441c5c..b245f48cef0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -94,9 +94,14 @@ Route::post('/Sharing::setByAlbum', [Administration\SharingController::class, 'setByAlbum']); Route::post('/Sharing::delete', [Administration\SharingController::class, 'delete']); -Route::post('/WebAuthn::register/gen', [Administration\WebAuthController::class, 'generateRegistration']); -Route::post('/WebAuthn::register', [Administration\WebAuthController::class, 'verifyRegistration']); -Route::post('/WebAuthn::login/gen', [Administration\WebAuthController::class, 'generateAuthentication']); -Route::post('/WebAuthn::login', [Administration\WebAuthController::class, 'verifyAuthentication']); -Route::post('/WebAuthn::list', [Administration\WebAuthController::class, 'list'])->middleware(['admin']); -Route::post('/WebAuthn::delete', [Administration\WebAuthController::class, 'delete'])->middleware(['admin']); +// WebAuthn Routes +Route::post('/WebAuthn::list', [WebAuthn\WebAuthnManageController::class, 'list']); +Route::post('/WebAuthn::delete', [WebAuthn\WebAuthnManageController::class, 'delete']); +Route::post('/WebAuthn::register/options', [\App\Http\Controllers\WebAuthn\WebAuthnRegisterController::class, 'options']) + ->name('webauthn.register.options'); +Route::post('/WebAuthn::register', [\App\Http\Controllers\WebAuthn\WebAuthnRegisterController::class, 'register']) + ->name('webauthn.register'); +Route::post('/WebAuthn::login/options', [\App\Http\Controllers\WebAuthn\WebAuthnLoginController::class, 'options']) + ->name('webauthn.login.options'); +Route::post('/WebAuthn::login', [\App\Http\Controllers\WebAuthn\WebAuthnLoginController::class, 'login']) + ->name('webauthn.login'); diff --git a/scripts/gen_release.php b/scripts/gen_release.php index feb7063e918..77705eba714 100755 --- a/scripts/gen_release.php +++ b/scripts/gen_release.php @@ -8,8 +8,6 @@ use function Safe\file_get_contents; use function Safe\file_put_contents; use function Safe\scandir; -use function Safe\sprintf; -use function Safe\substr; /** * Template for migration. @@ -66,8 +64,8 @@ function get_version(): array /** * Given the current version and the update array return the new version number. * - * @param array $curr_version : current version number - * @param string $kind : 'minor' or 'major' + * @param array $curr_version current version number + * @param string $kind 'minor' or 'major' * * @return array */ diff --git a/server.php b/server.php deleted file mode 100644 index 5fb6379e71f..00000000000 --- a/server.php +++ /dev/null @@ -1,21 +0,0 @@ - - */ - -$uri = urldecode( - parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) -); - -// This file allows us to emulate Apache's "mod_rewrite" functionality from the -// built-in PHP web server. This provides a convenient way to test a Laravel -// application without having installed a "real" web server software here. -if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { - return false; -} - -require_once __DIR__.'/public/index.php'; diff --git a/tests/Feature/Base/SharingTestBase.php b/tests/Feature/Base/SharingTestBase.php index 8f2b28eca4d..f5951f05f77 100644 --- a/tests/Feature/Base/SharingTestBase.php +++ b/tests/Feature/Base/SharingTestBase.php @@ -48,7 +48,7 @@ class SharingTestBase extends PhotoTestBase public const USER_PWD_2 = 'User Password 2'; public const USER_PWD_3 = 'User Password 3'; - /** @var array[] defines the expected JSON result for each sample image such that we can avoid repeating this again and again during the tests */ + /** @var array[] EXPECTED_PHOTO_JSON defines the expected JSON result for each sample image such that we can avoid repeating this again and again during the tests */ public const EXPECTED_PHOTO_JSON = [ TestCase::SAMPLE_FILE_NIGHT_IMAGE => [ 'id' => null, diff --git a/tests/Feature/InstallTest.php b/tests/Feature/InstallTest.php index ecf5dae1d8a..50df8baada0 100644 --- a/tests/Feature/InstallTest.php +++ b/tests/Feature/InstallTest.php @@ -68,7 +68,7 @@ public function testInstall(): void 'tag_albums', 'albums', 'base_albums', - 'web_authn_credentials', + 'webauthn_credentials', 'users', ]; diff --git a/tests/Feature/PhotosAddNegativeTest.php b/tests/Feature/PhotosAddNegativeTest.php index 07337b6b4a8..b6cb0604d4d 100644 --- a/tests/Feature/PhotosAddNegativeTest.php +++ b/tests/Feature/PhotosAddNegativeTest.php @@ -69,7 +69,7 @@ public function testUploadWithReadOnlyStorage(): void TestCase::createUploadedFile(TestCase::SAMPLE_FILE_NIGHT_IMAGE), null, 500, - 'Impossible to create the root directory' + 'Unable to create a directory' ); } diff --git a/tests/Feature/PhotosOperationsTest.php b/tests/Feature/PhotosOperationsTest.php index 9b94dd3b6b6..9294130d652 100644 --- a/tests/Feature/PhotosOperationsTest.php +++ b/tests/Feature/PhotosOperationsTest.php @@ -84,7 +84,7 @@ public function testManyFunctionsAtOnce(): void $this->photos_tests->set_star([$id], true); $this->photos_tests->set_tag([$id], ['night']); $this->photos_tests->set_public($id, true); - $this->photos_tests->set_license($id, 'WTFPL', 422, 'The given data was invalid'); + $this->photos_tests->set_license($id, 'WTFPL', 422, 'license must be one out of'); $this->photos_tests->set_license($id, 'CC0'); $this->photos_tests->set_license($id, 'CC-BY-1.0'); $this->photos_tests->set_license($id, 'CC-BY-2.0'); diff --git a/tests/Feature/Traits/InteractsWithFilesystemPermissions.php b/tests/Feature/Traits/InteractsWithFilesystemPermissions.php index 5d99e0455dc..37c38c29d78 100644 --- a/tests/Feature/Traits/InteractsWithFilesystemPermissions.php +++ b/tests/Feature/Traits/InteractsWithFilesystemPermissions.php @@ -13,7 +13,6 @@ namespace Tests\Feature\Traits; use function Safe\fileowner; -use function Safe\sprintf; trait InteractsWithFilesystemPermissions { diff --git a/tests/Feature/WebAuthTest.php b/tests/Feature/WebAuthTest.php index 3c4c6e8cc93..0362068eb2e 100644 --- a/tests/Feature/WebAuthTest.php +++ b/tests/Feature/WebAuthTest.php @@ -13,9 +13,9 @@ namespace Tests\Feature; use App\Models\User; -use DarkGhostHunter\Larapass\Eloquent\WebAuthnCredential; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Session; +use Laragear\WebAuthn\Models\WebAuthnCredential; use Tests\TestCase; class WebAuthTest extends TestCase @@ -29,7 +29,7 @@ public function testWebAuthTest(): void { Auth::loginUsingId(0); - $response = $this->postJson('/api/WebAuthn::register/gen'); + $response = $this->postJson('/api/WebAuthn::register/options'); $response->assertOk(); $response = $this->postJson('/api/WebAuthn::register', [ @@ -41,12 +41,12 @@ public function testWebAuthTest(): void ], 'type' => 'public-key', ]); - $response->assertForbidden(); + $response->assertStatus(422); Auth::logout(); Session::flush(); - $response = $this->postJson('/api/WebAuthn::login/gen', ['user_id' => 0]); + $response = $this->postJson('/api/WebAuthn::login/options', ['user_id' => 0]); $response->assertOk(); $response = $this->postJson('/api/WebAuthn::login', [ @@ -60,34 +60,36 @@ public function testWebAuthTest(): void ], 'type' => 'public-key', ]); - $response->assertUnauthorized(); - - Auth::loginUsingId(0); - - $response = $this->postJson('/api/WebAuthn::list'); - $response->assertOk(); // code 200 something + $response->assertStatus(422); - $key = new WebAuthnCredential([ - 'id' => '1234', - 'user_handle' => '575bcef3-5e74-4785-b089-575dcefbff33', - 'type' => 'public-key', + $key = (new WebAuthnCredential())->forceFill([ + 'id' => 'hyxPTjCUCWYPcVTxFy7WjCXATwU7UDLI9nPGqifqs9ohskBuVih4Nzdp3UAl-wHTda4CUoAE_ylfQveayx07ug', + 'authenticatable_id' => 0, + 'user_id' => '9058e01e7d84466595fd3ae7b8ad89a3', + 'alias' => '', + 'counter' => '0', + 'rp_id' => 'https://localhost', + 'origin' => 'https://localhost', 'transports' => '[]', - 'attestation_type' => '"none"', - 'trust_path' => '{"type":"Webauthn\\TrustPath\\EmptyTrustPath"}', 'aaguid' => '00000000-0000-0000-0000-000000000000', + 'attestation_format' => 'none', 'public_key' => '', - 'counter' => '0', ]); $user = User::query()->find(0); $user->webAuthnCredentials()->save($key); - $response = $this->postJson('/api/WebAuthn::delete', ['id' => '1234']); + Auth::loginUsingId(0); + + $response = $this->postJson('/api/WebAuthn::list'); + $response->assertOk(); // code 200 something + + $response = $this->postJson('/api/WebAuthn::delete', ['id' => 'hyxPTjCUCWYPcVTxFy7WjCXATwU7UDLI9nPGqifqs9ohskBuVih4Nzdp3UAl-wHTda4CUoAE_ylfQveayx07ug']); $response->assertNoContent(); Auth::logout(); Session::flush(); - $response = $this->postJson('/api/WebAuthn::delete', ['id' => '1234']); - $response->assertForbidden(); + $response = $this->postJson('/api/WebAuthn::delete', ['id' => 'hyxPTjCUCWYPcVTxFy7WjCXATwU7UDLI9nPGqifqs9ohskBuVih4Nzdp3UAl-wHTda4CUoAE_ylfQveayx07ug']); + $response->assertUnauthorized(); } }