From 122af4aa5463b7e37f0f27fb958224f76ae0ee70 Mon Sep 17 00:00:00 2001 From: Bandie Date: Mon, 23 Mar 2026 23:40:20 +0100 Subject: [PATCH] =?UTF-8?q?Hintergrundverwaltung=20und=20leere=20H=C3=BCll?= =?UTF-8?q?en;=20neuaufsetzen=20submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 3 - .phpstorm.meta.php | 2340 ++ _ide_helper.php | 28856 ++++++++++++++++ app/Http/Controllers/LoginController.php | 74 + app/Http/Controllers/TickerController.php | 6 + app/Http/Controllers/WebsiteController.php | 53 +- app/Models/RegisterToken.php | 19 + app/Models/TickerMessages.php | 16 + app/Models/User.php | 25 + composer.json | 3 +- composer.lock | 297 +- ...23_191744_create_register_tokens_table.php | 26 + lang/de/app.php | 2 + lang/en/app.php | 2 + public/Bilder/banner2.gif | Bin 0 -> 293016 bytes public/css/style.css | 12 + public/js/jquery/jquery-4.0.0.min.js | 2 + public/js/login/login.js | 39 + public/js/login/registrieren.js | 48 + public/js/ticker/edit.js | 7 + resources/docs | 1 - resources/views/content/about.blade.php | 7 + resources/views/content/contact.blade.php | 7 + resources/views/content/imprint.blade.php | 7 + resources/views/content/index.blade.php | 4 + resources/views/content/news.blade.php | 7 + resources/views/content/services.blade.php | 7 + resources/views/layout/app.blade.php | 60 +- resources/views/login/login.blade.php | 31 + resources/views/login/register.blade.php | 37 +- resources/views/ticker/edit.blade.php | 44 + routes/web.php | 15 +- 32 files changed, 32012 insertions(+), 45 deletions(-) create mode 100644 .phpstorm.meta.php create mode 100644 _ide_helper.php create mode 100644 app/Http/Controllers/LoginController.php create mode 100644 app/Models/RegisterToken.php create mode 100644 database/migrations/2026_03_23_191744_create_register_tokens_table.php create mode 100644 public/Bilder/banner2.gif create mode 100644 public/js/jquery/jquery-4.0.0.min.js create mode 100644 public/js/login/login.js create mode 100644 public/js/login/registrieren.js create mode 100644 public/js/ticker/edit.js delete mode 160000 resources/docs create mode 100644 resources/views/content/about.blade.php create mode 100644 resources/views/content/contact.blade.php create mode 100644 resources/views/content/imprint.blade.php create mode 100644 resources/views/content/news.blade.php create mode 100644 resources/views/content/services.blade.php create mode 100644 resources/views/login/login.blade.php create mode 100644 resources/views/ticker/edit.blade.php diff --git a/.gitmodules b/.gitmodules index 72abad6..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "resources/docs"] - path = resources/docs - url = ssh://git@git.chaospott.de:2222/c3gov/docs.git diff --git a/.phpstorm.meta.php b/.phpstorm.meta.php new file mode 100644 index 0000000..b0666cc --- /dev/null +++ b/.phpstorm.meta.php @@ -0,0 +1,2340 @@ + + * @see https://github.com/barryvdh/laravel-ide-helper + */ + override(new \Illuminate\Contracts\Container\Container, map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Illuminate\Container\Container::makeWith(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Illuminate\Contracts\Container\Container::get(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Illuminate\Contracts\Container\Container::make(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Illuminate\Contracts\Container\Container::makeWith(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\App::get(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\App::make(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\App::makeWith(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\app(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\resolve(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Psr\Container\ContainerInterface::get(0), map([ + '' => '@', + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \Illuminate\Foundation\Console\Kernel::class, + 'Illuminate\Contracts\Database\ConcurrencyErrorDetector' => \Illuminate\Database\ConcurrencyErrorDetector::class, + 'Illuminate\Contracts\Database\LostConnectionDetector' => \Illuminate\Database\LostConnectionDetector::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Foundation\MaintenanceMode' => \Illuminate\Foundation\FileBasedMaintenanceMode::class, + 'Illuminate\Contracts\Http\Kernel' => \Illuminate\Foundation\Http\Kernel::class, + 'Illuminate\Contracts\Log\ContextLogProcessor' => \Illuminate\Log\Context\ContextLogProcessor::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\Routing\Contracts\CallableDispatcher' => \Illuminate\Routing\CallableDispatcher::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MariaDbConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.schema' => \Illuminate\Database\Schema\MariaDbBuilder::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::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, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'pipeline' => \Illuminate\Pipeline\Pipeline::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\DatabaseQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseUuidFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.routes' => \Illuminate\Queue\QueueRoutes::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + + override(\auth()->user(), map([ + '' => \App\Models\User::class, + ])); + override(\Illuminate\Contracts\Auth\Guard::user(), map([ + '' => \App\Models\User::class, + ])); + override(\Illuminate\Support\Facades\Auth::user(), map([ + '' => \App\Models\User::class, + ])); + override(\request()->user(), map([ + '' => \App\Models\User::class, + ])); + override(\Illuminate\Http\Request::user(), map([ + '' => \App\Models\User::class, + ])); + override(\Illuminate\Support\Facades\Request::user(), map([ + '' => \App\Models\User::class, + ])); + + override(\config(), map([ + 'concurrency.default' => 'string', + 'hashing.driver' => 'string', + 'hashing.bcrypt.rounds' => 'string', + 'hashing.bcrypt.verify' => 'boolean', + 'hashing.bcrypt.limit' => 'NULL', + 'hashing.argon.memory' => 'integer', + 'hashing.argon.threads' => 'integer', + 'hashing.argon.time' => 'integer', + 'hashing.argon.verify' => 'boolean', + 'hashing.rehash_on_login' => 'boolean', + 'broadcasting.default' => 'string', + 'broadcasting.connections.reverb.driver' => 'string', + 'broadcasting.connections.reverb.key' => 'NULL', + 'broadcasting.connections.reverb.secret' => 'NULL', + 'broadcasting.connections.reverb.app_id' => 'NULL', + 'broadcasting.connections.reverb.options.host' => 'NULL', + 'broadcasting.connections.reverb.options.port' => 'integer', + 'broadcasting.connections.reverb.options.scheme' => 'string', + 'broadcasting.connections.reverb.options.useTLS' => 'boolean', + 'broadcasting.connections.reverb.client_options' => 'array', + 'broadcasting.connections.pusher.driver' => 'string', + 'broadcasting.connections.pusher.key' => 'NULL', + 'broadcasting.connections.pusher.secret' => 'NULL', + 'broadcasting.connections.pusher.app_id' => 'NULL', + 'broadcasting.connections.pusher.options.cluster' => 'NULL', + 'broadcasting.connections.pusher.options.host' => 'string', + 'broadcasting.connections.pusher.options.port' => 'integer', + 'broadcasting.connections.pusher.options.scheme' => 'string', + 'broadcasting.connections.pusher.options.encrypted' => 'boolean', + 'broadcasting.connections.pusher.options.useTLS' => 'boolean', + 'broadcasting.connections.pusher.client_options' => 'array', + 'broadcasting.connections.ably.driver' => 'string', + 'broadcasting.connections.ably.key' => 'NULL', + 'broadcasting.connections.log.driver' => 'string', + 'broadcasting.connections.null.driver' => 'string', + 'cors.paths' => 'array', + 'cors.allowed_methods' => 'array', + 'cors.allowed_origins' => 'array', + 'cors.allowed_origins_patterns' => 'array', + 'cors.allowed_headers' => 'array', + 'cors.exposed_headers' => 'array', + 'cors.max_age' => 'integer', + 'cors.supports_credentials' => 'boolean', + 'view.paths' => 'array', + 'view.compiled' => 'string', + 'app.name' => 'string', + 'app.env' => 'string', + 'app.debug' => 'boolean', + 'app.url' => 'string', + 'app.frontend_url' => 'string', + 'app.asset_url' => 'NULL', + 'app.timezone' => 'string', + 'app.locale' => 'string', + 'app.fallback_locale' => 'string', + 'app.faker_locale' => 'string', + 'app.cipher' => 'string', + 'app.key' => 'string', + 'app.previous_keys' => 'array', + 'app.maintenance.driver' => 'string', + 'app.maintenance.store' => 'string', + 'app.providers' => 'array', + 'app.aliases.App' => 'string', + 'app.aliases.Arr' => 'string', + 'app.aliases.Artisan' => 'string', + 'app.aliases.Auth' => 'string', + 'app.aliases.Benchmark' => 'string', + 'app.aliases.Blade' => 'string', + 'app.aliases.Broadcast' => 'string', + 'app.aliases.Bus' => 'string', + 'app.aliases.Cache' => 'string', + 'app.aliases.Concurrency' => 'string', + 'app.aliases.Config' => 'string', + 'app.aliases.Context' => 'string', + 'app.aliases.Cookie' => 'string', + 'app.aliases.Crypt' => 'string', + 'app.aliases.Date' => 'string', + 'app.aliases.DB' => 'string', + 'app.aliases.Eloquent' => 'string', + 'app.aliases.Event' => 'string', + 'app.aliases.File' => 'string', + 'app.aliases.Gate' => 'string', + 'app.aliases.Hash' => 'string', + 'app.aliases.Http' => 'string', + 'app.aliases.Js' => 'string', + 'app.aliases.Lang' => 'string', + 'app.aliases.Log' => 'string', + 'app.aliases.Mail' => 'string', + 'app.aliases.Notification' => 'string', + 'app.aliases.Number' => 'string', + 'app.aliases.Password' => 'string', + 'app.aliases.Process' => 'string', + 'app.aliases.Queue' => 'string', + 'app.aliases.RateLimiter' => 'string', + 'app.aliases.Redirect' => 'string', + 'app.aliases.Request' => 'string', + 'app.aliases.Response' => 'string', + 'app.aliases.Route' => 'string', + 'app.aliases.Schedule' => 'string', + 'app.aliases.Schema' => 'string', + 'app.aliases.Session' => 'string', + 'app.aliases.Storage' => 'string', + 'app.aliases.Str' => 'string', + 'app.aliases.Uri' => 'string', + 'app.aliases.URL' => 'string', + 'app.aliases.Validator' => 'string', + 'app.aliases.View' => 'string', + 'app.aliases.Vite' => 'string', + 'auth.defaults.guard' => 'string', + 'auth.defaults.passwords' => 'string', + 'auth.guards.web.driver' => 'string', + 'auth.guards.web.provider' => 'string', + 'auth.providers.users.driver' => 'string', + 'auth.providers.users.model' => 'string', + 'auth.passwords.users.provider' => 'string', + 'auth.passwords.users.table' => 'string', + 'auth.passwords.users.expire' => 'integer', + 'auth.passwords.users.throttle' => 'integer', + 'auth.password_timeout' => 'integer', + 'cache.default' => 'string', + 'cache.stores.array.driver' => 'string', + 'cache.stores.array.serialize' => 'boolean', + 'cache.stores.session.driver' => 'string', + 'cache.stores.session.key' => 'string', + 'cache.stores.database.driver' => 'string', + 'cache.stores.database.connection' => 'NULL', + 'cache.stores.database.table' => 'string', + 'cache.stores.database.lock_connection' => 'NULL', + 'cache.stores.database.lock_table' => 'NULL', + 'cache.stores.file.driver' => 'string', + 'cache.stores.file.path' => 'string', + 'cache.stores.file.lock_path' => 'string', + 'cache.stores.memcached.driver' => 'string', + 'cache.stores.memcached.persistent_id' => 'NULL', + 'cache.stores.memcached.sasl' => 'array', + 'cache.stores.memcached.options' => 'array', + 'cache.stores.memcached.servers.0.host' => 'string', + 'cache.stores.memcached.servers.0.port' => 'integer', + 'cache.stores.memcached.servers.0.weight' => 'integer', + 'cache.stores.redis.driver' => 'string', + 'cache.stores.redis.connection' => 'string', + 'cache.stores.redis.lock_connection' => 'string', + 'cache.stores.dynamodb.driver' => 'string', + 'cache.stores.dynamodb.key' => 'string', + 'cache.stores.dynamodb.secret' => 'string', + 'cache.stores.dynamodb.region' => 'string', + 'cache.stores.dynamodb.table' => 'string', + 'cache.stores.dynamodb.endpoint' => 'NULL', + 'cache.stores.octane.driver' => 'string', + 'cache.stores.failover.driver' => 'string', + 'cache.stores.failover.stores' => 'array', + 'cache.prefix' => 'string', + 'cache.serializable_classes' => 'boolean', + 'database.default' => 'string', + 'database.connections.sqlite.driver' => 'string', + 'database.connections.sqlite.url' => 'NULL', + 'database.connections.sqlite.database' => 'string', + 'database.connections.sqlite.prefix' => 'string', + 'database.connections.sqlite.foreign_key_constraints' => 'boolean', + 'database.connections.sqlite.busy_timeout' => 'NULL', + 'database.connections.sqlite.journal_mode' => 'NULL', + 'database.connections.sqlite.synchronous' => 'NULL', + 'database.connections.sqlite.transaction_mode' => 'string', + 'database.connections.mysql.driver' => 'string', + 'database.connections.mysql.url' => 'NULL', + 'database.connections.mysql.host' => 'string', + 'database.connections.mysql.port' => 'string', + 'database.connections.mysql.database' => 'string', + 'database.connections.mysql.username' => 'string', + 'database.connections.mysql.password' => 'string', + 'database.connections.mysql.unix_socket' => 'string', + 'database.connections.mysql.charset' => 'string', + 'database.connections.mysql.collation' => 'string', + 'database.connections.mysql.prefix' => 'string', + 'database.connections.mysql.prefix_indexes' => 'boolean', + 'database.connections.mysql.strict' => 'boolean', + 'database.connections.mysql.engine' => 'NULL', + 'database.connections.mysql.options' => 'array', + 'database.connections.mariadb.driver' => 'string', + 'database.connections.mariadb.url' => 'NULL', + 'database.connections.mariadb.host' => 'string', + 'database.connections.mariadb.port' => 'string', + 'database.connections.mariadb.database' => 'string', + 'database.connections.mariadb.username' => 'string', + 'database.connections.mariadb.password' => 'string', + 'database.connections.mariadb.unix_socket' => 'string', + 'database.connections.mariadb.charset' => 'string', + 'database.connections.mariadb.collation' => 'string', + 'database.connections.mariadb.prefix' => 'string', + 'database.connections.mariadb.prefix_indexes' => 'boolean', + 'database.connections.mariadb.strict' => 'boolean', + 'database.connections.mariadb.engine' => 'NULL', + 'database.connections.mariadb.options' => 'array', + 'database.connections.pgsql.driver' => 'string', + 'database.connections.pgsql.url' => 'NULL', + 'database.connections.pgsql.host' => 'string', + 'database.connections.pgsql.port' => 'string', + 'database.connections.pgsql.database' => 'string', + 'database.connections.pgsql.username' => 'string', + 'database.connections.pgsql.password' => 'string', + 'database.connections.pgsql.charset' => 'string', + 'database.connections.pgsql.prefix' => 'string', + 'database.connections.pgsql.prefix_indexes' => 'boolean', + 'database.connections.pgsql.search_path' => 'string', + 'database.connections.pgsql.sslmode' => 'string', + 'database.connections.sqlsrv.driver' => 'string', + 'database.connections.sqlsrv.url' => 'NULL', + 'database.connections.sqlsrv.host' => 'string', + 'database.connections.sqlsrv.port' => 'string', + 'database.connections.sqlsrv.database' => 'string', + 'database.connections.sqlsrv.username' => 'string', + 'database.connections.sqlsrv.password' => 'string', + 'database.connections.sqlsrv.charset' => 'string', + 'database.connections.sqlsrv.prefix' => 'string', + 'database.connections.sqlsrv.prefix_indexes' => 'boolean', + 'database.migrations.table' => 'string', + 'database.migrations.update_date_on_publish' => 'boolean', + 'database.redis.client' => 'string', + 'database.redis.options.cluster' => 'string', + 'database.redis.options.prefix' => 'string', + 'database.redis.options.persistent' => 'boolean', + 'database.redis.default.url' => 'NULL', + 'database.redis.default.host' => 'string', + 'database.redis.default.username' => 'NULL', + 'database.redis.default.password' => 'NULL', + 'database.redis.default.port' => 'string', + 'database.redis.default.database' => 'string', + 'database.redis.default.max_retries' => 'integer', + 'database.redis.default.backoff_algorithm' => 'string', + 'database.redis.default.backoff_base' => 'integer', + 'database.redis.default.backoff_cap' => 'integer', + 'database.redis.cache.url' => 'NULL', + 'database.redis.cache.host' => 'string', + 'database.redis.cache.username' => 'NULL', + 'database.redis.cache.password' => 'NULL', + 'database.redis.cache.port' => 'string', + 'database.redis.cache.database' => 'string', + 'database.redis.cache.max_retries' => 'integer', + 'database.redis.cache.backoff_algorithm' => 'string', + 'database.redis.cache.backoff_base' => 'integer', + 'database.redis.cache.backoff_cap' => 'integer', + 'filesystems.default' => 'string', + 'filesystems.disks.local.driver' => 'string', + 'filesystems.disks.local.root' => 'string', + 'filesystems.disks.local.serve' => 'boolean', + 'filesystems.disks.local.throw' => 'boolean', + 'filesystems.disks.local.report' => 'boolean', + 'filesystems.disks.public.driver' => 'string', + 'filesystems.disks.public.root' => 'string', + 'filesystems.disks.public.url' => 'string', + 'filesystems.disks.public.visibility' => 'string', + 'filesystems.disks.public.throw' => 'boolean', + 'filesystems.disks.public.report' => 'boolean', + 'filesystems.disks.s3.driver' => 'string', + 'filesystems.disks.s3.key' => 'string', + 'filesystems.disks.s3.secret' => 'string', + 'filesystems.disks.s3.region' => 'string', + 'filesystems.disks.s3.bucket' => 'string', + 'filesystems.disks.s3.url' => 'NULL', + 'filesystems.disks.s3.endpoint' => 'NULL', + 'filesystems.disks.s3.use_path_style_endpoint' => 'boolean', + 'filesystems.disks.s3.throw' => 'boolean', + 'filesystems.disks.s3.report' => 'boolean', + 'filesystems.links./home/bandie/devel/c3gov/website/public/storage' => 'string', + 'logging.default' => 'string', + 'logging.deprecations.channel' => 'NULL', + 'logging.deprecations.trace' => 'boolean', + 'logging.channels.stack.driver' => 'string', + 'logging.channels.stack.channels' => 'array', + 'logging.channels.stack.ignore_exceptions' => 'boolean', + 'logging.channels.single.driver' => 'string', + 'logging.channels.single.path' => 'string', + 'logging.channels.single.level' => 'string', + 'logging.channels.single.replace_placeholders' => 'boolean', + 'logging.channels.daily.driver' => 'string', + 'logging.channels.daily.path' => 'string', + 'logging.channels.daily.level' => 'string', + 'logging.channels.daily.days' => 'integer', + 'logging.channels.daily.replace_placeholders' => 'boolean', + 'logging.channels.slack.driver' => 'string', + 'logging.channels.slack.url' => 'NULL', + 'logging.channels.slack.username' => 'string', + 'logging.channels.slack.emoji' => 'string', + 'logging.channels.slack.level' => 'string', + 'logging.channels.slack.replace_placeholders' => 'boolean', + 'logging.channels.papertrail.driver' => 'string', + 'logging.channels.papertrail.level' => 'string', + 'logging.channels.papertrail.handler' => 'string', + 'logging.channels.papertrail.handler_with.host' => 'NULL', + 'logging.channels.papertrail.handler_with.port' => 'NULL', + 'logging.channels.papertrail.handler_with.connectionString' => 'string', + 'logging.channels.papertrail.processors' => 'array', + 'logging.channels.stderr.driver' => 'string', + 'logging.channels.stderr.level' => 'string', + 'logging.channels.stderr.handler' => 'string', + 'logging.channels.stderr.handler_with.stream' => 'string', + 'logging.channels.stderr.formatter' => 'NULL', + 'logging.channels.stderr.processors' => 'array', + 'logging.channels.syslog.driver' => 'string', + 'logging.channels.syslog.level' => 'string', + 'logging.channels.syslog.facility' => 'integer', + 'logging.channels.syslog.replace_placeholders' => 'boolean', + 'logging.channels.errorlog.driver' => 'string', + 'logging.channels.errorlog.level' => 'string', + 'logging.channels.errorlog.replace_placeholders' => 'boolean', + 'logging.channels.null.driver' => 'string', + 'logging.channels.null.handler' => 'string', + 'logging.channels.emergency.path' => 'string', + 'mail.default' => 'string', + 'mail.mailers.smtp.transport' => 'string', + 'mail.mailers.smtp.scheme' => 'NULL', + 'mail.mailers.smtp.url' => 'NULL', + 'mail.mailers.smtp.host' => 'string', + 'mail.mailers.smtp.port' => 'string', + 'mail.mailers.smtp.username' => 'NULL', + 'mail.mailers.smtp.password' => 'NULL', + 'mail.mailers.smtp.timeout' => 'NULL', + 'mail.mailers.smtp.local_domain' => 'string', + 'mail.mailers.ses.transport' => 'string', + 'mail.mailers.postmark.transport' => 'string', + 'mail.mailers.resend.transport' => 'string', + 'mail.mailers.sendmail.transport' => 'string', + 'mail.mailers.sendmail.path' => 'string', + 'mail.mailers.log.transport' => 'string', + 'mail.mailers.log.channel' => 'NULL', + 'mail.mailers.array.transport' => 'string', + 'mail.mailers.failover.transport' => 'string', + 'mail.mailers.failover.mailers' => 'array', + 'mail.mailers.failover.retry_after' => 'integer', + 'mail.mailers.roundrobin.transport' => 'string', + 'mail.mailers.roundrobin.mailers' => 'array', + 'mail.mailers.roundrobin.retry_after' => 'integer', + 'mail.from.address' => 'string', + 'mail.from.name' => 'string', + 'mail.markdown.theme' => 'string', + 'mail.markdown.paths' => 'array', + 'mail.markdown.extensions' => 'array', + 'queue.default' => 'string', + 'queue.connections.sync.driver' => 'string', + 'queue.connections.database.driver' => 'string', + 'queue.connections.database.connection' => 'NULL', + 'queue.connections.database.table' => 'string', + 'queue.connections.database.queue' => 'string', + 'queue.connections.database.retry_after' => 'integer', + 'queue.connections.database.after_commit' => 'boolean', + 'queue.connections.beanstalkd.driver' => 'string', + 'queue.connections.beanstalkd.host' => 'string', + 'queue.connections.beanstalkd.queue' => 'string', + 'queue.connections.beanstalkd.retry_after' => 'integer', + 'queue.connections.beanstalkd.block_for' => 'integer', + 'queue.connections.beanstalkd.after_commit' => 'boolean', + 'queue.connections.sqs.driver' => 'string', + 'queue.connections.sqs.key' => 'string', + 'queue.connections.sqs.secret' => 'string', + 'queue.connections.sqs.prefix' => 'string', + 'queue.connections.sqs.queue' => 'string', + 'queue.connections.sqs.suffix' => 'NULL', + 'queue.connections.sqs.region' => 'string', + 'queue.connections.sqs.after_commit' => 'boolean', + 'queue.connections.redis.driver' => 'string', + 'queue.connections.redis.connection' => 'string', + 'queue.connections.redis.queue' => 'string', + 'queue.connections.redis.retry_after' => 'integer', + 'queue.connections.redis.block_for' => 'NULL', + 'queue.connections.redis.after_commit' => 'boolean', + 'queue.connections.deferred.driver' => 'string', + 'queue.connections.failover.driver' => 'string', + 'queue.connections.failover.connections' => 'array', + 'queue.connections.background.driver' => 'string', + 'queue.batching.database' => 'string', + 'queue.batching.table' => 'string', + 'queue.failed.driver' => 'string', + 'queue.failed.database' => 'string', + 'queue.failed.table' => 'string', + 'services.postmark.key' => 'NULL', + 'services.resend.key' => 'NULL', + 'services.ses.key' => 'string', + 'services.ses.secret' => 'string', + 'services.ses.region' => 'string', + 'services.slack.notifications.bot_user_oauth_token' => 'NULL', + 'services.slack.notifications.channel' => 'NULL', + 'session.driver' => 'string', + 'session.lifetime' => 'integer', + 'session.expire_on_close' => 'boolean', + 'session.encrypt' => 'boolean', + 'session.files' => 'string', + 'session.connection' => 'NULL', + 'session.table' => 'string', + 'session.store' => 'NULL', + 'session.lottery' => 'array', + 'session.cookie' => 'string', + 'session.path' => 'string', + 'session.domain' => 'NULL', + 'session.secure' => 'NULL', + 'session.http_only' => 'boolean', + 'session.same_site' => 'string', + 'session.partitioned' => 'boolean', + 'session.serialization' => 'string', + 'ide-helper.filename' => 'string', + 'ide-helper.models_filename' => 'string', + 'ide-helper.meta_filename' => 'string', + 'ide-helper.include_fluent' => 'boolean', + 'ide-helper.write_query_methods' => 'boolean', + 'ide-helper.write_model_magic_where' => 'boolean', + 'ide-helper.write_model_external_builder_methods' => 'boolean', + 'ide-helper.write_model_relation_count_properties' => 'boolean', + 'ide-helper.write_model_relation_exists_properties' => 'boolean', + 'ide-helper.write_eloquent_model_mixins' => 'boolean', + 'ide-helper.include_helpers' => 'boolean', + 'ide-helper.helper_files' => 'array', + 'ide-helper.model_locations' => 'array', + 'ide-helper.ignored_models' => 'array', + 'ide-helper.model_hooks' => 'array', + 'ide-helper.extra.Eloquent' => 'array', + 'ide-helper.extra.Session' => 'array', + 'ide-helper.magic' => 'array', + 'ide-helper.interfaces' => 'array', + 'ide-helper.model_camel_case_properties' => 'boolean', + 'ide-helper.type_overrides.integer' => 'string', + 'ide-helper.type_overrides.boolean' => 'string', + 'ide-helper.include_class_docblocks' => 'boolean', + 'ide-helper.force_fqn' => 'boolean', + 'ide-helper.use_generics_annotations' => 'boolean', + 'ide-helper.macro_default_return_types.Illuminate\Http\Client\Factory' => 'string', + 'ide-helper.additional_relation_types' => 'array', + 'ide-helper.additional_relation_return_types' => 'array', + 'ide-helper.enforce_nullable_relationships' => 'boolean', + 'ide-helper.soft_deletes_force_nullable' => 'boolean', + 'ide-helper.post_migrate' => 'array', + 'tinker.commands' => 'array', + 'tinker.alias' => 'array', + 'tinker.dont_alias' => 'array', + 'tinker.trust_project' => 'string', + ])); + override(\Illuminate\Config\Repository::get(), map([ + 'concurrency.default' => 'string', + 'hashing.driver' => 'string', + 'hashing.bcrypt.rounds' => 'string', + 'hashing.bcrypt.verify' => 'boolean', + 'hashing.bcrypt.limit' => 'NULL', + 'hashing.argon.memory' => 'integer', + 'hashing.argon.threads' => 'integer', + 'hashing.argon.time' => 'integer', + 'hashing.argon.verify' => 'boolean', + 'hashing.rehash_on_login' => 'boolean', + 'broadcasting.default' => 'string', + 'broadcasting.connections.reverb.driver' => 'string', + 'broadcasting.connections.reverb.key' => 'NULL', + 'broadcasting.connections.reverb.secret' => 'NULL', + 'broadcasting.connections.reverb.app_id' => 'NULL', + 'broadcasting.connections.reverb.options.host' => 'NULL', + 'broadcasting.connections.reverb.options.port' => 'integer', + 'broadcasting.connections.reverb.options.scheme' => 'string', + 'broadcasting.connections.reverb.options.useTLS' => 'boolean', + 'broadcasting.connections.reverb.client_options' => 'array', + 'broadcasting.connections.pusher.driver' => 'string', + 'broadcasting.connections.pusher.key' => 'NULL', + 'broadcasting.connections.pusher.secret' => 'NULL', + 'broadcasting.connections.pusher.app_id' => 'NULL', + 'broadcasting.connections.pusher.options.cluster' => 'NULL', + 'broadcasting.connections.pusher.options.host' => 'string', + 'broadcasting.connections.pusher.options.port' => 'integer', + 'broadcasting.connections.pusher.options.scheme' => 'string', + 'broadcasting.connections.pusher.options.encrypted' => 'boolean', + 'broadcasting.connections.pusher.options.useTLS' => 'boolean', + 'broadcasting.connections.pusher.client_options' => 'array', + 'broadcasting.connections.ably.driver' => 'string', + 'broadcasting.connections.ably.key' => 'NULL', + 'broadcasting.connections.log.driver' => 'string', + 'broadcasting.connections.null.driver' => 'string', + 'cors.paths' => 'array', + 'cors.allowed_methods' => 'array', + 'cors.allowed_origins' => 'array', + 'cors.allowed_origins_patterns' => 'array', + 'cors.allowed_headers' => 'array', + 'cors.exposed_headers' => 'array', + 'cors.max_age' => 'integer', + 'cors.supports_credentials' => 'boolean', + 'view.paths' => 'array', + 'view.compiled' => 'string', + 'app.name' => 'string', + 'app.env' => 'string', + 'app.debug' => 'boolean', + 'app.url' => 'string', + 'app.frontend_url' => 'string', + 'app.asset_url' => 'NULL', + 'app.timezone' => 'string', + 'app.locale' => 'string', + 'app.fallback_locale' => 'string', + 'app.faker_locale' => 'string', + 'app.cipher' => 'string', + 'app.key' => 'string', + 'app.previous_keys' => 'array', + 'app.maintenance.driver' => 'string', + 'app.maintenance.store' => 'string', + 'app.providers' => 'array', + 'app.aliases.App' => 'string', + 'app.aliases.Arr' => 'string', + 'app.aliases.Artisan' => 'string', + 'app.aliases.Auth' => 'string', + 'app.aliases.Benchmark' => 'string', + 'app.aliases.Blade' => 'string', + 'app.aliases.Broadcast' => 'string', + 'app.aliases.Bus' => 'string', + 'app.aliases.Cache' => 'string', + 'app.aliases.Concurrency' => 'string', + 'app.aliases.Config' => 'string', + 'app.aliases.Context' => 'string', + 'app.aliases.Cookie' => 'string', + 'app.aliases.Crypt' => 'string', + 'app.aliases.Date' => 'string', + 'app.aliases.DB' => 'string', + 'app.aliases.Eloquent' => 'string', + 'app.aliases.Event' => 'string', + 'app.aliases.File' => 'string', + 'app.aliases.Gate' => 'string', + 'app.aliases.Hash' => 'string', + 'app.aliases.Http' => 'string', + 'app.aliases.Js' => 'string', + 'app.aliases.Lang' => 'string', + 'app.aliases.Log' => 'string', + 'app.aliases.Mail' => 'string', + 'app.aliases.Notification' => 'string', + 'app.aliases.Number' => 'string', + 'app.aliases.Password' => 'string', + 'app.aliases.Process' => 'string', + 'app.aliases.Queue' => 'string', + 'app.aliases.RateLimiter' => 'string', + 'app.aliases.Redirect' => 'string', + 'app.aliases.Request' => 'string', + 'app.aliases.Response' => 'string', + 'app.aliases.Route' => 'string', + 'app.aliases.Schedule' => 'string', + 'app.aliases.Schema' => 'string', + 'app.aliases.Session' => 'string', + 'app.aliases.Storage' => 'string', + 'app.aliases.Str' => 'string', + 'app.aliases.Uri' => 'string', + 'app.aliases.URL' => 'string', + 'app.aliases.Validator' => 'string', + 'app.aliases.View' => 'string', + 'app.aliases.Vite' => 'string', + 'auth.defaults.guard' => 'string', + 'auth.defaults.passwords' => 'string', + 'auth.guards.web.driver' => 'string', + 'auth.guards.web.provider' => 'string', + 'auth.providers.users.driver' => 'string', + 'auth.providers.users.model' => 'string', + 'auth.passwords.users.provider' => 'string', + 'auth.passwords.users.table' => 'string', + 'auth.passwords.users.expire' => 'integer', + 'auth.passwords.users.throttle' => 'integer', + 'auth.password_timeout' => 'integer', + 'cache.default' => 'string', + 'cache.stores.array.driver' => 'string', + 'cache.stores.array.serialize' => 'boolean', + 'cache.stores.session.driver' => 'string', + 'cache.stores.session.key' => 'string', + 'cache.stores.database.driver' => 'string', + 'cache.stores.database.connection' => 'NULL', + 'cache.stores.database.table' => 'string', + 'cache.stores.database.lock_connection' => 'NULL', + 'cache.stores.database.lock_table' => 'NULL', + 'cache.stores.file.driver' => 'string', + 'cache.stores.file.path' => 'string', + 'cache.stores.file.lock_path' => 'string', + 'cache.stores.memcached.driver' => 'string', + 'cache.stores.memcached.persistent_id' => 'NULL', + 'cache.stores.memcached.sasl' => 'array', + 'cache.stores.memcached.options' => 'array', + 'cache.stores.memcached.servers.0.host' => 'string', + 'cache.stores.memcached.servers.0.port' => 'integer', + 'cache.stores.memcached.servers.0.weight' => 'integer', + 'cache.stores.redis.driver' => 'string', + 'cache.stores.redis.connection' => 'string', + 'cache.stores.redis.lock_connection' => 'string', + 'cache.stores.dynamodb.driver' => 'string', + 'cache.stores.dynamodb.key' => 'string', + 'cache.stores.dynamodb.secret' => 'string', + 'cache.stores.dynamodb.region' => 'string', + 'cache.stores.dynamodb.table' => 'string', + 'cache.stores.dynamodb.endpoint' => 'NULL', + 'cache.stores.octane.driver' => 'string', + 'cache.stores.failover.driver' => 'string', + 'cache.stores.failover.stores' => 'array', + 'cache.prefix' => 'string', + 'cache.serializable_classes' => 'boolean', + 'database.default' => 'string', + 'database.connections.sqlite.driver' => 'string', + 'database.connections.sqlite.url' => 'NULL', + 'database.connections.sqlite.database' => 'string', + 'database.connections.sqlite.prefix' => 'string', + 'database.connections.sqlite.foreign_key_constraints' => 'boolean', + 'database.connections.sqlite.busy_timeout' => 'NULL', + 'database.connections.sqlite.journal_mode' => 'NULL', + 'database.connections.sqlite.synchronous' => 'NULL', + 'database.connections.sqlite.transaction_mode' => 'string', + 'database.connections.mysql.driver' => 'string', + 'database.connections.mysql.url' => 'NULL', + 'database.connections.mysql.host' => 'string', + 'database.connections.mysql.port' => 'string', + 'database.connections.mysql.database' => 'string', + 'database.connections.mysql.username' => 'string', + 'database.connections.mysql.password' => 'string', + 'database.connections.mysql.unix_socket' => 'string', + 'database.connections.mysql.charset' => 'string', + 'database.connections.mysql.collation' => 'string', + 'database.connections.mysql.prefix' => 'string', + 'database.connections.mysql.prefix_indexes' => 'boolean', + 'database.connections.mysql.strict' => 'boolean', + 'database.connections.mysql.engine' => 'NULL', + 'database.connections.mysql.options' => 'array', + 'database.connections.mariadb.driver' => 'string', + 'database.connections.mariadb.url' => 'NULL', + 'database.connections.mariadb.host' => 'string', + 'database.connections.mariadb.port' => 'string', + 'database.connections.mariadb.database' => 'string', + 'database.connections.mariadb.username' => 'string', + 'database.connections.mariadb.password' => 'string', + 'database.connections.mariadb.unix_socket' => 'string', + 'database.connections.mariadb.charset' => 'string', + 'database.connections.mariadb.collation' => 'string', + 'database.connections.mariadb.prefix' => 'string', + 'database.connections.mariadb.prefix_indexes' => 'boolean', + 'database.connections.mariadb.strict' => 'boolean', + 'database.connections.mariadb.engine' => 'NULL', + 'database.connections.mariadb.options' => 'array', + 'database.connections.pgsql.driver' => 'string', + 'database.connections.pgsql.url' => 'NULL', + 'database.connections.pgsql.host' => 'string', + 'database.connections.pgsql.port' => 'string', + 'database.connections.pgsql.database' => 'string', + 'database.connections.pgsql.username' => 'string', + 'database.connections.pgsql.password' => 'string', + 'database.connections.pgsql.charset' => 'string', + 'database.connections.pgsql.prefix' => 'string', + 'database.connections.pgsql.prefix_indexes' => 'boolean', + 'database.connections.pgsql.search_path' => 'string', + 'database.connections.pgsql.sslmode' => 'string', + 'database.connections.sqlsrv.driver' => 'string', + 'database.connections.sqlsrv.url' => 'NULL', + 'database.connections.sqlsrv.host' => 'string', + 'database.connections.sqlsrv.port' => 'string', + 'database.connections.sqlsrv.database' => 'string', + 'database.connections.sqlsrv.username' => 'string', + 'database.connections.sqlsrv.password' => 'string', + 'database.connections.sqlsrv.charset' => 'string', + 'database.connections.sqlsrv.prefix' => 'string', + 'database.connections.sqlsrv.prefix_indexes' => 'boolean', + 'database.migrations.table' => 'string', + 'database.migrations.update_date_on_publish' => 'boolean', + 'database.redis.client' => 'string', + 'database.redis.options.cluster' => 'string', + 'database.redis.options.prefix' => 'string', + 'database.redis.options.persistent' => 'boolean', + 'database.redis.default.url' => 'NULL', + 'database.redis.default.host' => 'string', + 'database.redis.default.username' => 'NULL', + 'database.redis.default.password' => 'NULL', + 'database.redis.default.port' => 'string', + 'database.redis.default.database' => 'string', + 'database.redis.default.max_retries' => 'integer', + 'database.redis.default.backoff_algorithm' => 'string', + 'database.redis.default.backoff_base' => 'integer', + 'database.redis.default.backoff_cap' => 'integer', + 'database.redis.cache.url' => 'NULL', + 'database.redis.cache.host' => 'string', + 'database.redis.cache.username' => 'NULL', + 'database.redis.cache.password' => 'NULL', + 'database.redis.cache.port' => 'string', + 'database.redis.cache.database' => 'string', + 'database.redis.cache.max_retries' => 'integer', + 'database.redis.cache.backoff_algorithm' => 'string', + 'database.redis.cache.backoff_base' => 'integer', + 'database.redis.cache.backoff_cap' => 'integer', + 'filesystems.default' => 'string', + 'filesystems.disks.local.driver' => 'string', + 'filesystems.disks.local.root' => 'string', + 'filesystems.disks.local.serve' => 'boolean', + 'filesystems.disks.local.throw' => 'boolean', + 'filesystems.disks.local.report' => 'boolean', + 'filesystems.disks.public.driver' => 'string', + 'filesystems.disks.public.root' => 'string', + 'filesystems.disks.public.url' => 'string', + 'filesystems.disks.public.visibility' => 'string', + 'filesystems.disks.public.throw' => 'boolean', + 'filesystems.disks.public.report' => 'boolean', + 'filesystems.disks.s3.driver' => 'string', + 'filesystems.disks.s3.key' => 'string', + 'filesystems.disks.s3.secret' => 'string', + 'filesystems.disks.s3.region' => 'string', + 'filesystems.disks.s3.bucket' => 'string', + 'filesystems.disks.s3.url' => 'NULL', + 'filesystems.disks.s3.endpoint' => 'NULL', + 'filesystems.disks.s3.use_path_style_endpoint' => 'boolean', + 'filesystems.disks.s3.throw' => 'boolean', + 'filesystems.disks.s3.report' => 'boolean', + 'filesystems.links./home/bandie/devel/c3gov/website/public/storage' => 'string', + 'logging.default' => 'string', + 'logging.deprecations.channel' => 'NULL', + 'logging.deprecations.trace' => 'boolean', + 'logging.channels.stack.driver' => 'string', + 'logging.channels.stack.channels' => 'array', + 'logging.channels.stack.ignore_exceptions' => 'boolean', + 'logging.channels.single.driver' => 'string', + 'logging.channels.single.path' => 'string', + 'logging.channels.single.level' => 'string', + 'logging.channels.single.replace_placeholders' => 'boolean', + 'logging.channels.daily.driver' => 'string', + 'logging.channels.daily.path' => 'string', + 'logging.channels.daily.level' => 'string', + 'logging.channels.daily.days' => 'integer', + 'logging.channels.daily.replace_placeholders' => 'boolean', + 'logging.channels.slack.driver' => 'string', + 'logging.channels.slack.url' => 'NULL', + 'logging.channels.slack.username' => 'string', + 'logging.channels.slack.emoji' => 'string', + 'logging.channels.slack.level' => 'string', + 'logging.channels.slack.replace_placeholders' => 'boolean', + 'logging.channels.papertrail.driver' => 'string', + 'logging.channels.papertrail.level' => 'string', + 'logging.channels.papertrail.handler' => 'string', + 'logging.channels.papertrail.handler_with.host' => 'NULL', + 'logging.channels.papertrail.handler_with.port' => 'NULL', + 'logging.channels.papertrail.handler_with.connectionString' => 'string', + 'logging.channels.papertrail.processors' => 'array', + 'logging.channels.stderr.driver' => 'string', + 'logging.channels.stderr.level' => 'string', + 'logging.channels.stderr.handler' => 'string', + 'logging.channels.stderr.handler_with.stream' => 'string', + 'logging.channels.stderr.formatter' => 'NULL', + 'logging.channels.stderr.processors' => 'array', + 'logging.channels.syslog.driver' => 'string', + 'logging.channels.syslog.level' => 'string', + 'logging.channels.syslog.facility' => 'integer', + 'logging.channels.syslog.replace_placeholders' => 'boolean', + 'logging.channels.errorlog.driver' => 'string', + 'logging.channels.errorlog.level' => 'string', + 'logging.channels.errorlog.replace_placeholders' => 'boolean', + 'logging.channels.null.driver' => 'string', + 'logging.channels.null.handler' => 'string', + 'logging.channels.emergency.path' => 'string', + 'mail.default' => 'string', + 'mail.mailers.smtp.transport' => 'string', + 'mail.mailers.smtp.scheme' => 'NULL', + 'mail.mailers.smtp.url' => 'NULL', + 'mail.mailers.smtp.host' => 'string', + 'mail.mailers.smtp.port' => 'string', + 'mail.mailers.smtp.username' => 'NULL', + 'mail.mailers.smtp.password' => 'NULL', + 'mail.mailers.smtp.timeout' => 'NULL', + 'mail.mailers.smtp.local_domain' => 'string', + 'mail.mailers.ses.transport' => 'string', + 'mail.mailers.postmark.transport' => 'string', + 'mail.mailers.resend.transport' => 'string', + 'mail.mailers.sendmail.transport' => 'string', + 'mail.mailers.sendmail.path' => 'string', + 'mail.mailers.log.transport' => 'string', + 'mail.mailers.log.channel' => 'NULL', + 'mail.mailers.array.transport' => 'string', + 'mail.mailers.failover.transport' => 'string', + 'mail.mailers.failover.mailers' => 'array', + 'mail.mailers.failover.retry_after' => 'integer', + 'mail.mailers.roundrobin.transport' => 'string', + 'mail.mailers.roundrobin.mailers' => 'array', + 'mail.mailers.roundrobin.retry_after' => 'integer', + 'mail.from.address' => 'string', + 'mail.from.name' => 'string', + 'mail.markdown.theme' => 'string', + 'mail.markdown.paths' => 'array', + 'mail.markdown.extensions' => 'array', + 'queue.default' => 'string', + 'queue.connections.sync.driver' => 'string', + 'queue.connections.database.driver' => 'string', + 'queue.connections.database.connection' => 'NULL', + 'queue.connections.database.table' => 'string', + 'queue.connections.database.queue' => 'string', + 'queue.connections.database.retry_after' => 'integer', + 'queue.connections.database.after_commit' => 'boolean', + 'queue.connections.beanstalkd.driver' => 'string', + 'queue.connections.beanstalkd.host' => 'string', + 'queue.connections.beanstalkd.queue' => 'string', + 'queue.connections.beanstalkd.retry_after' => 'integer', + 'queue.connections.beanstalkd.block_for' => 'integer', + 'queue.connections.beanstalkd.after_commit' => 'boolean', + 'queue.connections.sqs.driver' => 'string', + 'queue.connections.sqs.key' => 'string', + 'queue.connections.sqs.secret' => 'string', + 'queue.connections.sqs.prefix' => 'string', + 'queue.connections.sqs.queue' => 'string', + 'queue.connections.sqs.suffix' => 'NULL', + 'queue.connections.sqs.region' => 'string', + 'queue.connections.sqs.after_commit' => 'boolean', + 'queue.connections.redis.driver' => 'string', + 'queue.connections.redis.connection' => 'string', + 'queue.connections.redis.queue' => 'string', + 'queue.connections.redis.retry_after' => 'integer', + 'queue.connections.redis.block_for' => 'NULL', + 'queue.connections.redis.after_commit' => 'boolean', + 'queue.connections.deferred.driver' => 'string', + 'queue.connections.failover.driver' => 'string', + 'queue.connections.failover.connections' => 'array', + 'queue.connections.background.driver' => 'string', + 'queue.batching.database' => 'string', + 'queue.batching.table' => 'string', + 'queue.failed.driver' => 'string', + 'queue.failed.database' => 'string', + 'queue.failed.table' => 'string', + 'services.postmark.key' => 'NULL', + 'services.resend.key' => 'NULL', + 'services.ses.key' => 'string', + 'services.ses.secret' => 'string', + 'services.ses.region' => 'string', + 'services.slack.notifications.bot_user_oauth_token' => 'NULL', + 'services.slack.notifications.channel' => 'NULL', + 'session.driver' => 'string', + 'session.lifetime' => 'integer', + 'session.expire_on_close' => 'boolean', + 'session.encrypt' => 'boolean', + 'session.files' => 'string', + 'session.connection' => 'NULL', + 'session.table' => 'string', + 'session.store' => 'NULL', + 'session.lottery' => 'array', + 'session.cookie' => 'string', + 'session.path' => 'string', + 'session.domain' => 'NULL', + 'session.secure' => 'NULL', + 'session.http_only' => 'boolean', + 'session.same_site' => 'string', + 'session.partitioned' => 'boolean', + 'session.serialization' => 'string', + 'ide-helper.filename' => 'string', + 'ide-helper.models_filename' => 'string', + 'ide-helper.meta_filename' => 'string', + 'ide-helper.include_fluent' => 'boolean', + 'ide-helper.write_query_methods' => 'boolean', + 'ide-helper.write_model_magic_where' => 'boolean', + 'ide-helper.write_model_external_builder_methods' => 'boolean', + 'ide-helper.write_model_relation_count_properties' => 'boolean', + 'ide-helper.write_model_relation_exists_properties' => 'boolean', + 'ide-helper.write_eloquent_model_mixins' => 'boolean', + 'ide-helper.include_helpers' => 'boolean', + 'ide-helper.helper_files' => 'array', + 'ide-helper.model_locations' => 'array', + 'ide-helper.ignored_models' => 'array', + 'ide-helper.model_hooks' => 'array', + 'ide-helper.extra.Eloquent' => 'array', + 'ide-helper.extra.Session' => 'array', + 'ide-helper.magic' => 'array', + 'ide-helper.interfaces' => 'array', + 'ide-helper.model_camel_case_properties' => 'boolean', + 'ide-helper.type_overrides.integer' => 'string', + 'ide-helper.type_overrides.boolean' => 'string', + 'ide-helper.include_class_docblocks' => 'boolean', + 'ide-helper.force_fqn' => 'boolean', + 'ide-helper.use_generics_annotations' => 'boolean', + 'ide-helper.macro_default_return_types.Illuminate\Http\Client\Factory' => 'string', + 'ide-helper.additional_relation_types' => 'array', + 'ide-helper.additional_relation_return_types' => 'array', + 'ide-helper.enforce_nullable_relationships' => 'boolean', + 'ide-helper.soft_deletes_force_nullable' => 'boolean', + 'ide-helper.post_migrate' => 'array', + 'tinker.commands' => 'array', + 'tinker.alias' => 'array', + 'tinker.dont_alias' => 'array', + 'tinker.trust_project' => 'string', + ])); + override(\Illuminate\Support\Facades\Config::get(), map([ + 'concurrency.default' => 'string', + 'hashing.driver' => 'string', + 'hashing.bcrypt.rounds' => 'string', + 'hashing.bcrypt.verify' => 'boolean', + 'hashing.bcrypt.limit' => 'NULL', + 'hashing.argon.memory' => 'integer', + 'hashing.argon.threads' => 'integer', + 'hashing.argon.time' => 'integer', + 'hashing.argon.verify' => 'boolean', + 'hashing.rehash_on_login' => 'boolean', + 'broadcasting.default' => 'string', + 'broadcasting.connections.reverb.driver' => 'string', + 'broadcasting.connections.reverb.key' => 'NULL', + 'broadcasting.connections.reverb.secret' => 'NULL', + 'broadcasting.connections.reverb.app_id' => 'NULL', + 'broadcasting.connections.reverb.options.host' => 'NULL', + 'broadcasting.connections.reverb.options.port' => 'integer', + 'broadcasting.connections.reverb.options.scheme' => 'string', + 'broadcasting.connections.reverb.options.useTLS' => 'boolean', + 'broadcasting.connections.reverb.client_options' => 'array', + 'broadcasting.connections.pusher.driver' => 'string', + 'broadcasting.connections.pusher.key' => 'NULL', + 'broadcasting.connections.pusher.secret' => 'NULL', + 'broadcasting.connections.pusher.app_id' => 'NULL', + 'broadcasting.connections.pusher.options.cluster' => 'NULL', + 'broadcasting.connections.pusher.options.host' => 'string', + 'broadcasting.connections.pusher.options.port' => 'integer', + 'broadcasting.connections.pusher.options.scheme' => 'string', + 'broadcasting.connections.pusher.options.encrypted' => 'boolean', + 'broadcasting.connections.pusher.options.useTLS' => 'boolean', + 'broadcasting.connections.pusher.client_options' => 'array', + 'broadcasting.connections.ably.driver' => 'string', + 'broadcasting.connections.ably.key' => 'NULL', + 'broadcasting.connections.log.driver' => 'string', + 'broadcasting.connections.null.driver' => 'string', + 'cors.paths' => 'array', + 'cors.allowed_methods' => 'array', + 'cors.allowed_origins' => 'array', + 'cors.allowed_origins_patterns' => 'array', + 'cors.allowed_headers' => 'array', + 'cors.exposed_headers' => 'array', + 'cors.max_age' => 'integer', + 'cors.supports_credentials' => 'boolean', + 'view.paths' => 'array', + 'view.compiled' => 'string', + 'app.name' => 'string', + 'app.env' => 'string', + 'app.debug' => 'boolean', + 'app.url' => 'string', + 'app.frontend_url' => 'string', + 'app.asset_url' => 'NULL', + 'app.timezone' => 'string', + 'app.locale' => 'string', + 'app.fallback_locale' => 'string', + 'app.faker_locale' => 'string', + 'app.cipher' => 'string', + 'app.key' => 'string', + 'app.previous_keys' => 'array', + 'app.maintenance.driver' => 'string', + 'app.maintenance.store' => 'string', + 'app.providers' => 'array', + 'app.aliases.App' => 'string', + 'app.aliases.Arr' => 'string', + 'app.aliases.Artisan' => 'string', + 'app.aliases.Auth' => 'string', + 'app.aliases.Benchmark' => 'string', + 'app.aliases.Blade' => 'string', + 'app.aliases.Broadcast' => 'string', + 'app.aliases.Bus' => 'string', + 'app.aliases.Cache' => 'string', + 'app.aliases.Concurrency' => 'string', + 'app.aliases.Config' => 'string', + 'app.aliases.Context' => 'string', + 'app.aliases.Cookie' => 'string', + 'app.aliases.Crypt' => 'string', + 'app.aliases.Date' => 'string', + 'app.aliases.DB' => 'string', + 'app.aliases.Eloquent' => 'string', + 'app.aliases.Event' => 'string', + 'app.aliases.File' => 'string', + 'app.aliases.Gate' => 'string', + 'app.aliases.Hash' => 'string', + 'app.aliases.Http' => 'string', + 'app.aliases.Js' => 'string', + 'app.aliases.Lang' => 'string', + 'app.aliases.Log' => 'string', + 'app.aliases.Mail' => 'string', + 'app.aliases.Notification' => 'string', + 'app.aliases.Number' => 'string', + 'app.aliases.Password' => 'string', + 'app.aliases.Process' => 'string', + 'app.aliases.Queue' => 'string', + 'app.aliases.RateLimiter' => 'string', + 'app.aliases.Redirect' => 'string', + 'app.aliases.Request' => 'string', + 'app.aliases.Response' => 'string', + 'app.aliases.Route' => 'string', + 'app.aliases.Schedule' => 'string', + 'app.aliases.Schema' => 'string', + 'app.aliases.Session' => 'string', + 'app.aliases.Storage' => 'string', + 'app.aliases.Str' => 'string', + 'app.aliases.Uri' => 'string', + 'app.aliases.URL' => 'string', + 'app.aliases.Validator' => 'string', + 'app.aliases.View' => 'string', + 'app.aliases.Vite' => 'string', + 'auth.defaults.guard' => 'string', + 'auth.defaults.passwords' => 'string', + 'auth.guards.web.driver' => 'string', + 'auth.guards.web.provider' => 'string', + 'auth.providers.users.driver' => 'string', + 'auth.providers.users.model' => 'string', + 'auth.passwords.users.provider' => 'string', + 'auth.passwords.users.table' => 'string', + 'auth.passwords.users.expire' => 'integer', + 'auth.passwords.users.throttle' => 'integer', + 'auth.password_timeout' => 'integer', + 'cache.default' => 'string', + 'cache.stores.array.driver' => 'string', + 'cache.stores.array.serialize' => 'boolean', + 'cache.stores.session.driver' => 'string', + 'cache.stores.session.key' => 'string', + 'cache.stores.database.driver' => 'string', + 'cache.stores.database.connection' => 'NULL', + 'cache.stores.database.table' => 'string', + 'cache.stores.database.lock_connection' => 'NULL', + 'cache.stores.database.lock_table' => 'NULL', + 'cache.stores.file.driver' => 'string', + 'cache.stores.file.path' => 'string', + 'cache.stores.file.lock_path' => 'string', + 'cache.stores.memcached.driver' => 'string', + 'cache.stores.memcached.persistent_id' => 'NULL', + 'cache.stores.memcached.sasl' => 'array', + 'cache.stores.memcached.options' => 'array', + 'cache.stores.memcached.servers.0.host' => 'string', + 'cache.stores.memcached.servers.0.port' => 'integer', + 'cache.stores.memcached.servers.0.weight' => 'integer', + 'cache.stores.redis.driver' => 'string', + 'cache.stores.redis.connection' => 'string', + 'cache.stores.redis.lock_connection' => 'string', + 'cache.stores.dynamodb.driver' => 'string', + 'cache.stores.dynamodb.key' => 'string', + 'cache.stores.dynamodb.secret' => 'string', + 'cache.stores.dynamodb.region' => 'string', + 'cache.stores.dynamodb.table' => 'string', + 'cache.stores.dynamodb.endpoint' => 'NULL', + 'cache.stores.octane.driver' => 'string', + 'cache.stores.failover.driver' => 'string', + 'cache.stores.failover.stores' => 'array', + 'cache.prefix' => 'string', + 'cache.serializable_classes' => 'boolean', + 'database.default' => 'string', + 'database.connections.sqlite.driver' => 'string', + 'database.connections.sqlite.url' => 'NULL', + 'database.connections.sqlite.database' => 'string', + 'database.connections.sqlite.prefix' => 'string', + 'database.connections.sqlite.foreign_key_constraints' => 'boolean', + 'database.connections.sqlite.busy_timeout' => 'NULL', + 'database.connections.sqlite.journal_mode' => 'NULL', + 'database.connections.sqlite.synchronous' => 'NULL', + 'database.connections.sqlite.transaction_mode' => 'string', + 'database.connections.mysql.driver' => 'string', + 'database.connections.mysql.url' => 'NULL', + 'database.connections.mysql.host' => 'string', + 'database.connections.mysql.port' => 'string', + 'database.connections.mysql.database' => 'string', + 'database.connections.mysql.username' => 'string', + 'database.connections.mysql.password' => 'string', + 'database.connections.mysql.unix_socket' => 'string', + 'database.connections.mysql.charset' => 'string', + 'database.connections.mysql.collation' => 'string', + 'database.connections.mysql.prefix' => 'string', + 'database.connections.mysql.prefix_indexes' => 'boolean', + 'database.connections.mysql.strict' => 'boolean', + 'database.connections.mysql.engine' => 'NULL', + 'database.connections.mysql.options' => 'array', + 'database.connections.mariadb.driver' => 'string', + 'database.connections.mariadb.url' => 'NULL', + 'database.connections.mariadb.host' => 'string', + 'database.connections.mariadb.port' => 'string', + 'database.connections.mariadb.database' => 'string', + 'database.connections.mariadb.username' => 'string', + 'database.connections.mariadb.password' => 'string', + 'database.connections.mariadb.unix_socket' => 'string', + 'database.connections.mariadb.charset' => 'string', + 'database.connections.mariadb.collation' => 'string', + 'database.connections.mariadb.prefix' => 'string', + 'database.connections.mariadb.prefix_indexes' => 'boolean', + 'database.connections.mariadb.strict' => 'boolean', + 'database.connections.mariadb.engine' => 'NULL', + 'database.connections.mariadb.options' => 'array', + 'database.connections.pgsql.driver' => 'string', + 'database.connections.pgsql.url' => 'NULL', + 'database.connections.pgsql.host' => 'string', + 'database.connections.pgsql.port' => 'string', + 'database.connections.pgsql.database' => 'string', + 'database.connections.pgsql.username' => 'string', + 'database.connections.pgsql.password' => 'string', + 'database.connections.pgsql.charset' => 'string', + 'database.connections.pgsql.prefix' => 'string', + 'database.connections.pgsql.prefix_indexes' => 'boolean', + 'database.connections.pgsql.search_path' => 'string', + 'database.connections.pgsql.sslmode' => 'string', + 'database.connections.sqlsrv.driver' => 'string', + 'database.connections.sqlsrv.url' => 'NULL', + 'database.connections.sqlsrv.host' => 'string', + 'database.connections.sqlsrv.port' => 'string', + 'database.connections.sqlsrv.database' => 'string', + 'database.connections.sqlsrv.username' => 'string', + 'database.connections.sqlsrv.password' => 'string', + 'database.connections.sqlsrv.charset' => 'string', + 'database.connections.sqlsrv.prefix' => 'string', + 'database.connections.sqlsrv.prefix_indexes' => 'boolean', + 'database.migrations.table' => 'string', + 'database.migrations.update_date_on_publish' => 'boolean', + 'database.redis.client' => 'string', + 'database.redis.options.cluster' => 'string', + 'database.redis.options.prefix' => 'string', + 'database.redis.options.persistent' => 'boolean', + 'database.redis.default.url' => 'NULL', + 'database.redis.default.host' => 'string', + 'database.redis.default.username' => 'NULL', + 'database.redis.default.password' => 'NULL', + 'database.redis.default.port' => 'string', + 'database.redis.default.database' => 'string', + 'database.redis.default.max_retries' => 'integer', + 'database.redis.default.backoff_algorithm' => 'string', + 'database.redis.default.backoff_base' => 'integer', + 'database.redis.default.backoff_cap' => 'integer', + 'database.redis.cache.url' => 'NULL', + 'database.redis.cache.host' => 'string', + 'database.redis.cache.username' => 'NULL', + 'database.redis.cache.password' => 'NULL', + 'database.redis.cache.port' => 'string', + 'database.redis.cache.database' => 'string', + 'database.redis.cache.max_retries' => 'integer', + 'database.redis.cache.backoff_algorithm' => 'string', + 'database.redis.cache.backoff_base' => 'integer', + 'database.redis.cache.backoff_cap' => 'integer', + 'filesystems.default' => 'string', + 'filesystems.disks.local.driver' => 'string', + 'filesystems.disks.local.root' => 'string', + 'filesystems.disks.local.serve' => 'boolean', + 'filesystems.disks.local.throw' => 'boolean', + 'filesystems.disks.local.report' => 'boolean', + 'filesystems.disks.public.driver' => 'string', + 'filesystems.disks.public.root' => 'string', + 'filesystems.disks.public.url' => 'string', + 'filesystems.disks.public.visibility' => 'string', + 'filesystems.disks.public.throw' => 'boolean', + 'filesystems.disks.public.report' => 'boolean', + 'filesystems.disks.s3.driver' => 'string', + 'filesystems.disks.s3.key' => 'string', + 'filesystems.disks.s3.secret' => 'string', + 'filesystems.disks.s3.region' => 'string', + 'filesystems.disks.s3.bucket' => 'string', + 'filesystems.disks.s3.url' => 'NULL', + 'filesystems.disks.s3.endpoint' => 'NULL', + 'filesystems.disks.s3.use_path_style_endpoint' => 'boolean', + 'filesystems.disks.s3.throw' => 'boolean', + 'filesystems.disks.s3.report' => 'boolean', + 'filesystems.links./home/bandie/devel/c3gov/website/public/storage' => 'string', + 'logging.default' => 'string', + 'logging.deprecations.channel' => 'NULL', + 'logging.deprecations.trace' => 'boolean', + 'logging.channels.stack.driver' => 'string', + 'logging.channels.stack.channels' => 'array', + 'logging.channels.stack.ignore_exceptions' => 'boolean', + 'logging.channels.single.driver' => 'string', + 'logging.channels.single.path' => 'string', + 'logging.channels.single.level' => 'string', + 'logging.channels.single.replace_placeholders' => 'boolean', + 'logging.channels.daily.driver' => 'string', + 'logging.channels.daily.path' => 'string', + 'logging.channels.daily.level' => 'string', + 'logging.channels.daily.days' => 'integer', + 'logging.channels.daily.replace_placeholders' => 'boolean', + 'logging.channels.slack.driver' => 'string', + 'logging.channels.slack.url' => 'NULL', + 'logging.channels.slack.username' => 'string', + 'logging.channels.slack.emoji' => 'string', + 'logging.channels.slack.level' => 'string', + 'logging.channels.slack.replace_placeholders' => 'boolean', + 'logging.channels.papertrail.driver' => 'string', + 'logging.channels.papertrail.level' => 'string', + 'logging.channels.papertrail.handler' => 'string', + 'logging.channels.papertrail.handler_with.host' => 'NULL', + 'logging.channels.papertrail.handler_with.port' => 'NULL', + 'logging.channels.papertrail.handler_with.connectionString' => 'string', + 'logging.channels.papertrail.processors' => 'array', + 'logging.channels.stderr.driver' => 'string', + 'logging.channels.stderr.level' => 'string', + 'logging.channels.stderr.handler' => 'string', + 'logging.channels.stderr.handler_with.stream' => 'string', + 'logging.channels.stderr.formatter' => 'NULL', + 'logging.channels.stderr.processors' => 'array', + 'logging.channels.syslog.driver' => 'string', + 'logging.channels.syslog.level' => 'string', + 'logging.channels.syslog.facility' => 'integer', + 'logging.channels.syslog.replace_placeholders' => 'boolean', + 'logging.channels.errorlog.driver' => 'string', + 'logging.channels.errorlog.level' => 'string', + 'logging.channels.errorlog.replace_placeholders' => 'boolean', + 'logging.channels.null.driver' => 'string', + 'logging.channels.null.handler' => 'string', + 'logging.channels.emergency.path' => 'string', + 'mail.default' => 'string', + 'mail.mailers.smtp.transport' => 'string', + 'mail.mailers.smtp.scheme' => 'NULL', + 'mail.mailers.smtp.url' => 'NULL', + 'mail.mailers.smtp.host' => 'string', + 'mail.mailers.smtp.port' => 'string', + 'mail.mailers.smtp.username' => 'NULL', + 'mail.mailers.smtp.password' => 'NULL', + 'mail.mailers.smtp.timeout' => 'NULL', + 'mail.mailers.smtp.local_domain' => 'string', + 'mail.mailers.ses.transport' => 'string', + 'mail.mailers.postmark.transport' => 'string', + 'mail.mailers.resend.transport' => 'string', + 'mail.mailers.sendmail.transport' => 'string', + 'mail.mailers.sendmail.path' => 'string', + 'mail.mailers.log.transport' => 'string', + 'mail.mailers.log.channel' => 'NULL', + 'mail.mailers.array.transport' => 'string', + 'mail.mailers.failover.transport' => 'string', + 'mail.mailers.failover.mailers' => 'array', + 'mail.mailers.failover.retry_after' => 'integer', + 'mail.mailers.roundrobin.transport' => 'string', + 'mail.mailers.roundrobin.mailers' => 'array', + 'mail.mailers.roundrobin.retry_after' => 'integer', + 'mail.from.address' => 'string', + 'mail.from.name' => 'string', + 'mail.markdown.theme' => 'string', + 'mail.markdown.paths' => 'array', + 'mail.markdown.extensions' => 'array', + 'queue.default' => 'string', + 'queue.connections.sync.driver' => 'string', + 'queue.connections.database.driver' => 'string', + 'queue.connections.database.connection' => 'NULL', + 'queue.connections.database.table' => 'string', + 'queue.connections.database.queue' => 'string', + 'queue.connections.database.retry_after' => 'integer', + 'queue.connections.database.after_commit' => 'boolean', + 'queue.connections.beanstalkd.driver' => 'string', + 'queue.connections.beanstalkd.host' => 'string', + 'queue.connections.beanstalkd.queue' => 'string', + 'queue.connections.beanstalkd.retry_after' => 'integer', + 'queue.connections.beanstalkd.block_for' => 'integer', + 'queue.connections.beanstalkd.after_commit' => 'boolean', + 'queue.connections.sqs.driver' => 'string', + 'queue.connections.sqs.key' => 'string', + 'queue.connections.sqs.secret' => 'string', + 'queue.connections.sqs.prefix' => 'string', + 'queue.connections.sqs.queue' => 'string', + 'queue.connections.sqs.suffix' => 'NULL', + 'queue.connections.sqs.region' => 'string', + 'queue.connections.sqs.after_commit' => 'boolean', + 'queue.connections.redis.driver' => 'string', + 'queue.connections.redis.connection' => 'string', + 'queue.connections.redis.queue' => 'string', + 'queue.connections.redis.retry_after' => 'integer', + 'queue.connections.redis.block_for' => 'NULL', + 'queue.connections.redis.after_commit' => 'boolean', + 'queue.connections.deferred.driver' => 'string', + 'queue.connections.failover.driver' => 'string', + 'queue.connections.failover.connections' => 'array', + 'queue.connections.background.driver' => 'string', + 'queue.batching.database' => 'string', + 'queue.batching.table' => 'string', + 'queue.failed.driver' => 'string', + 'queue.failed.database' => 'string', + 'queue.failed.table' => 'string', + 'services.postmark.key' => 'NULL', + 'services.resend.key' => 'NULL', + 'services.ses.key' => 'string', + 'services.ses.secret' => 'string', + 'services.ses.region' => 'string', + 'services.slack.notifications.bot_user_oauth_token' => 'NULL', + 'services.slack.notifications.channel' => 'NULL', + 'session.driver' => 'string', + 'session.lifetime' => 'integer', + 'session.expire_on_close' => 'boolean', + 'session.encrypt' => 'boolean', + 'session.files' => 'string', + 'session.connection' => 'NULL', + 'session.table' => 'string', + 'session.store' => 'NULL', + 'session.lottery' => 'array', + 'session.cookie' => 'string', + 'session.path' => 'string', + 'session.domain' => 'NULL', + 'session.secure' => 'NULL', + 'session.http_only' => 'boolean', + 'session.same_site' => 'string', + 'session.partitioned' => 'boolean', + 'session.serialization' => 'string', + 'ide-helper.filename' => 'string', + 'ide-helper.models_filename' => 'string', + 'ide-helper.meta_filename' => 'string', + 'ide-helper.include_fluent' => 'boolean', + 'ide-helper.write_query_methods' => 'boolean', + 'ide-helper.write_model_magic_where' => 'boolean', + 'ide-helper.write_model_external_builder_methods' => 'boolean', + 'ide-helper.write_model_relation_count_properties' => 'boolean', + 'ide-helper.write_model_relation_exists_properties' => 'boolean', + 'ide-helper.write_eloquent_model_mixins' => 'boolean', + 'ide-helper.include_helpers' => 'boolean', + 'ide-helper.helper_files' => 'array', + 'ide-helper.model_locations' => 'array', + 'ide-helper.ignored_models' => 'array', + 'ide-helper.model_hooks' => 'array', + 'ide-helper.extra.Eloquent' => 'array', + 'ide-helper.extra.Session' => 'array', + 'ide-helper.magic' => 'array', + 'ide-helper.interfaces' => 'array', + 'ide-helper.model_camel_case_properties' => 'boolean', + 'ide-helper.type_overrides.integer' => 'string', + 'ide-helper.type_overrides.boolean' => 'string', + 'ide-helper.include_class_docblocks' => 'boolean', + 'ide-helper.force_fqn' => 'boolean', + 'ide-helper.use_generics_annotations' => 'boolean', + 'ide-helper.macro_default_return_types.Illuminate\Http\Client\Factory' => 'string', + 'ide-helper.additional_relation_types' => 'array', + 'ide-helper.additional_relation_return_types' => 'array', + 'ide-helper.enforce_nullable_relationships' => 'boolean', + 'ide-helper.soft_deletes_force_nullable' => 'boolean', + 'ide-helper.post_migrate' => 'array', + 'tinker.commands' => 'array', + 'tinker.alias' => 'array', + 'tinker.dont_alias' => 'array', + 'tinker.trust_project' => 'string', + ])); + + override(\Illuminate\Foundation\Testing\Concerns\InteractsWithContainer::mock(0), map(["" => "@&\Mockery\MockInterface"])); + override(\Illuminate\Foundation\Testing\Concerns\InteractsWithContainer::partialMock(0), map(["" => "@&\Mockery\MockInterface"])); + override(\Illuminate\Foundation\Testing\Concerns\InteractsWithContainer::instance(0), type(1)); + override(\Illuminate\Foundation\Testing\Concerns\InteractsWithContainer::spy(0), map(["" => "@&\Mockery\MockInterface"])); + override(\Illuminate\Support\Arr::add(0), type(0)); + override(\Illuminate\Support\Arr::except(0), type(0)); + override(\Illuminate\Support\Arr::first(0), elementType(0)); + override(\Illuminate\Support\Arr::last(0), elementType(0)); + override(\Illuminate\Support\Arr::get(0), elementType(0)); + override(\Illuminate\Support\Arr::only(0), type(0)); + override(\Illuminate\Support\Arr::prepend(0), type(0)); + override(\Illuminate\Support\Arr::pull(0), elementType(0)); + override(\Illuminate\Support\Arr::set(0), type(0)); + override(\Illuminate\Support\Arr::shuffle(0), type(0)); + override(\Illuminate\Support\Arr::sort(0), type(0)); + override(\Illuminate\Support\Arr::sortRecursive(0), type(0)); + override(\Illuminate\Support\Arr::where(0), type(0)); + override(\array_add(0), type(0)); + override(\array_except(0), type(0)); + override(\array_first(0), elementType(0)); + override(\array_last(0), elementType(0)); + override(\array_get(0), elementType(0)); + override(\array_only(0), type(0)); + override(\array_prepend(0), type(0)); + override(\array_pull(0), elementType(0)); + override(\array_set(0), type(0)); + override(\array_sort(0), type(0)); + override(\array_sort_recursive(0), type(0)); + override(\array_where(0), type(0)); + override(\head(0), elementType(0)); + override(\last(0), elementType(0)); + override(\with(0), type(0)); + override(\tap(0), type(0)); + override(\optional(0), type(0)); + + registerArgumentsSet('auth', ); + registerArgumentsSet('configs', +'concurrency.default','hashing.driver','hashing.bcrypt.rounds','hashing.bcrypt.verify','hashing.bcrypt.limit', +'hashing.argon.memory','hashing.argon.threads','hashing.argon.time','hashing.argon.verify','hashing.rehash_on_login', +'broadcasting.default','broadcasting.connections.reverb.driver','broadcasting.connections.reverb.key','broadcasting.connections.reverb.secret','broadcasting.connections.reverb.app_id', +'broadcasting.connections.reverb.options.host','broadcasting.connections.reverb.options.port','broadcasting.connections.reverb.options.scheme','broadcasting.connections.reverb.options.useTLS','broadcasting.connections.reverb.client_options', +'broadcasting.connections.pusher.driver','broadcasting.connections.pusher.key','broadcasting.connections.pusher.secret','broadcasting.connections.pusher.app_id','broadcasting.connections.pusher.options.cluster', +'broadcasting.connections.pusher.options.host','broadcasting.connections.pusher.options.port','broadcasting.connections.pusher.options.scheme','broadcasting.connections.pusher.options.encrypted','broadcasting.connections.pusher.options.useTLS', +'broadcasting.connections.pusher.client_options','broadcasting.connections.ably.driver','broadcasting.connections.ably.key','broadcasting.connections.log.driver','broadcasting.connections.null.driver', +'cors.paths','cors.allowed_methods','cors.allowed_origins','cors.allowed_origins_patterns','cors.allowed_headers', +'cors.exposed_headers','cors.max_age','cors.supports_credentials','view.paths','view.compiled', +'app.name','app.env','app.debug','app.url','app.frontend_url', +'app.asset_url','app.timezone','app.locale','app.fallback_locale','app.faker_locale', +'app.cipher','app.key','app.previous_keys','app.maintenance.driver','app.maintenance.store', +'app.providers','app.aliases.App','app.aliases.Arr','app.aliases.Artisan','app.aliases.Auth', +'app.aliases.Benchmark','app.aliases.Blade','app.aliases.Broadcast','app.aliases.Bus','app.aliases.Cache', +'app.aliases.Concurrency','app.aliases.Config','app.aliases.Context','app.aliases.Cookie','app.aliases.Crypt', +'app.aliases.Date','app.aliases.DB','app.aliases.Eloquent','app.aliases.Event','app.aliases.File', +'app.aliases.Gate','app.aliases.Hash','app.aliases.Http','app.aliases.Js','app.aliases.Lang', +'app.aliases.Log','app.aliases.Mail','app.aliases.Notification','app.aliases.Number','app.aliases.Password', +'app.aliases.Process','app.aliases.Queue','app.aliases.RateLimiter','app.aliases.Redirect','app.aliases.Request', +'app.aliases.Response','app.aliases.Route','app.aliases.Schedule','app.aliases.Schema','app.aliases.Session', +'app.aliases.Storage','app.aliases.Str','app.aliases.Uri','app.aliases.URL','app.aliases.Validator', +'app.aliases.View','app.aliases.Vite','auth.defaults.guard','auth.defaults.passwords','auth.guards.web.driver', +'auth.guards.web.provider','auth.providers.users.driver','auth.providers.users.model','auth.passwords.users.provider','auth.passwords.users.table', +'auth.passwords.users.expire','auth.passwords.users.throttle','auth.password_timeout','cache.default','cache.stores.array.driver', +'cache.stores.array.serialize','cache.stores.session.driver','cache.stores.session.key','cache.stores.database.driver','cache.stores.database.connection', +'cache.stores.database.table','cache.stores.database.lock_connection','cache.stores.database.lock_table','cache.stores.file.driver','cache.stores.file.path', +'cache.stores.file.lock_path','cache.stores.memcached.driver','cache.stores.memcached.persistent_id','cache.stores.memcached.sasl','cache.stores.memcached.options', +'cache.stores.memcached.servers.0.host','cache.stores.memcached.servers.0.port','cache.stores.memcached.servers.0.weight','cache.stores.redis.driver','cache.stores.redis.connection', +'cache.stores.redis.lock_connection','cache.stores.dynamodb.driver','cache.stores.dynamodb.key','cache.stores.dynamodb.secret','cache.stores.dynamodb.region', +'cache.stores.dynamodb.table','cache.stores.dynamodb.endpoint','cache.stores.octane.driver','cache.stores.failover.driver','cache.stores.failover.stores', +'cache.prefix','cache.serializable_classes','database.default','database.connections.sqlite.driver','database.connections.sqlite.url', +'database.connections.sqlite.database','database.connections.sqlite.prefix','database.connections.sqlite.foreign_key_constraints','database.connections.sqlite.busy_timeout','database.connections.sqlite.journal_mode', +'database.connections.sqlite.synchronous','database.connections.sqlite.transaction_mode','database.connections.mysql.driver','database.connections.mysql.url','database.connections.mysql.host', +'database.connections.mysql.port','database.connections.mysql.database','database.connections.mysql.username','database.connections.mysql.password','database.connections.mysql.unix_socket', +'database.connections.mysql.charset','database.connections.mysql.collation','database.connections.mysql.prefix','database.connections.mysql.prefix_indexes','database.connections.mysql.strict', +'database.connections.mysql.engine','database.connections.mysql.options','database.connections.mariadb.driver','database.connections.mariadb.url','database.connections.mariadb.host', +'database.connections.mariadb.port','database.connections.mariadb.database','database.connections.mariadb.username','database.connections.mariadb.password','database.connections.mariadb.unix_socket', +'database.connections.mariadb.charset','database.connections.mariadb.collation','database.connections.mariadb.prefix','database.connections.mariadb.prefix_indexes','database.connections.mariadb.strict', +'database.connections.mariadb.engine','database.connections.mariadb.options','database.connections.pgsql.driver','database.connections.pgsql.url','database.connections.pgsql.host', +'database.connections.pgsql.port','database.connections.pgsql.database','database.connections.pgsql.username','database.connections.pgsql.password','database.connections.pgsql.charset', +'database.connections.pgsql.prefix','database.connections.pgsql.prefix_indexes','database.connections.pgsql.search_path','database.connections.pgsql.sslmode','database.connections.sqlsrv.driver', +'database.connections.sqlsrv.url','database.connections.sqlsrv.host','database.connections.sqlsrv.port','database.connections.sqlsrv.database','database.connections.sqlsrv.username', +'database.connections.sqlsrv.password','database.connections.sqlsrv.charset','database.connections.sqlsrv.prefix','database.connections.sqlsrv.prefix_indexes','database.migrations.table', +'database.migrations.update_date_on_publish','database.redis.client','database.redis.options.cluster','database.redis.options.prefix','database.redis.options.persistent', +'database.redis.default.url','database.redis.default.host','database.redis.default.username','database.redis.default.password','database.redis.default.port', +'database.redis.default.database','database.redis.default.max_retries','database.redis.default.backoff_algorithm','database.redis.default.backoff_base','database.redis.default.backoff_cap', +'database.redis.cache.url','database.redis.cache.host','database.redis.cache.username','database.redis.cache.password','database.redis.cache.port', +'database.redis.cache.database','database.redis.cache.max_retries','database.redis.cache.backoff_algorithm','database.redis.cache.backoff_base','database.redis.cache.backoff_cap', +'filesystems.default','filesystems.disks.local.driver','filesystems.disks.local.root','filesystems.disks.local.serve','filesystems.disks.local.throw', +'filesystems.disks.local.report','filesystems.disks.public.driver','filesystems.disks.public.root','filesystems.disks.public.url','filesystems.disks.public.visibility', +'filesystems.disks.public.throw','filesystems.disks.public.report','filesystems.disks.s3.driver','filesystems.disks.s3.key','filesystems.disks.s3.secret', +'filesystems.disks.s3.region','filesystems.disks.s3.bucket','filesystems.disks.s3.url','filesystems.disks.s3.endpoint','filesystems.disks.s3.use_path_style_endpoint', +'filesystems.disks.s3.throw','filesystems.disks.s3.report','filesystems.links./home/bandie/devel/c3gov/website/public/storage','logging.default','logging.deprecations.channel', +'logging.deprecations.trace','logging.channels.stack.driver','logging.channels.stack.channels','logging.channels.stack.ignore_exceptions','logging.channels.single.driver', +'logging.channels.single.path','logging.channels.single.level','logging.channels.single.replace_placeholders','logging.channels.daily.driver','logging.channels.daily.path', +'logging.channels.daily.level','logging.channels.daily.days','logging.channels.daily.replace_placeholders','logging.channels.slack.driver','logging.channels.slack.url', +'logging.channels.slack.username','logging.channels.slack.emoji','logging.channels.slack.level','logging.channels.slack.replace_placeholders','logging.channels.papertrail.driver', +'logging.channels.papertrail.level','logging.channels.papertrail.handler','logging.channels.papertrail.handler_with.host','logging.channels.papertrail.handler_with.port','logging.channels.papertrail.handler_with.connectionString', +'logging.channels.papertrail.processors','logging.channels.stderr.driver','logging.channels.stderr.level','logging.channels.stderr.handler','logging.channels.stderr.handler_with.stream', +'logging.channels.stderr.formatter','logging.channels.stderr.processors','logging.channels.syslog.driver','logging.channels.syslog.level','logging.channels.syslog.facility', +'logging.channels.syslog.replace_placeholders','logging.channels.errorlog.driver','logging.channels.errorlog.level','logging.channels.errorlog.replace_placeholders','logging.channels.null.driver', +'logging.channels.null.handler','logging.channels.emergency.path','mail.default','mail.mailers.smtp.transport','mail.mailers.smtp.scheme', +'mail.mailers.smtp.url','mail.mailers.smtp.host','mail.mailers.smtp.port','mail.mailers.smtp.username','mail.mailers.smtp.password', +'mail.mailers.smtp.timeout','mail.mailers.smtp.local_domain','mail.mailers.ses.transport','mail.mailers.postmark.transport','mail.mailers.resend.transport', +'mail.mailers.sendmail.transport','mail.mailers.sendmail.path','mail.mailers.log.transport','mail.mailers.log.channel','mail.mailers.array.transport', +'mail.mailers.failover.transport','mail.mailers.failover.mailers','mail.mailers.failover.retry_after','mail.mailers.roundrobin.transport','mail.mailers.roundrobin.mailers', +'mail.mailers.roundrobin.retry_after','mail.from.address','mail.from.name','mail.markdown.theme','mail.markdown.paths', +'mail.markdown.extensions','queue.default','queue.connections.sync.driver','queue.connections.database.driver','queue.connections.database.connection', +'queue.connections.database.table','queue.connections.database.queue','queue.connections.database.retry_after','queue.connections.database.after_commit','queue.connections.beanstalkd.driver', +'queue.connections.beanstalkd.host','queue.connections.beanstalkd.queue','queue.connections.beanstalkd.retry_after','queue.connections.beanstalkd.block_for','queue.connections.beanstalkd.after_commit', +'queue.connections.sqs.driver','queue.connections.sqs.key','queue.connections.sqs.secret','queue.connections.sqs.prefix','queue.connections.sqs.queue', +'queue.connections.sqs.suffix','queue.connections.sqs.region','queue.connections.sqs.after_commit','queue.connections.redis.driver','queue.connections.redis.connection', +'queue.connections.redis.queue','queue.connections.redis.retry_after','queue.connections.redis.block_for','queue.connections.redis.after_commit','queue.connections.deferred.driver', +'queue.connections.failover.driver','queue.connections.failover.connections','queue.connections.background.driver','queue.batching.database','queue.batching.table', +'queue.failed.driver','queue.failed.database','queue.failed.table','services.postmark.key','services.resend.key', +'services.ses.key','services.ses.secret','services.ses.region','services.slack.notifications.bot_user_oauth_token','services.slack.notifications.channel', +'session.driver','session.lifetime','session.expire_on_close','session.encrypt','session.files', +'session.connection','session.table','session.store','session.lottery','session.cookie', +'session.path','session.domain','session.secure','session.http_only','session.same_site', +'session.partitioned','session.serialization','ide-helper.filename','ide-helper.models_filename','ide-helper.meta_filename', +'ide-helper.include_fluent','ide-helper.write_query_methods','ide-helper.write_model_magic_where','ide-helper.write_model_external_builder_methods','ide-helper.write_model_relation_count_properties', +'ide-helper.write_model_relation_exists_properties','ide-helper.write_eloquent_model_mixins','ide-helper.include_helpers','ide-helper.helper_files','ide-helper.model_locations', +'ide-helper.ignored_models','ide-helper.model_hooks','ide-helper.extra.Eloquent','ide-helper.extra.Session','ide-helper.magic', +'ide-helper.interfaces','ide-helper.model_camel_case_properties','ide-helper.type_overrides.integer','ide-helper.type_overrides.boolean','ide-helper.include_class_docblocks', +'ide-helper.force_fqn','ide-helper.use_generics_annotations','ide-helper.macro_default_return_types.Illuminate\\Http\\Client\\Factory','ide-helper.additional_relation_types','ide-helper.additional_relation_return_types', +'ide-helper.enforce_nullable_relationships','ide-helper.soft_deletes_force_nullable','ide-helper.post_migrate','tinker.commands','tinker.alias', +'tinker.dont_alias','tinker.trust_project',); + registerArgumentsSet('middleware', +'web','api','auth','auth.basic','auth.session', +'cache.headers','can','guest','password.confirm','precognitive', +'signed','throttle','verified',); + registerArgumentsSet('routes', 'about','contact','imprint', +'services','news', +'storage.local','storage.local.upload',); + registerArgumentsSet('views', +'content.index','layout.app','login.login','login.register','welcome', +'laravel-exceptions-renderer::components.badge','laravel-exceptions-renderer::components.empty-state','laravel-exceptions-renderer::components.file-with-line','laravel-exceptions-renderer::components.formatted-source','laravel-exceptions-renderer::components.frame', +'laravel-exceptions-renderer::components.frame-code','laravel-exceptions-renderer::components.header','laravel-exceptions-renderer::components.http-method','laravel-exceptions-renderer::components.icons.alert','laravel-exceptions-renderer::components.icons.check', +'laravel-exceptions-renderer::components.icons.chevron-left','laravel-exceptions-renderer::components.icons.chevron-right','laravel-exceptions-renderer::components.icons.chevrons-down-up','laravel-exceptions-renderer::components.icons.chevrons-left','laravel-exceptions-renderer::components.icons.chevrons-right', +'laravel-exceptions-renderer::components.icons.chevrons-up-down','laravel-exceptions-renderer::components.icons.copy','laravel-exceptions-renderer::components.icons.database','laravel-exceptions-renderer::components.icons.folder','laravel-exceptions-renderer::components.icons.folder-open', +'laravel-exceptions-renderer::components.icons.globe','laravel-exceptions-renderer::components.icons.info','laravel-exceptions-renderer::components.icons.laravel-ascii','laravel-exceptions-renderer::components.laravel-ascii-spotlight','laravel-exceptions-renderer::components.layout', +'laravel-exceptions-renderer::components.previous-exceptions','laravel-exceptions-renderer::components.query','laravel-exceptions-renderer::components.request-body','laravel-exceptions-renderer::components.request-header','laravel-exceptions-renderer::components.request-url', +'laravel-exceptions-renderer::components.routing','laravel-exceptions-renderer::components.routing-parameter','laravel-exceptions-renderer::components.section-container','laravel-exceptions-renderer::components.separator','laravel-exceptions-renderer::components.syntax-highlight', +'laravel-exceptions-renderer::components.topbar','laravel-exceptions-renderer::components.trace','laravel-exceptions-renderer::components.vendor-frame','laravel-exceptions-renderer::components.vendor-frames','laravel-exceptions-renderer::markdown', +'laravel-exceptions-renderer::show','laravel-exceptions::401','laravel-exceptions::402','laravel-exceptions::403','laravel-exceptions::404', +'laravel-exceptions::419','laravel-exceptions::429','laravel-exceptions::500','laravel-exceptions::503','laravel-exceptions::layout', +'laravel-exceptions::minimal','notifications::email','pagination::bootstrap-3','pagination::bootstrap-4','pagination::bootstrap-5', +'pagination::semantic-ui','pagination::simple-bootstrap-3','pagination::simple-bootstrap-4','pagination::simple-bootstrap-5','pagination::simple-tailwind', +'pagination::tailwind',); + registerArgumentsSet('translations', +'auth.failed','auth.password','auth.throttle','pagination.previous','pagination.next', +'passwords.reset','passwords.sent','passwords.throttled','passwords.token','passwords.user', +'validation.accepted','validation.accepted_if','validation.active_url','validation.after','validation.after_or_equal', +'validation.alpha','validation.alpha_dash','validation.alpha_num','validation.any_of','validation.array', +'validation.ascii','validation.before','validation.before_or_equal','validation.between.array','validation.between.file', +'validation.between.numeric','validation.between.string','validation.boolean','validation.can','validation.confirmed', +'validation.contains','validation.current_password','validation.date','validation.date_equals','validation.date_format', +'validation.decimal','validation.declined','validation.declined_if','validation.different','validation.digits', +'validation.digits_between','validation.dimensions','validation.distinct','validation.doesnt_contain','validation.doesnt_end_with', +'validation.doesnt_start_with','validation.email','validation.encoding','validation.ends_with','validation.enum', +'validation.exists','validation.extensions','validation.file','validation.filled','validation.gt.array', +'validation.gt.file','validation.gt.numeric','validation.gt.string','validation.gte.array','validation.gte.file', +'validation.gte.numeric','validation.gte.string','validation.hex_color','validation.image','validation.in', +'validation.in_array','validation.in_array_keys','validation.integer','validation.ip','validation.ipv4', +'validation.ipv6','validation.json','validation.list','validation.lowercase','validation.lt.array', +'validation.lt.file','validation.lt.numeric','validation.lt.string','validation.lte.array','validation.lte.file', +'validation.lte.numeric','validation.lte.string','validation.mac_address','validation.max.array','validation.max.file', +'validation.max.numeric','validation.max.string','validation.max_digits','validation.mimes','validation.mimetypes', +'validation.min.array','validation.min.file','validation.min.numeric','validation.min.string','validation.min_digits', +'validation.missing','validation.missing_if','validation.missing_unless','validation.missing_with','validation.missing_with_all', +'validation.multiple_of','validation.not_in','validation.not_regex','validation.numeric','validation.password.letters', +'validation.password.mixed','validation.password.numbers','validation.password.symbols','validation.password.uncompromised','validation.present', +'validation.present_if','validation.present_unless','validation.present_with','validation.present_with_all','validation.prohibited', +'validation.prohibited_if','validation.prohibited_if_accepted','validation.prohibited_if_declined','validation.prohibited_unless','validation.prohibits', +'validation.regex','validation.required','validation.required_array_keys','validation.required_if','validation.required_if_accepted', +'validation.required_if_declined','validation.required_unless','validation.required_with','validation.required_with_all','validation.required_without', +'validation.required_without_all','validation.same','validation.size.array','validation.size.file','validation.size.numeric', +'validation.size.string','validation.starts_with','validation.string','validation.timezone','validation.unique', +'validation.uploaded','validation.uppercase','validation.url','validation.ulid','validation.uuid', +'validation.custom.attribute-name.rule-name','app.subtitle','app.logo','app.banner','app.language.en', +'app.language.de','app.nav.about','app.nav.services','app.nav.news','app.nav.contact', +'app.nav.imprint',); + registerArgumentsSet('env', +'APP_NAME','APP_ENV','APP_KEY','APP_DEBUG','APP_URL', +'APP_LOCALE','APP_FALLBACK_LOCALE','APP_FAKER_LOCALE','APP_MAINTENANCE_DRIVER','BCRYPT_ROUNDS', +'LOG_CHANNEL','LOG_STACK','LOG_DEPRECATIONS_CHANNEL','LOG_LEVEL','DB_CONNECTION', +'DB_HOST','DB_PORT','DB_DATABASE','DB_USERNAME','DB_PASSWORD', +'SESSION_DRIVER','SESSION_LIFETIME','SESSION_ENCRYPT','SESSION_PATH','SESSION_DOMAIN', +'BROADCAST_CONNECTION','FILESYSTEM_DISK','QUEUE_CONNECTION','CACHE_STORE','MEMCACHED_HOST', +'REDIS_CLIENT','REDIS_HOST','REDIS_PASSWORD','REDIS_PORT','MAIL_MAILER', +'MAIL_SCHEME','MAIL_HOST','MAIL_PORT','MAIL_USERNAME','MAIL_PASSWORD', +'MAIL_FROM_ADDRESS','MAIL_FROM_NAME','AWS_ACCESS_KEY_ID','AWS_SECRET_ACCESS_KEY','AWS_DEFAULT_REGION', +'AWS_BUCKET','AWS_USE_PATH_STYLE_ENDPOINT','VITE_APP_NAME',); + + expectedArguments(\Illuminate\Support\Facades\Gate::has(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Gate::allows(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Gate::denies(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Gate::check(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Gate::any(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Gate::none(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Gate::authorize(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Gate::inspect(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Route::can(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Route::cannot(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Route::cant(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Auth::can(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Auth::cannot(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Support\Facades\Auth::cant(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Foundation\Auth\Access\Authorizable::can(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Foundation\Auth\Access\Authorizable::cannot(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Foundation\Auth\Access\Authorizable::cant(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Contracts\Auth\Access\Authorizable::can(), 0, argumentsSet('auth')); + expectedArguments(\Illuminate\Config\Repository::getMany(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Config\Repository::set(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Config\Repository::string(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Config\Repository::integer(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Config\Repository::boolean(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Config\Repository::float(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Config\Repository::array(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Config\Repository::prepend(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Config\Repository::push(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::getMany(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::set(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::string(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::integer(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::boolean(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::float(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::array(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::prepend(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Config::push(), 0, argumentsSet('configs')); + expectedArguments(\Illuminate\Support\Facades\Route::middleware(), 0, argumentsSet('middleware')); + expectedArguments(\Illuminate\Support\Facades\Route::withoutMiddleware(), 0, argumentsSet('middleware')); + expectedArguments(\Illuminate\Routing\Router::middleware(), 0, argumentsSet('middleware')); + expectedArguments(\Illuminate\Routing\Router::withoutMiddleware(), 0, argumentsSet('middleware')); + expectedArguments(\route(), 0, argumentsSet('routes')); + expectedArguments(\to_route(), 0, argumentsSet('routes')); + expectedArguments(\signedRoute(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Support\Facades\Redirect::route(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Support\Facades\Redirect::signedRoute(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Support\Facades\Redirect::temporarySignedRoute(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Support\Facades\URL::route(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Support\Facades\URL::signedRoute(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Support\Facades\URL::temporarySignedRoute(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Routing\Redirector::route(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Routing\Redirector::signedRoute(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Routing\Redirector::temporarySignedRoute(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Routing\UrlGenerator::route(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Routing\UrlGenerator::signedRoute(), 0, argumentsSet('routes')); + expectedArguments(\Illuminate\Routing\UrlGenerator::temporarySignedRoute(), 0, argumentsSet('routes')); + expectedArguments(\view(), 0, argumentsSet('views')); + expectedArguments(\Illuminate\Support\Facades\View::make(), 0, argumentsSet('views')); + expectedArguments(\Illuminate\View\Factory::make(), 0, argumentsSet('views')); + expectedArguments(\__(), 0, argumentsSet('translations')); + expectedArguments(\trans(), 0, argumentsSet('translations')); + expectedArguments(\Illuminate\Contracts\Translation\Translator::get(), 0, argumentsSet('translations')); + expectedArguments(\env(), 0, argumentsSet('env')); + expectedArguments(\Illuminate\Support\Env::get(), 0, argumentsSet('env')); + +} diff --git a/_ide_helper.php b/_ide_helper.php new file mode 100644 index 0000000..cab01ce --- /dev/null +++ b/_ide_helper.php @@ -0,0 +1,28856 @@ + + * @see https://github.com/barryvdh/laravel-ide-helper + */ +namespace Illuminate\Support\Facades { + /** + * @see \Illuminate\Foundation\Application + */ + class App { + /** + * Begin configuring a new Laravel application instance. + * + * @param string|null $basePath + * @return \Illuminate\Foundation\Configuration\ApplicationBuilder + * @static + */ + public static function configure($basePath = null) + { + return \Illuminate\Foundation\Application::configure($basePath); + } + + /** + * Infer the application's base directory from the environment. + * + * @return string + * @static + */ + public static function inferBasePath() + { + return \Illuminate\Foundation\Application::inferBasePath(); + } + + /** + * Get the version number of the application. + * + * @return string + * @static + */ + public static function version() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->version(); + } + + /** + * Run the given array of bootstrap classes. + * + * @param string[] $bootstrappers + * @return void + * @static + */ + public static function bootstrapWith($bootstrappers) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->bootstrapWith($bootstrappers); + } + + /** + * Register a callback to run after loading the environment. + * + * @param \Closure $callback + * @return void + * @static + */ + public static function afterLoadingEnvironment($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->afterLoadingEnvironment($callback); + } + + /** + * Register a callback to run before a bootstrapper. + * + * @param string $bootstrapper + * @param \Closure $callback + * @return void + * @static + */ + public static function beforeBootstrapping($bootstrapper, $callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->beforeBootstrapping($bootstrapper, $callback); + } + + /** + * Register a callback to run after a bootstrapper. + * + * @param string $bootstrapper + * @param \Closure $callback + * @return void + * @static + */ + public static function afterBootstrapping($bootstrapper, $callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->afterBootstrapping($bootstrapper, $callback); + } + + /** + * Determine if the application has been bootstrapped before. + * + * @return bool + * @static + */ + public static function hasBeenBootstrapped() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->hasBeenBootstrapped(); + } + + /** + * Set the base path for the application. + * + * @param string $basePath + * @return \Illuminate\Foundation\Application + * @static + */ + public static function setBasePath($basePath) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->setBasePath($basePath); + } + + /** + * Get the path to the application "app" directory. + * + * @param string $path + * @return string + * @static + */ + public static function path($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->path($path); + } + + /** + * Set the application directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useAppPath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useAppPath($path); + } + + /** + * Get the base path of the Laravel installation. + * + * @param string $path + * @return string + * @static + */ + public static function basePath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->basePath($path); + } + + /** + * Get the path to the bootstrap directory. + * + * @param string $path + * @return string + * @static + */ + public static function bootstrapPath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->bootstrapPath($path); + } + + /** + * Get the path to the service provider list in the bootstrap directory. + * + * @return string + * @static + */ + public static function getBootstrapProvidersPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getBootstrapProvidersPath(); + } + + /** + * Set the bootstrap file directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useBootstrapPath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useBootstrapPath($path); + } + + /** + * Get the path to the application configuration files. + * + * @param string $path + * @return string + * @static + */ + public static function configPath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->configPath($path); + } + + /** + * Set the configuration directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useConfigPath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useConfigPath($path); + } + + /** + * Get the path to the database directory. + * + * @param string $path + * @return string + * @static + */ + public static function databasePath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->databasePath($path); + } + + /** + * Set the database directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useDatabasePath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useDatabasePath($path); + } + + /** + * Get the path to the language files. + * + * @param string $path + * @return string + * @static + */ + public static function langPath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->langPath($path); + } + + /** + * Set the language file directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useLangPath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useLangPath($path); + } + + /** + * Get the path to the public / web directory. + * + * @param string $path + * @return string + * @static + */ + public static function publicPath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->publicPath($path); + } + + /** + * Set the public / web directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function usePublicPath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->usePublicPath($path); + } + + /** + * Get the path to the storage directory. + * + * @param string $path + * @return string + * @static + */ + public static function storagePath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->storagePath($path); + } + + /** + * Set the storage directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useStoragePath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useStoragePath($path); + } + + /** + * Get the path to the resources directory. + * + * @param string $path + * @return string + * @static + */ + public static function resourcePath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->resourcePath($path); + } + + /** + * Get the path to the views directory. + * + * This method returns the first configured path in the array of view paths. + * + * @param string $path + * @return string + * @static + */ + public static function viewPath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->viewPath($path); + } + + /** + * Join the given paths together. + * + * @param string $basePath + * @param string $path + * @return string + * @static + */ + public static function joinPaths($basePath, $path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->joinPaths($basePath, $path); + } + + /** + * Get the path to the environment file directory. + * + * @return string + * @static + */ + public static function environmentPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->environmentPath(); + } + + /** + * Set the directory for the environment file. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useEnvironmentPath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useEnvironmentPath($path); + } + + /** + * Set the environment file to be loaded during bootstrapping. + * + * @param string $file + * @return \Illuminate\Foundation\Application + * @static + */ + public static function loadEnvironmentFrom($file) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->loadEnvironmentFrom($file); + } + + /** + * Get the environment file the application is using. + * + * @return string + * @static + */ + public static function environmentFile() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->environmentFile(); + } + + /** + * Get the fully-qualified path to the environment file. + * + * @return string + * @static + */ + public static function environmentFilePath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->environmentFilePath(); + } + + /** + * Get or check the current application environment. + * + * @param string|array $environments + * @return string|bool + * @static + */ + public static function environment(...$environments) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->environment(...$environments); + } + + /** + * Determine if the application is in the local environment. + * + * @return bool + * @static + */ + public static function isLocal() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isLocal(); + } + + /** + * Determine if the application is in the production environment. + * + * @return bool + * @static + */ + public static function isProduction() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isProduction(); + } + + /** + * Detect the application's current environment. + * + * @param \Closure $callback + * @return string + * @static + */ + public static function detectEnvironment($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->detectEnvironment($callback); + } + + /** + * Determine if the application is running in the console. + * + * @return bool + * @static + */ + public static function runningInConsole() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->runningInConsole(); + } + + /** + * Determine if the application is running any of the given console commands. + * + * @param string|array $commands + * @return bool + * @static + */ + public static function runningConsoleCommand(...$commands) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->runningConsoleCommand(...$commands); + } + + /** + * Determine if the application is running unit tests. + * + * @return bool + * @static + */ + public static function runningUnitTests() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->runningUnitTests(); + } + + /** + * Determine if the application is running with debug mode enabled. + * + * @return bool + * @static + */ + public static function hasDebugModeEnabled() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->hasDebugModeEnabled(); + } + + /** + * Register a new registered listener. + * + * @param callable $callback + * @return void + * @static + */ + public static function registered($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->registered($callback); + } + + /** + * Register all of the configured providers. + * + * @return void + * @static + */ + public static function registerConfiguredProviders() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->registerConfiguredProviders(); + } + + /** + * Register a service provider with the application. + * + * @param \Illuminate\Support\ServiceProvider|string $provider + * @param bool $force + * @return \Illuminate\Support\ServiceProvider + * @static + */ + public static function register($provider, $force = false) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->register($provider, $force); + } + + /** + * Get the registered service provider instance if it exists. + * + * @param \Illuminate\Support\ServiceProvider|string $provider + * @return \Illuminate\Support\ServiceProvider|null + * @static + */ + public static function getProvider($provider) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getProvider($provider); + } + + /** + * Get the registered service provider instances if any exist. + * + * @param \Illuminate\Support\ServiceProvider|string $provider + * @return array + * @static + */ + public static function getProviders($provider) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getProviders($provider); + } + + /** + * Resolve a service provider instance from the class name. + * + * @param string $provider + * @return \Illuminate\Support\ServiceProvider + * @static + */ + public static function resolveProvider($provider) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->resolveProvider($provider); + } + + /** + * Load and boot all of the remaining deferred providers. + * + * @return void + * @static + */ + public static function loadDeferredProviders() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->loadDeferredProviders(); + } + + /** + * Load the provider for a deferred service. + * + * @param string $service + * @return void + * @static + */ + public static function loadDeferredProvider($service) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->loadDeferredProvider($service); + } + + /** + * Register a deferred provider and service. + * + * @param string $provider + * @param string|null $service + * @return void + * @static + */ + public static function registerDeferredProvider($provider, $service = null) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->registerDeferredProvider($provider, $service); + } + + /** + * Resolve the given type from the container. + * + * @template TClass of object + * @param string|class-string $abstract + * @param array $parameters + * @return ($abstract is class-string ? TClass : mixed) + * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @static + */ + public static function make($abstract, $parameters = []) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->make($abstract, $parameters); + } + + /** + * Determine if the given abstract type has been bound. + * + * @param string $abstract + * @return bool + * @static + */ + public static function bound($abstract) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->bound($abstract); + } + + /** + * Determine if the application has booted. + * + * @return bool + * @static + */ + public static function isBooted() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isBooted(); + } + + /** + * Boot the application's service providers. + * + * @return void + * @static + */ + public static function boot() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->boot(); + } + + /** + * Register a new boot listener. + * + * @param callable $callback + * @return void + * @static + */ + public static function booting($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->booting($callback); + } + + /** + * Register a new "booted" listener. + * + * @param callable $callback + * @return void + * @static + */ + public static function booted($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->booted($callback); + } + + /** + * {@inheritdoc} + * + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function handle($request, $type = 1, $catch = true) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->handle($request, $type, $catch); + } + + /** + * Handle the incoming HTTP request and send the response to the browser. + * + * @param \Illuminate\Http\Request $request + * @return void + * @static + */ + public static function handleRequest($request) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->handleRequest($request); + } + + /** + * Handle the incoming Artisan command. + * + * @param \Symfony\Component\Console\Input\InputInterface $input + * @return int + * @static + */ + public static function handleCommand($input) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->handleCommand($input); + } + + /** + * Determine if the framework's base configuration should be merged. + * + * @return bool + * @static + */ + public static function shouldMergeFrameworkConfiguration() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->shouldMergeFrameworkConfiguration(); + } + + /** + * Indicate that the framework's base configuration should not be merged. + * + * @return \Illuminate\Foundation\Application + * @static + */ + public static function dontMergeFrameworkConfiguration() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->dontMergeFrameworkConfiguration(); + } + + /** + * Determine if middleware has been disabled for the application. + * + * @return bool + * @static + */ + public static function shouldSkipMiddleware() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->shouldSkipMiddleware(); + } + + /** + * Get the path to the cached services.php file. + * + * @return string + * @static + */ + public static function getCachedServicesPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedServicesPath(); + } + + /** + * Get the path to the cached packages.php file. + * + * @return string + * @static + */ + public static function getCachedPackagesPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedPackagesPath(); + } + + /** + * Determine if the application configuration is cached. + * + * @return bool + * @static + */ + public static function configurationIsCached() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->configurationIsCached(); + } + + /** + * Get the path to the configuration cache file. + * + * @return string + * @static + */ + public static function getCachedConfigPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedConfigPath(); + } + + /** + * Determine if the application routes are cached. + * + * @return bool + * @static + */ + public static function routesAreCached() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->routesAreCached(); + } + + /** + * Get the path to the routes cache file. + * + * @return string + * @static + */ + public static function getCachedRoutesPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedRoutesPath(); + } + + /** + * Determine if the application events are cached. + * + * @return bool + * @static + */ + public static function eventsAreCached() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->eventsAreCached(); + } + + /** + * Get the path to the events cache file. + * + * @return string + * @static + */ + public static function getCachedEventsPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedEventsPath(); + } + + /** + * Add new prefix to list of absolute path prefixes. + * + * @param string $prefix + * @return \Illuminate\Foundation\Application + * @static + */ + public static function addAbsoluteCachePathPrefix($prefix) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->addAbsoluteCachePathPrefix($prefix); + } + + /** + * Get an instance of the maintenance mode manager implementation. + * + * @return \Illuminate\Contracts\Foundation\MaintenanceMode + * @static + */ + public static function maintenanceMode() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->maintenanceMode(); + } + + /** + * Determine if the application is currently down for maintenance. + * + * @return bool + * @static + */ + public static function isDownForMaintenance() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isDownForMaintenance(); + } + + /** + * Throw an HttpException with the given data. + * + * @param int $code + * @param string $message + * @param array $headers + * @return never + * @throws \Symfony\Component\HttpKernel\Exception\HttpException + * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException + * @static + */ + public static function abort($code, $message = '', $headers = []) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->abort($code, $message, $headers); + } + + /** + * Register a terminating callback with the application. + * + * @param callable|string $callback + * @return \Illuminate\Foundation\Application + * @static + */ + public static function terminating($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->terminating($callback); + } + + /** + * Terminate the application. + * + * @return void + * @static + */ + public static function terminate() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->terminate(); + } + + /** + * Get the service providers that have been loaded. + * + * @return array + * @static + */ + public static function getLoadedProviders() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getLoadedProviders(); + } + + /** + * Determine if the given service provider is loaded. + * + * @param string $provider + * @return bool + * @static + */ + public static function providerIsLoaded($provider) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->providerIsLoaded($provider); + } + + /** + * Get the application's deferred services. + * + * @return array + * @static + */ + public static function getDeferredServices() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getDeferredServices(); + } + + /** + * Set the application's deferred services. + * + * @param array $services + * @return void + * @static + */ + public static function setDeferredServices($services) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->setDeferredServices($services); + } + + /** + * Determine if the given service is a deferred service. + * + * @param string $service + * @return bool + * @static + */ + public static function isDeferredService($service) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isDeferredService($service); + } + + /** + * Add an array of services to the application's deferred services. + * + * @param array $services + * @return void + * @static + */ + public static function addDeferredServices($services) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->addDeferredServices($services); + } + + /** + * Remove an array of services from the application's deferred services. + * + * @param array $services + * @return void + * @static + */ + public static function removeDeferredServices($services) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->removeDeferredServices($services); + } + + /** + * Configure the real-time facade namespace. + * + * @param string $namespace + * @return void + * @static + */ + public static function provideFacades($namespace) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->provideFacades($namespace); + } + + /** + * Get the current application locale. + * + * @return string + * @static + */ + public static function getLocale() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getLocale(); + } + + /** + * Get the current application locale. + * + * @return string + * @static + */ + public static function currentLocale() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->currentLocale(); + } + + /** + * Get the current application fallback locale. + * + * @return string + * @static + */ + public static function getFallbackLocale() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getFallbackLocale(); + } + + /** + * Set the current application locale. + * + * @param string $locale + * @return void + * @static + */ + public static function setLocale($locale) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->setLocale($locale); + } + + /** + * Set the current application fallback locale. + * + * @param string $fallbackLocale + * @return void + * @static + */ + public static function setFallbackLocale($fallbackLocale) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->setFallbackLocale($fallbackLocale); + } + + /** + * Determine if the application locale is the given locale. + * + * @param string $locale + * @return bool + * @static + */ + public static function isLocale($locale) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isLocale($locale); + } + + /** + * Register the core class aliases in the container. + * + * @return void + * @static + */ + public static function registerCoreContainerAliases() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->registerCoreContainerAliases(); + } + + /** + * Flush the container of all bindings and resolved instances. + * + * @return void + * @static + */ + public static function flush() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->flush(); + } + + /** + * Get the application namespace. + * + * @return string + * @throws \RuntimeException + * @static + */ + public static function getNamespace() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getNamespace(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Foundation\Application::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Foundation\Application::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Foundation\Application::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Foundation\Application::flushMacros(); + } + + /** + * Define a contextual binding. + * + * @param array|string $concrete + * @return \Illuminate\Contracts\Container\ContextualBindingBuilder + * @static + */ + public static function when($concrete) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->when($concrete); + } + + /** + * Define a contextual binding based on an attribute. + * + * @return void + * @static + */ + public static function whenHasAttribute($attribute, $handler) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->whenHasAttribute($attribute, $handler); + } + + /** + * Returns true if the container can return an entry for the given identifier. + * + * Returns false otherwise. + * + * `has($id)` returning true does not mean that `get($id)` will not throw an exception. + * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`. + * + * @param string $id Identifier of the entry to look for. + * @return bool + * @static + */ + public static function has($id) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->has($id); + } + + /** + * Determine if the given abstract type has been resolved. + * + * @param string $abstract + * @return bool + * @static + */ + public static function resolved($abstract) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->resolved($abstract); + } + + /** + * Determine if a given type is shared. + * + * @param string $abstract + * @return bool + * @static + */ + public static function isShared($abstract) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isShared($abstract); + } + + /** + * Determine if a given string is an alias. + * + * @param string $name + * @return bool + * @static + */ + public static function isAlias($name) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isAlias($name); + } + + /** + * Register a binding with the container. + * + * @param \Closure|string $abstract + * @param \Closure|string|null $concrete + * @param bool $shared + * @return void + * @throws \TypeError + * @throws ReflectionException + * @static + */ + public static function bind($abstract, $concrete = null, $shared = false) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->bind($abstract, $concrete, $shared); + } + + /** + * Determine if the container has a method binding. + * + * @param string $method + * @return bool + * @static + */ + public static function hasMethodBinding($method) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->hasMethodBinding($method); + } + + /** + * Bind a callback to resolve with Container::call. + * + * @param array|string $method + * @param \Closure $callback + * @return void + * @static + */ + public static function bindMethod($method, $callback) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->bindMethod($method, $callback); + } + + /** + * Get the method binding for the given method. + * + * @param string $method + * @param mixed $instance + * @return mixed + * @static + */ + public static function callMethodBinding($method, $instance) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->callMethodBinding($method, $instance); + } + + /** + * Add a contextual binding to the container. + * + * @param string $concrete + * @param \Closure|string $abstract + * @param \Closure|string $implementation + * @return void + * @static + */ + public static function addContextualBinding($concrete, $abstract, $implementation) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->addContextualBinding($concrete, $abstract, $implementation); + } + + /** + * Register a binding if it hasn't already been registered. + * + * @param \Closure|string $abstract + * @param \Closure|string|null $concrete + * @param bool $shared + * @return void + * @static + */ + public static function bindIf($abstract, $concrete = null, $shared = false) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->bindIf($abstract, $concrete, $shared); + } + + /** + * Register a shared binding in the container. + * + * @param \Closure|string $abstract + * @param \Closure|string|null $concrete + * @return void + * @static + */ + public static function singleton($abstract, $concrete = null) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->singleton($abstract, $concrete); + } + + /** + * Register a shared binding if it hasn't already been registered. + * + * @param \Closure|string $abstract + * @param \Closure|string|null $concrete + * @return void + * @static + */ + public static function singletonIf($abstract, $concrete = null) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->singletonIf($abstract, $concrete); + } + + /** + * Register a scoped binding in the container. + * + * @param \Closure|string $abstract + * @param \Closure|string|null $concrete + * @return void + * @static + */ + public static function scoped($abstract, $concrete = null) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->scoped($abstract, $concrete); + } + + /** + * Register a scoped binding if it hasn't already been registered. + * + * @param \Closure|string $abstract + * @param \Closure|string|null $concrete + * @return void + * @static + */ + public static function scopedIf($abstract, $concrete = null) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->scopedIf($abstract, $concrete); + } + + /** + * "Extend" an abstract type in the container. + * + * @param string $abstract + * @return void + * @throws \InvalidArgumentException + * @static + */ + public static function extend($abstract, $closure) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->extend($abstract, $closure); + } + + /** + * Register an existing instance as shared in the container. + * + * @template TInstance of mixed + * @param string $abstract + * @param TInstance $instance + * @return TInstance + * @static + */ + public static function instance($abstract, $instance) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->instance($abstract, $instance); + } + + /** + * Assign a set of tags to a given binding. + * + * @param array|string $abstracts + * @param mixed $tags + * @return void + * @static + */ + public static function tag($abstracts, $tags) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->tag($abstracts, $tags); + } + + /** + * Resolve all of the bindings for a given tag. + * + * @param string $tag + * @return iterable + * @static + */ + public static function tagged($tag) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->tagged($tag); + } + + /** + * Alias a type to a different name. + * + * @param string $abstract + * @param string $alias + * @return void + * @throws \LogicException + * @static + */ + public static function alias($abstract, $alias) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->alias($abstract, $alias); + } + + /** + * Bind a new callback to an abstract's rebind event. + * + * @param string $abstract + * @return mixed + * @static + */ + public static function rebinding($abstract, $callback) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->rebinding($abstract, $callback); + } + + /** + * Refresh an instance on the given target and method. + * + * @param string $abstract + * @param mixed $target + * @param string $method + * @return mixed + * @static + */ + public static function refresh($abstract, $target, $method) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->refresh($abstract, $target, $method); + } + + /** + * Wrap the given closure such that its dependencies will be injected when executed. + * + * @return \Closure + * @static + */ + public static function wrap($callback, $parameters = []) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->wrap($callback, $parameters); + } + + /** + * Call the given Closure / class@method and inject its dependencies. + * + * @param callable|string $callback + * @param array $parameters + * @param string|null $defaultMethod + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function call($callback, $parameters = [], $defaultMethod = null) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->call($callback, $parameters, $defaultMethod); + } + + /** + * Get a closure to resolve the given type from the container. + * + * @template TClass of object + * @param string|class-string $abstract + * @return ($abstract is class-string ? \Closure(): TClass : \Closure(): mixed) + * @static + */ + public static function factory($abstract) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->factory($abstract); + } + + /** + * An alias function name for make(). + * + * @template TClass of object + * @param string|class-string|callable $abstract + * @return ($abstract is class-string ? TClass : mixed) + * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @static + */ + public static function makeWith($abstract, $parameters = []) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->makeWith($abstract, $parameters); + } + + /** + * {@inheritdoc} + * + * @template TClass of object + * @param string|class-string $id + * @return ($id is class-string ? TClass : mixed) + * @throws \Illuminate\Contracts\Container\CircularDependencyException + * @throws \Illuminate\Container\EntryNotFoundException + * @static + */ + public static function get($id) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->get($id); + } + + /** + * Instantiate a concrete instance of the given type. + * + * @template TClass of object + * @param \Closure(static, array): TClass|class-string $concrete + * @return TClass + * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @throws \Illuminate\Contracts\Container\CircularDependencyException + * @static + */ + public static function build($concrete) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->build($concrete); + } + + /** + * Resolve a dependency based on an attribute. + * + * @return mixed + * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @static + */ + public static function resolveFromAttribute($attribute) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->resolveFromAttribute($attribute); + } + + /** + * Register a new before resolving callback for all types. + * + * @param \Closure|string $abstract + * @return void + * @static + */ + public static function beforeResolving($abstract, $callback = null) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->beforeResolving($abstract, $callback); + } + + /** + * Register a new resolving callback. + * + * @param \Closure|string $abstract + * @return void + * @static + */ + public static function resolving($abstract, $callback = null) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->resolving($abstract, $callback); + } + + /** + * Register a new after resolving callback for all types. + * + * @param \Closure|string $abstract + * @return void + * @static + */ + public static function afterResolving($abstract, $callback = null) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->afterResolving($abstract, $callback); + } + + /** + * Register a new after resolving attribute callback for all types. + * + * @return void + * @static + */ + public static function afterResolvingAttribute($attribute, $callback) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->afterResolvingAttribute($attribute, $callback); + } + + /** + * Fire all of the after resolving attribute callbacks. + * + * @param \ReflectionAttribute[] $attributes + * @param mixed $object + * @return void + * @static + */ + public static function fireAfterResolvingAttributeCallbacks($attributes, $object) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->fireAfterResolvingAttributeCallbacks($attributes, $object); + } + + /** + * Get the name of the binding the container is currently resolving. + * + * @return class-string|string|null + * @static + */ + public static function currentlyResolving() + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->currentlyResolving(); + } + + /** + * Get the container's bindings. + * + * @return array + * @static + */ + public static function getBindings() + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getBindings(); + } + + /** + * Get the alias for an abstract if available. + * + * @param string $abstract + * @return string + * @static + */ + public static function getAlias($abstract) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getAlias($abstract); + } + + /** + * Remove all of the extender callbacks for a given type. + * + * @param string $abstract + * @return void + * @static + */ + public static function forgetExtenders($abstract) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->forgetExtenders($abstract); + } + + /** + * Remove a resolved instance from the instance cache. + * + * @param string $abstract + * @return void + * @static + */ + public static function forgetInstance($abstract) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->forgetInstance($abstract); + } + + /** + * Clear all of the instances from the container. + * + * @return void + * @static + */ + public static function forgetInstances() + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->forgetInstances(); + } + + /** + * Clear all of the scoped instances from the container. + * + * @return void + * @static + */ + public static function forgetScopedInstances() + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->forgetScopedInstances(); + } + + /** + * Set the callback which determines the current container environment. + * + * @param (callable(array|string): bool|string)|null $callback + * @return void + * @static + */ + public static function resolveEnvironmentUsing($callback) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->resolveEnvironmentUsing($callback); + } + + /** + * Determine the environment for the container. + * + * @param array|string $environments + * @return bool + * @static + */ + public static function currentEnvironmentIs($environments) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->currentEnvironmentIs($environments); + } + + /** + * Get the globally available instance of the container. + * + * @return static + * @static + */ + public static function getInstance() + { + //Method inherited from \Illuminate\Container\Container + return \Illuminate\Foundation\Application::getInstance(); + } + + /** + * Set the shared instance of the container. + * + * @return \Illuminate\Contracts\Container\Container|static + * @static + */ + public static function setInstance($container = null) + { + //Method inherited from \Illuminate\Container\Container + return \Illuminate\Foundation\Application::setInstance($container); + } + + /** + * Determine if a given offset exists. + * + * @param string $offset + * @static + */ + public static function offsetExists($offset) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->offsetExists($offset); + } + + /** + * Get the value at a given offset. + * + * @param string $offset + * @static + */ + public static function offsetGet($offset) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->offsetGet($offset); + } + + /** + * Set the value at a given offset. + * + * @param string $offset + * @param mixed $value + * @static + */ + public static function offsetSet($offset, $value) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->offsetSet($offset, $value); + } + + /** + * Unset the value at a given offset. + * + * @param string $offset + * @static + */ + public static function offsetUnset($offset) + { + //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->offsetUnset($offset); + } + + } + /** + * @see \Illuminate\Foundation\Console\Kernel + */ + class Artisan { + /** + * Re-route the Symfony command events to their Laravel counterparts. + * + * @internal + * @return \Illuminate\Foundation\Console\Kernel + * @static + */ + public static function rerouteSymfonyCommandEvents() + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->rerouteSymfonyCommandEvents(); + } + + /** + * Run the console application. + * + * @param \Symfony\Component\Console\Input\InputInterface $input + * @param \Symfony\Component\Console\Output\OutputInterface|null $output + * @return int + * @static + */ + public static function handle($input, $output = null) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->handle($input, $output); + } + + /** + * Terminate the application. + * + * @param \Symfony\Component\Console\Input\InputInterface $input + * @param int $status + * @return void + * @static + */ + public static function terminate($input, $status) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + $instance->terminate($input, $status); + } + + /** + * Register a callback to be invoked when the command lifecycle duration exceeds a given amount of time. + * + * @param \DateTimeInterface|\Carbon\CarbonInterval|float|int $threshold + * @param callable $handler + * @return void + * @static + */ + public static function whenCommandLifecycleIsLongerThan($threshold, $handler) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + $instance->whenCommandLifecycleIsLongerThan($threshold, $handler); + } + + /** + * When the command being handled started. + * + * @return \Illuminate\Support\Carbon|null + * @static + */ + public static function commandStartedAt() + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->commandStartedAt(); + } + + /** + * Resolve a console schedule instance. + * + * @return \Illuminate\Console\Scheduling\Schedule + * @static + */ + public static function resolveConsoleSchedule() + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->resolveConsoleSchedule(); + } + + /** + * Register a Closure based command with the application. + * + * @param string $signature + * @param \Closure $callback + * @return \Illuminate\Foundation\Console\ClosureCommand + * @static + */ + public static function command($signature, $callback) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->command($signature, $callback); + } + + /** + * Register the given command with the console application. + * + * @param \Symfony\Component\Console\Command\Command $command + * @return void + * @static + */ + public static function registerCommand($command) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + $instance->registerCommand($command); + } + + /** + * Run an Artisan console command by name. + * + * @param \Symfony\Component\Console\Command\Command|string $command + * @param array $parameters + * @param \Symfony\Component\Console\Output\OutputInterface|null $outputBuffer + * @return int + * @throws \Symfony\Component\Console\Exception\CommandNotFoundException + * @static + */ + public static function call($command, $parameters = [], $outputBuffer = null) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->call($command, $parameters, $outputBuffer); + } + + /** + * Queue the given console command. + * + * @param string $command + * @param array $parameters + * @return \Illuminate\Foundation\Bus\PendingDispatch + * @static + */ + public static function queue($command, $parameters = []) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->queue($command, $parameters); + } + + /** + * Get all of the commands registered with the console. + * + * @return array + * @static + */ + public static function all() + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->all(); + } + + /** + * Get the output for the last run command. + * + * @return string + * @static + */ + public static function output() + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->output(); + } + + /** + * Bootstrap the application for artisan commands. + * + * @return void + * @static + */ + public static function bootstrap() + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + $instance->bootstrap(); + } + + /** + * Bootstrap the application without booting service providers. + * + * @return void + * @static + */ + public static function bootstrapWithoutBootingProviders() + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + $instance->bootstrapWithoutBootingProviders(); + } + + /** + * Set the Artisan application instance. + * + * @param \Illuminate\Console\Application|null $artisan + * @return void + * @static + */ + public static function setArtisan($artisan) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + $instance->setArtisan($artisan); + } + + /** + * Set the Artisan commands provided by the application. + * + * @param array $commands + * @return \Illuminate\Foundation\Console\Kernel + * @static + */ + public static function addCommands($commands) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->addCommands($commands); + } + + /** + * Set the paths that should have their Artisan commands automatically discovered. + * + * @param array $paths + * @return \Illuminate\Foundation\Console\Kernel + * @static + */ + public static function addCommandPaths($paths) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->addCommandPaths($paths); + } + + /** + * Set the paths that should have their Artisan "routes" automatically discovered. + * + * @param array $paths + * @return \Illuminate\Foundation\Console\Kernel + * @static + */ + public static function addCommandRoutePaths($paths) + { + /** @var \Illuminate\Foundation\Console\Kernel $instance */ + return $instance->addCommandRoutePaths($paths); + } + + } + /** + * @see \Illuminate\Auth\AuthManager + * @see \Illuminate\Auth\SessionGuard + */ + class Auth { + /** + * Attempt to get the guard from the local cache. + * + * @param string|null $name + * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard + * @static + */ + public static function guard($name = null) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->guard($name); + } + + /** + * Create a session based authentication guard. + * + * @param string $name + * @param array $config + * @return \Illuminate\Auth\SessionGuard + * @static + */ + public static function createSessionDriver($name, $config) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->createSessionDriver($name, $config); + } + + /** + * Create a token based authentication guard. + * + * @param string $name + * @param array $config + * @return \Illuminate\Auth\TokenGuard + * @static + */ + public static function createTokenDriver($name, $config) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->createTokenDriver($name, $config); + } + + /** + * Get the default authentication driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Set the default guard driver the factory should serve. + * + * @param string $name + * @return void + * @static + */ + public static function shouldUse($name) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + $instance->shouldUse($name); + } + + /** + * Set the default authentication driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + $instance->setDefaultDriver($name); + } + + /** + * Register a new callback based request guard. + * + * @param string $driver + * @param callable $callback + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function viaRequest($driver, $callback) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->viaRequest($driver, $callback); + } + + /** + * Get the user resolver callback. + * + * @return \Closure + * @static + */ + public static function userResolver() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->userResolver(); + } + + /** + * Set the callback to be used to resolve users. + * + * @param \Closure $userResolver + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function resolveUsersUsing($userResolver) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->resolveUsersUsing($userResolver); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Register a custom provider creator Closure. + * + * @param string $name + * @param \Closure $callback + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function provider($name, $callback) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->provider($name, $callback); + } + + /** + * Determines if any guards have already been resolved. + * + * @return bool + * @static + */ + public static function hasResolvedGuards() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->hasResolvedGuards(); + } + + /** + * Forget all of the resolved guard instances. + * + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function forgetGuards() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->forgetGuards(); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function setApplication($app) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->setApplication($app); + } + + /** + * Create the user provider implementation for the driver. + * + * @param string|null $provider + * @return \Illuminate\Contracts\Auth\UserProvider|null + * @throws \InvalidArgumentException + * @static + */ + public static function createUserProvider($provider = null) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->createUserProvider($provider); + } + + /** + * Get the default user provider name. + * + * @return string + * @static + */ + public static function getDefaultUserProvider() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->getDefaultUserProvider(); + } + + /** + * Get the currently authenticated user. + * + * @return \App\Models\User|null + * @static + */ + public static function user() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->user(); + } + + /** + * Get the ID for the currently authenticated user. + * + * @return int|string|null + * @static + */ + public static function id() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->id(); + } + + /** + * Log a user into the application without sessions or cookies. + * + * @param array $credentials + * @return bool + * @static + */ + public static function once($credentials = []) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->once($credentials); + } + + /** + * Log the given user ID into the application without sessions or cookies. + * + * @param mixed $id + * @return \App\Models\User|false + * @static + */ + public static function onceUsingId($id) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->onceUsingId($id); + } + + /** + * Validate a user's credentials. + * + * @param array $credentials + * @return bool + * @static + */ + public static function validate($credentials = []) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->validate($credentials); + } + + /** + * Attempt to authenticate using HTTP Basic Auth. + * + * @param string $field + * @param array $extraConditions + * @return \Symfony\Component\HttpFoundation\Response|null + * @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException + * @static + */ + public static function basic($field = 'email', $extraConditions = []) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->basic($field, $extraConditions); + } + + /** + * Perform a stateless HTTP Basic login attempt. + * + * @param string $field + * @param array $extraConditions + * @return \Symfony\Component\HttpFoundation\Response|null + * @throws \Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException + * @static + */ + public static function onceBasic($field = 'email', $extraConditions = []) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->onceBasic($field, $extraConditions); + } + + /** + * Attempt to authenticate a user using the given credentials. + * + * @param array $credentials + * @param bool $remember + * @return bool + * @static + */ + public static function attempt($credentials = [], $remember = false) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->attempt($credentials, $remember); + } + + /** + * Attempt to authenticate a user with credentials and additional callbacks. + * + * @param array $credentials + * @param array|callable|null $callbacks + * @param bool $remember + * @return bool + * @static + */ + public static function attemptWhen($credentials = [], $callbacks = null, $remember = false) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->attemptWhen($credentials, $callbacks, $remember); + } + + /** + * Log the given user ID into the application. + * + * @param mixed $id + * @param bool $remember + * @return \App\Models\User|false + * @static + */ + public static function loginUsingId($id, $remember = false) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->loginUsingId($id, $remember); + } + + /** + * Log a user into the application. + * + * @param \Illuminate\Contracts\Auth\Authenticatable $user + * @param bool $remember + * @return void + * @static + */ + public static function login($user, $remember = false) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->login($user, $remember); + } + + /** + * Create a HMAC of the password hash for storage in cookies. + * + * @param string $passwordHash + * @return string + * @static + */ + public static function hashPasswordForCookie($passwordHash) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->hashPasswordForCookie($passwordHash); + } + + /** + * Log the user out of the application. + * + * @return void + * @static + */ + public static function logout() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->logout(); + } + + /** + * Log the user out of the application on their current device only. + * + * This method does not cycle the "remember" token. + * + * @return void + * @static + */ + public static function logoutCurrentDevice() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->logoutCurrentDevice(); + } + + /** + * Invalidate other sessions for the current user. + * + * The application must be using the AuthenticateSession middleware. + * + * @param string $password + * @return \App\Models\User|null + * @throws \Illuminate\Auth\AuthenticationException + * @static + */ + public static function logoutOtherDevices($password) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->logoutOtherDevices($password); + } + + /** + * Register an authentication attempt event listener. + * + * @param mixed $callback + * @return void + * @static + */ + public static function attempting($callback) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->attempting($callback); + } + + /** + * Get the last user we attempted to authenticate. + * + * @return \App\Models\User + * @static + */ + public static function getLastAttempted() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getLastAttempted(); + } + + /** + * Get a unique identifier for the auth session value. + * + * @return string + * @static + */ + public static function getName() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getName(); + } + + /** + * Get the name of the cookie used to store the "recaller". + * + * @return string + * @static + */ + public static function getRecallerName() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getRecallerName(); + } + + /** + * Determine if the user was authenticated via "remember me" cookie. + * + * @return bool + * @static + */ + public static function viaRemember() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->viaRemember(); + } + + /** + * Set the number of minutes the remember me cookie should be valid for. + * + * @param int $minutes + * @return \Illuminate\Auth\SessionGuard + * @static + */ + public static function setRememberDuration($minutes) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->setRememberDuration($minutes); + } + + /** + * Get the cookie creator instance used by the guard. + * + * @return \Illuminate\Contracts\Cookie\QueueingFactory + * @throws \RuntimeException + * @static + */ + public static function getCookieJar() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getCookieJar(); + } + + /** + * Set the cookie creator instance used by the guard. + * + * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookie + * @return void + * @static + */ + public static function setCookieJar($cookie) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->setCookieJar($cookie); + } + + /** + * Get the event dispatcher instance. + * + * @return \Illuminate\Contracts\Events\Dispatcher + * @static + */ + public static function getDispatcher() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getDispatcher(); + } + + /** + * Set the event dispatcher instance. + * + * @param \Illuminate\Contracts\Events\Dispatcher $events + * @return void + * @static + */ + public static function setDispatcher($events) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->setDispatcher($events); + } + + /** + * Get the session store used by the guard. + * + * @return \Illuminate\Contracts\Session\Session + * @static + */ + public static function getSession() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getSession(); + } + + /** + * Return the currently cached user. + * + * @return \App\Models\User|null + * @static + */ + public static function getUser() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getUser(); + } + + /** + * Set the current user. + * + * @param \Illuminate\Contracts\Auth\Authenticatable $user + * @return \Illuminate\Auth\SessionGuard + * @static + */ + public static function setUser($user) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->setUser($user); + } + + /** + * Get the current request instance. + * + * @return \Symfony\Component\HttpFoundation\Request + * @static + */ + public static function getRequest() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getRequest(); + } + + /** + * Set the current request instance. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @return \Illuminate\Auth\SessionGuard + * @static + */ + public static function setRequest($request) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->setRequest($request); + } + + /** + * Get the timebox instance used by the guard. + * + * @return \Illuminate\Support\Timebox + * @static + */ + public static function getTimebox() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getTimebox(); + } + + /** + * Determine if the current user is authenticated. If not, throw an exception. + * + * @return \App\Models\User + * @throws \Illuminate\Auth\AuthenticationException + * @static + */ + public static function authenticate() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->authenticate(); + } + + /** + * Determine if the guard has a user instance. + * + * @return bool + * @static + */ + public static function hasUser() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->hasUser(); + } + + /** + * Determine if the current user is authenticated. + * + * @return bool + * @static + */ + public static function check() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->check(); + } + + /** + * Determine if the current user is a guest. + * + * @return bool + * @static + */ + public static function guest() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->guest(); + } + + /** + * Forget the current user. + * + * @return \Illuminate\Auth\SessionGuard + * @static + */ + public static function forgetUser() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->forgetUser(); + } + + /** + * Get the user provider used by the guard. + * + * @return \Illuminate\Contracts\Auth\UserProvider + * @static + */ + public static function getProvider() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getProvider(); + } + + /** + * Set the user provider used by the guard. + * + * @param \Illuminate\Contracts\Auth\UserProvider $provider + * @return void + * @static + */ + public static function setProvider($provider) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->setProvider($provider); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Auth\SessionGuard::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Auth\SessionGuard::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Auth\SessionGuard::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Auth\SessionGuard::flushMacros(); + } + + } + /** + * @see \Illuminate\View\Compilers\BladeCompiler + */ + class Blade { + /** + * Compile the view at the given path. + * + * @param string|null $path + * @return void + * @static + */ + public static function compile($path = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->compile($path); + } + + /** + * Get the path currently being compiled. + * + * @return string + * @static + */ + public static function getPath() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getPath(); + } + + /** + * Set the path currently being compiled. + * + * @param string $path + * @return void + * @static + */ + public static function setPath($path) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->setPath($path); + } + + /** + * Compile the given Blade template contents. + * + * @param string $value + * @return string + * @static + */ + public static function compileString($value) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->compileString($value); + } + + /** + * Evaluate and render a Blade string to HTML. + * + * @param string $string + * @param array $data + * @param bool $deleteCachedView + * @return string + * @static + */ + public static function render($string, $data = [], $deleteCachedView = false) + { + return \Illuminate\View\Compilers\BladeCompiler::render($string, $data, $deleteCachedView); + } + + /** + * Render a component instance to HTML. + * + * @param \Illuminate\View\Component $component + * @return string + * @static + */ + public static function renderComponent($component) + { + return \Illuminate\View\Compilers\BladeCompiler::renderComponent($component); + } + + /** + * Strip the parentheses from the given expression. + * + * @param string $expression + * @return string + * @static + */ + public static function stripParentheses($expression) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->stripParentheses($expression); + } + + /** + * Register a custom Blade compiler. + * + * @param callable $compiler + * @return void + * @static + */ + public static function extend($compiler) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->extend($compiler); + } + + /** + * Get the extensions used by the compiler. + * + * @return array + * @static + */ + public static function getExtensions() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getExtensions(); + } + + /** + * Register an "if" statement directive. + * + * @param string $name + * @param callable $callback + * @return void + * @static + */ + public static function if($name, $callback) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->if($name, $callback); + } + + /** + * Check the result of a condition. + * + * @param string $name + * @param mixed $parameters + * @return bool + * @static + */ + public static function check($name, ...$parameters) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->check($name, ...$parameters); + } + + /** + * Register a class-based component alias directive. + * + * @param string $class + * @param string|null $alias + * @param string $prefix + * @return void + * @static + */ + public static function component($class, $alias = null, $prefix = '') + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->component($class, $alias, $prefix); + } + + /** + * Register an array of class-based components. + * + * @param array $components + * @param string $prefix + * @return void + * @static + */ + public static function components($components, $prefix = '') + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->components($components, $prefix); + } + + /** + * Get the registered class component aliases. + * + * @return array + * @static + */ + public static function getClassComponentAliases() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getClassComponentAliases(); + } + + /** + * Register a new anonymous component path. + * + * @param string $path + * @param string|null $prefix + * @return void + * @static + */ + public static function anonymousComponentPath($path, $prefix = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->anonymousComponentPath($path, $prefix); + } + + /** + * Register an anonymous component namespace. + * + * @param string $directory + * @param string|null $prefix + * @return void + * @static + */ + public static function anonymousComponentNamespace($directory, $prefix = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->anonymousComponentNamespace($directory, $prefix); + } + + /** + * Register a class-based component namespace. + * + * @param string $namespace + * @param string $prefix + * @return void + * @static + */ + public static function componentNamespace($namespace, $prefix) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->componentNamespace($namespace, $prefix); + } + + /** + * Get the registered anonymous component paths. + * + * @return array + * @static + */ + public static function getAnonymousComponentPaths() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getAnonymousComponentPaths(); + } + + /** + * Get the registered anonymous component namespaces. + * + * @return array + * @static + */ + public static function getAnonymousComponentNamespaces() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getAnonymousComponentNamespaces(); + } + + /** + * Get the registered class component namespaces. + * + * @return array + * @static + */ + public static function getClassComponentNamespaces() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getClassComponentNamespaces(); + } + + /** + * Register a component alias directive. + * + * @param string $path + * @param string|null $alias + * @return void + * @static + */ + public static function aliasComponent($path, $alias = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->aliasComponent($path, $alias); + } + + /** + * Register an include alias directive. + * + * @param string $path + * @param string|null $alias + * @return void + * @static + */ + public static function include($path, $alias = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->include($path, $alias); + } + + /** + * Register an include alias directive. + * + * @param string $path + * @param string|null $alias + * @return void + * @static + */ + public static function aliasInclude($path, $alias = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->aliasInclude($path, $alias); + } + + /** + * Register a handler for custom directives, binding the handler to the compiler. + * + * @param string $name + * @param callable $handler + * @return void + * @throws \InvalidArgumentException + * @static + */ + public static function bindDirective($name, $handler) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->bindDirective($name, $handler); + } + + /** + * Register a handler for custom directives. + * + * @param string $name + * @param ($bind is true ? \Closure : callable) $handler + * @param bool $bind + * @return void + * @throws \InvalidArgumentException + * @static + */ + public static function directive($name, $handler, $bind = false) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->directive($name, $handler, $bind); + } + + /** + * Get the list of custom directives. + * + * @return array + * @static + */ + public static function getCustomDirectives() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getCustomDirectives(); + } + + /** + * Indicate that the following callable should be used to prepare strings for compilation. + * + * @param callable $callback + * @return \Illuminate\View\Compilers\BladeCompiler + * @static + */ + public static function prepareStringsForCompilationUsing($callback) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->prepareStringsForCompilationUsing($callback); + } + + /** + * Register a new precompiler. + * + * @param callable $precompiler + * @return void + * @static + */ + public static function precompiler($precompiler) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->precompiler($precompiler); + } + + /** + * Execute the given callback using a custom echo format. + * + * @param string $format + * @param callable $callback + * @return string + * @static + */ + public static function usingEchoFormat($format, $callback) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->usingEchoFormat($format, $callback); + } + + /** + * Set the echo format to be used by the compiler. + * + * @param string $format + * @return void + * @static + */ + public static function setEchoFormat($format) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->setEchoFormat($format); + } + + /** + * Set the "echo" format to double encode entities. + * + * @return void + * @static + */ + public static function withDoubleEncoding() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->withDoubleEncoding(); + } + + /** + * Set the "echo" format to not double encode entities. + * + * @return void + * @static + */ + public static function withoutDoubleEncoding() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->withoutDoubleEncoding(); + } + + /** + * Indicate that component tags should not be compiled. + * + * @return void + * @static + */ + public static function withoutComponentTags() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->withoutComponentTags(); + } + + /** + * Get a new component hash for a component name. + * + * @param string $component + * @return string + * @static + */ + public static function newComponentHash($component) + { + return \Illuminate\View\Compilers\BladeCompiler::newComponentHash($component); + } + + /** + * Compile a class component opening. + * + * @param string $component + * @param string $alias + * @param string $data + * @param string $hash + * @return string + * @static + */ + public static function compileClassComponentOpening($component, $alias, $data, $hash) + { + return \Illuminate\View\Compilers\BladeCompiler::compileClassComponentOpening($component, $alias, $data, $hash); + } + + /** + * Compile the end-component statements into valid PHP. + * + * @return string + * @static + */ + public static function compileEndComponentClass() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->compileEndComponentClass(); + } + + /** + * Sanitize the given component attribute value. + * + * @param mixed $value + * @return mixed + * @static + */ + public static function sanitizeComponentAttribute($value) + { + return \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($value); + } + + /** + * Compile an end-once block into valid PHP. + * + * @return string + * @static + */ + public static function compileEndOnce() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->compileEndOnce(); + } + + /** + * Add a handler to be executed before echoing a given class. + * + * @param string|callable $class + * @param callable|null $handler + * @return void + * @static + */ + public static function stringable($class, $handler = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->stringable($class, $handler); + } + + /** + * Compile Blade echos into valid PHP. + * + * @param string $value + * @return string + * @static + */ + public static function compileEchos($value) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->compileEchos($value); + } + + /** + * Apply the echo handler for the value if it exists. + * + * @param string $value + * @return string + * @static + */ + public static function applyEchoHandler($value) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->applyEchoHandler($value); + } + + /** + * Get the path to the compiled version of a view. + * + * @param string $path + * @return string + * @static + */ + public static function getCompiledPath($path) + { + //Method inherited from \Illuminate\View\Compilers\Compiler + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getCompiledPath($path); + } + + /** + * Determine if the view at the given path is expired. + * + * @param string $path + * @return bool + * @throws \ErrorException + * @static + */ + public static function isExpired($path) + { + //Method inherited from \Illuminate\View\Compilers\Compiler + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->isExpired($path); + } + + } + /** + * @method static mixed auth(\Illuminate\Http\Request $request) + * @method static mixed validAuthenticationResponse(\Illuminate\Http\Request $request, mixed $result) + * @method static void broadcast(array $channels, string $event, array $payload = []) + * @method static array|null resolveAuthenticatedUser(\Illuminate\Http\Request $request) + * @method static void resolveAuthenticatedUserUsing(\Closure $callback) + * @method static \Illuminate\Broadcasting\Broadcasters\Broadcaster channel(\Illuminate\Contracts\Broadcasting\HasBroadcastChannel|string $channel, callable|string $callback, array $options = []) + * @method static \Illuminate\Support\Collection getChannels() + * @see \Illuminate\Broadcasting\BroadcastManager + * @see \Illuminate\Broadcasting\Broadcasters\Broadcaster + */ + class Broadcast { + /** + * Register the routes for handling broadcast channel authentication and sockets. + * + * @param array|null $attributes + * @return void + * @static + */ + public static function routes($attributes = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->routes($attributes); + } + + /** + * Register the routes for handling broadcast user authentication. + * + * @param array|null $attributes + * @return void + * @static + */ + public static function userRoutes($attributes = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->userRoutes($attributes); + } + + /** + * Register the routes for handling broadcast authentication and sockets. + * + * Alias of "routes" method. + * + * @param array|null $attributes + * @return void + * @static + */ + public static function channelRoutes($attributes = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->channelRoutes($attributes); + } + + /** + * Get the socket ID for the given request. + * + * @param \Illuminate\Http\Request|null $request + * @return string|null + * @static + */ + public static function socket($request = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->socket($request); + } + + /** + * Begin sending an anonymous broadcast to the given channels. + * + * @static + */ + public static function on($channels) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->on($channels); + } + + /** + * Begin sending an anonymous broadcast to the given private channels. + * + * @static + */ + public static function private($channel) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->private($channel); + } + + /** + * Begin sending an anonymous broadcast to the given presence channels. + * + * @static + */ + public static function presence($channel) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->presence($channel); + } + + /** + * Begin broadcasting an event. + * + * @param mixed $event + * @return \Illuminate\Broadcasting\PendingBroadcast + * @static + */ + public static function event($event = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->event($event); + } + + /** + * Queue the given event for broadcast. + * + * @param mixed $event + * @return void + * @static + */ + public static function queue($event) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->queue($event); + } + + /** + * Get a driver instance. + * + * @param string|null $name + * @return mixed + * @static + */ + public static function connection($name = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->connection($name); + } + + /** + * Get a driver instance. + * + * @param string|null $name + * @return mixed + * @static + */ + public static function driver($name = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->driver($name); + } + + /** + * Get a Pusher instance for the given configuration. + * + * @param array $config + * @return \Pusher\Pusher + * @static + */ + public static function pusher($config) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->pusher($config); + } + + /** + * Get an Ably instance for the given configuration. + * + * @param array $config + * @return \Ably\AblyRest + * @static + */ + public static function ably($config) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->ably($config); + } + + /** + * Get the default driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Set the default driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->setDefaultDriver($name); + } + + /** + * Disconnect the given driver / connection and remove it from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->purge($name); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Broadcasting\BroadcastManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Get the application instance used by the manager. + * + * @return \Illuminate\Contracts\Foundation\Application + * @static + */ + public static function getApplication() + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->getApplication(); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Broadcasting\BroadcastManager + * @static + */ + public static function setApplication($app) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->setApplication($app); + } + + /** + * Forget all of the resolved driver instances. + * + * @return \Illuminate\Broadcasting\BroadcastManager + * @static + */ + public static function forgetDrivers() + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->forgetDrivers(); + } + + /** + * Resolve the default connection name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveConnectionFromQueueRoute($queueable) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->resolveConnectionFromQueueRoute($queueable); + } + + /** + * Resolve the default queue name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveQueueFromQueueRoute($queueable) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->resolveQueueFromQueueRoute($queueable); + } + + } + /** + * @see \Illuminate\Bus\Dispatcher + * @see \Illuminate\Support\Testing\Fakes\BusFake + */ + class Bus { + /** + * Dispatch a command to its appropriate handler. + * + * @param mixed $command + * @return mixed + * @static + */ + public static function dispatch($command) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->dispatch($command); + } + + /** + * Dispatch a command to its appropriate handler in the current process. + * + * Queueable jobs will be dispatched to the "sync" queue. + * + * @param mixed $command + * @param mixed $handler + * @return mixed + * @static + */ + public static function dispatchSync($command, $handler = null) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->dispatchSync($command, $handler); + } + + /** + * Dispatch a command to its appropriate handler in the current process without using the synchronous queue. + * + * @param mixed $command + * @param mixed $handler + * @return mixed + * @static + */ + public static function dispatchNow($command, $handler = null) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->dispatchNow($command, $handler); + } + + /** + * Attempt to find the batch with the given ID. + * + * @return \Illuminate\Bus\Batch|null + * @static + */ + public static function findBatch($batchId) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->findBatch($batchId); + } + + /** + * Create a new batch of queueable jobs. + * + * @param \Illuminate\Support\Collection|mixed $jobs + * @return \Illuminate\Bus\PendingBatch + * @static + */ + public static function batch($jobs) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->batch($jobs); + } + + /** + * Create a new chain of queueable jobs. + * + * @param \Illuminate\Support\Collection|array|null $jobs + * @return \Illuminate\Foundation\Bus\PendingChain + * @static + */ + public static function chain($jobs = null) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->chain($jobs); + } + + /** + * Determine if the given command has a handler. + * + * @param mixed $command + * @return bool + * @static + */ + public static function hasCommandHandler($command) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->hasCommandHandler($command); + } + + /** + * Retrieve the handler for a command. + * + * @param mixed $command + * @return mixed + * @static + */ + public static function getCommandHandler($command) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->getCommandHandler($command); + } + + /** + * Dispatch a command to its appropriate handler behind a queue. + * + * @param mixed $command + * @return mixed + * @throws \RuntimeException + * @static + */ + public static function dispatchToQueue($command) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->dispatchToQueue($command); + } + + /** + * Dispatch a command to its appropriate handler after the current process. + * + * @param mixed $command + * @param mixed $handler + * @return void + * @static + */ + public static function dispatchAfterResponse($command, $handler = null) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + $instance->dispatchAfterResponse($command, $handler); + } + + /** + * Set the pipes through which commands should be piped before dispatching. + * + * @return \Illuminate\Bus\Dispatcher + * @static + */ + public static function pipeThrough($pipes) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->pipeThrough($pipes); + } + + /** + * Map a command to a handler. + * + * @return \Illuminate\Bus\Dispatcher + * @static + */ + public static function map($map) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->map($map); + } + + /** + * Allow dispatching after responses. + * + * @return \Illuminate\Bus\Dispatcher + * @static + */ + public static function withDispatchingAfterResponses() + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->withDispatchingAfterResponses(); + } + + /** + * Disable dispatching after responses. + * + * @return \Illuminate\Bus\Dispatcher + * @static + */ + public static function withoutDispatchingAfterResponses() + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->withoutDispatchingAfterResponses(); + } + + /** + * Resolve the default connection name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveConnectionFromQueueRoute($queueable) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->resolveConnectionFromQueueRoute($queueable); + } + + /** + * Resolve the default queue name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveQueueFromQueueRoute($queueable) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->resolveQueueFromQueueRoute($queueable); + } + + /** + * Specify the jobs that should be dispatched instead of faked. + * + * @param array|string $jobsToDispatch + * @return \Illuminate\Support\Testing\Fakes\BusFake + * @static + */ + public static function except($jobsToDispatch) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->except($jobsToDispatch); + } + + /** + * Assert if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertDispatched($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatched($command, $callback); + } + + /** + * Assert if a job was pushed exactly once. + * + * @param string|\Closure $command + * @return void + * @static + */ + public static function assertDispatchedOnce($command) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedOnce($command); + } + + /** + * Assert if a job was pushed a number of times. + * + * @param string|\Closure $command + * @param int $times + * @return void + * @static + */ + public static function assertDispatchedTimes($command, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedTimes($command, $times); + } + + /** + * Determine if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotDispatched($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNotDispatched($command, $callback); + } + + /** + * Assert that no jobs were dispatched. + * + * @return void + * @static + */ + public static function assertNothingDispatched() + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNothingDispatched(); + } + + /** + * Assert if a job was explicitly dispatched synchronously based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertDispatchedSync($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedSync($command, $callback); + } + + /** + * Assert if a job was pushed synchronously a number of times. + * + * @param string|\Closure $command + * @param int $times + * @return void + * @static + */ + public static function assertDispatchedSyncTimes($command, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedSyncTimes($command, $times); + } + + /** + * Determine if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotDispatchedSync($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNotDispatchedSync($command, $callback); + } + + /** + * Assert if a job was dispatched after the response was sent based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertDispatchedAfterResponse($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedAfterResponse($command, $callback); + } + + /** + * Assert if a job was pushed after the response was sent a number of times. + * + * @param string|\Closure $command + * @param int $times + * @return void + * @static + */ + public static function assertDispatchedAfterResponseTimes($command, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedAfterResponseTimes($command, $times); + } + + /** + * Determine if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotDispatchedAfterResponse($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNotDispatchedAfterResponse($command, $callback); + } + + /** + * Assert if a chain of jobs was dispatched. + * + * @param array $expectedChain + * @return void + * @static + */ + public static function assertChained($expectedChain) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertChained($expectedChain); + } + + /** + * Assert no chained jobs was dispatched. + * + * @return void + * @static + */ + public static function assertNothingChained() + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNothingChained(); + } + + /** + * Assert if a job was dispatched with an empty chain based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + * @static + */ + public static function assertDispatchedWithoutChain($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedWithoutChain($command, $callback); + } + + /** + * Create a new assertion about a chained batch. + * + * @param \Closure(\Illuminate\Bus\PendingBatch): bool $callback + * @return \Illuminate\Support\Testing\Fakes\ChainedBatchTruthTest + * @static + */ + public static function chainedBatch($callback) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->chainedBatch($callback); + } + + /** + * Assert if a batch was dispatched based on a truth-test callback. + * + * @param array|callable(\Illuminate\Bus\PendingBatch): bool $callback + * @return void + * @static + */ + public static function assertBatched($callback) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertBatched($callback); + } + + /** + * Assert the number of batches that have been dispatched. + * + * @param int $count + * @return void + * @static + */ + public static function assertBatchCount($count) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertBatchCount($count); + } + + /** + * Assert that no batched jobs were dispatched. + * + * @return void + * @static + */ + public static function assertNothingBatched() + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNothingBatched(); + } + + /** + * Assert that no jobs were dispatched, chained, or batched. + * + * @return void + * @static + */ + public static function assertNothingPlaced() + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNothingPlaced(); + } + + /** + * Get all of the jobs matching a truth-test callback. + * + * @param string $command + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function dispatched($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->dispatched($command, $callback); + } + + /** + * Get all of the jobs dispatched synchronously matching a truth-test callback. + * + * @param string $command + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function dispatchedSync($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->dispatchedSync($command, $callback); + } + + /** + * Get all of the jobs dispatched after the response was sent matching a truth-test callback. + * + * @param string $command + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function dispatchedAfterResponse($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->dispatchedAfterResponse($command, $callback); + } + + /** + * Get all of the pending batches matching a truth-test callback. + * + * @param callable(\Illuminate\Bus\PendingBatch): bool $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function batched($callback) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->batched($callback); + } + + /** + * Determine if there are any stored commands for a given class. + * + * @param string $command + * @return bool + * @static + */ + public static function hasDispatched($command) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->hasDispatched($command); + } + + /** + * Determine if there are any stored commands for a given class. + * + * @param string $command + * @return bool + * @static + */ + public static function hasDispatchedSync($command) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->hasDispatchedSync($command); + } + + /** + * Determine if there are any stored commands for a given class. + * + * @param string $command + * @return bool + * @static + */ + public static function hasDispatchedAfterResponse($command) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->hasDispatchedAfterResponse($command); + } + + /** + * Dispatch an empty job batch for testing. + * + * @param string $name + * @return \Illuminate\Bus\Batch + * @static + */ + public static function dispatchFakeBatch($name = '') + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->dispatchFakeBatch($name); + } + + /** + * Record the fake pending batch dispatch. + * + * @param \Illuminate\Bus\PendingBatch $pendingBatch + * @return \Illuminate\Bus\Batch + * @static + */ + public static function recordPendingBatch($pendingBatch) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->recordPendingBatch($pendingBatch); + } + + /** + * Specify if commands should be serialized and restored when being batched. + * + * @param bool $serializeAndRestore + * @return \Illuminate\Support\Testing\Fakes\BusFake + * @static + */ + public static function serializeAndRestore($serializeAndRestore = true) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->serializeAndRestore($serializeAndRestore); + } + + /** + * Get the batches that have been dispatched. + * + * @return array + * @static + */ + public static function dispatchedBatches() + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->dispatchedBatches(); + } + + } + /** + * @see \Illuminate\Cache\CacheManager + * @see \Illuminate\Cache\Repository + */ + class Cache { + /** + * Get a cache store instance by name, wrapped in a repository. + * + * @param string|null $name + * @return \Illuminate\Contracts\Cache\Repository + * @static + */ + public static function store($name = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->store($name); + } + + /** + * Get a cache driver instance. + * + * @param string|null $driver + * @return \Illuminate\Contracts\Cache\Repository + * @static + */ + public static function driver($driver = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->driver($driver); + } + + /** + * Get a memoized cache driver instance. + * + * @param string|null $driver + * @return \Illuminate\Contracts\Cache\Repository + * @static + */ + public static function memo($driver = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->memo($driver); + } + + /** + * Resolve the given store. + * + * @param string $name + * @return \Illuminate\Contracts\Cache\Repository + * @throws \InvalidArgumentException + * @static + */ + public static function resolve($name) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->resolve($name); + } + + /** + * Build a cache repository with the given configuration. + * + * @param array $config + * @return \Illuminate\Cache\Repository + * @throws \InvalidArgumentException + * @static + */ + public static function build($config) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->build($config); + } + + /** + * Create a new cache repository with the given implementation. + * + * @param \Illuminate\Contracts\Cache\Store $store + * @param array $config + * @return \Illuminate\Cache\Repository + * @static + */ + public static function repository($store, $config = []) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->repository($store, $config); + } + + /** + * Re-set the event dispatcher on all resolved cache repositories. + * + * @return void + * @static + */ + public static function refreshEventDispatcher() + { + /** @var \Illuminate\Cache\CacheManager $instance */ + $instance->refreshEventDispatcher(); + } + + /** + * Get the default cache driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Set the default cache driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + $instance->setDefaultDriver($name); + } + + /** + * Unset the given driver instances. + * + * @param array|string|null $name + * @return \Illuminate\Cache\CacheManager + * @static + */ + public static function forgetDriver($name = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->forgetDriver($name); + } + + /** + * Disconnect the given driver and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + $instance->purge($name); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Cache\CacheManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Cache\CacheManager + * @static + */ + public static function setApplication($app) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->setApplication($app); + } + + /** + * Determine if an item exists in the cache. + * + * @param \UnitEnum|array|string $key + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->has($key); + } + + /** + * Determine if an item doesn't exist in the cache. + * + * @param \UnitEnum|string $key + * @return bool + * @static + */ + public static function missing($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->missing($key); + } + + /** + * Retrieve an item from the cache by key. + * + * @param \UnitEnum|array|string $key + * @param mixed $default + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->get($key, $default); + } + + /** + * Retrieve multiple items from the cache by key. + * + * Items not found in the cache will have a null value. + * + * @return array + * @static + */ + public static function many($keys) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->many($keys); + } + + /** + * Obtains multiple cache items by their unique keys. + * + * @param iterable $keys A list of keys that can be obtained in a single operation. + * @param mixed $default Default value to return for keys that do not exist. + * @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value. + * @throws \Psr\SimpleCache\InvalidArgumentException + * MUST be thrown if $keys is neither an array nor a Traversable, + * or if any of the $keys are not a legal value. + * @static + */ + public static function getMultiple($keys, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getMultiple($keys, $default); + } + + /** + * Retrieve an item from the cache and delete it. + * + * @param \UnitEnum|array|string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function pull($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->pull($key, $default); + } + + /** + * Retrieve a string item from the cache. + * + * @param \UnitEnum|string $key + * @param (\Closure():(string|null))|string|null $default + * @throws \InvalidArgumentException + * @static + */ + public static function string($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->string($key, $default); + } + + /** + * Retrieve an integer item from the cache. + * + * @param \UnitEnum|string $key + * @param (\Closure():(int|null))|int|null $default + * @throws \InvalidArgumentException + * @static + */ + public static function integer($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->integer($key, $default); + } + + /** + * Retrieve a float item from the cache. + * + * @param \UnitEnum|string $key + * @param (\Closure():(float|null))|float|null $default + * @throws \InvalidArgumentException + * @static + */ + public static function float($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->float($key, $default); + } + + /** + * Retrieve a boolean item from the cache. + * + * @param \UnitEnum|string $key + * @param (\Closure():(bool|null))|bool|null $default + * @throws \InvalidArgumentException + * @static + */ + public static function boolean($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->boolean($key, $default); + } + + /** + * Retrieve an array item from the cache. + * + * @param \UnitEnum|string $key + * @param (\Closure():(array|null))|array|null $default + * @return array + * @throws \InvalidArgumentException + * @static + */ + public static function array($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->array($key, $default); + } + + /** + * Store an item in the cache. + * + * @param \UnitEnum|array|string $key + * @param mixed $value + * @param \DateTimeInterface|\DateInterval|int|null $ttl + * @return bool + * @static + */ + public static function put($key, $value, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->put($key, $value, $ttl); + } + + /** + * Store an item in the cache. + * + * @param \UnitEnum|array|string $key + * @param mixed $value + * @param \DateTimeInterface|\DateInterval|int|null $ttl + * @static + */ + public static function set($key, $value, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->set($key, $value, $ttl); + } + + /** + * Store multiple items in the cache for a given number of seconds. + * + * @param \DateTimeInterface|\DateInterval|int|null $ttl + * @return bool + * @static + */ + public static function putMany($values, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->putMany($values, $ttl); + } + + /** + * Persists a set of key => value pairs in the cache, with an optional TTL. + * + * @param iterable $values A list of key => value pairs for a multiple-set operation. + * @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and + * the driver supports TTL then the library may set a default value + * for it or let the driver take care of that. + * @return bool True on success and false on failure. + * @throws \Psr\SimpleCache\InvalidArgumentException + * MUST be thrown if $values is neither an array nor a Traversable, + * or if any of the $values are not a legal value. + * @static + */ + public static function setMultiple($values, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->setMultiple($values, $ttl); + } + + /** + * Store an item in the cache if the key does not exist. + * + * @param \UnitEnum|array|string $key + * @param mixed $value + * @param \DateTimeInterface|\DateInterval|int|null $ttl + * @return bool + * @static + */ + public static function add($key, $value, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->add($key, $value, $ttl); + } + + /** + * Increment the value of an item in the cache. + * + * @param \UnitEnum|string $key + * @param mixed $value + * @return int|bool + * @static + */ + public static function increment($key, $value = 1) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->increment($key, $value); + } + + /** + * Decrement the value of an item in the cache. + * + * @param \UnitEnum|string $key + * @param mixed $value + * @return int|bool + * @static + */ + public static function decrement($key, $value = 1) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->decrement($key, $value); + } + + /** + * Store an item in the cache indefinitely. + * + * @param \UnitEnum|string $key + * @param mixed $value + * @return bool + * @static + */ + public static function forever($key, $value) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->forever($key, $value); + } + + /** + * Get an item from the cache, or execute the given Closure and store the result. + * + * @template TCacheValue + * @param \UnitEnum|string $key + * @param \Closure|\DateTimeInterface|\DateInterval|int|null $ttl + * @param \Closure(): TCacheValue $callback + * @return TCacheValue + * @static + */ + public static function remember($key, $ttl, $callback) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->remember($key, $ttl, $callback); + } + + /** + * Get an item from the cache, or execute the given Closure and store the result forever. + * + * @template TCacheValue + * @param \UnitEnum|string $key + * @param \Closure(): TCacheValue $callback + * @return TCacheValue + * @static + */ + public static function sear($key, $callback) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->sear($key, $callback); + } + + /** + * Get an item from the cache, or execute the given Closure and store the result forever. + * + * @template TCacheValue + * @param \UnitEnum|string $key + * @param \Closure(): TCacheValue $callback + * @return TCacheValue + * @static + */ + public static function rememberForever($key, $callback) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->rememberForever($key, $callback); + } + + /** + * Retrieve an item from the cache by key, refreshing it in the background if it is stale. + * + * @template TCacheValue + * @param \UnitEnum|string $key + * @param array{ 0: \DateTimeInterface|\DateInterval|int, 1: \DateTimeInterface|\DateInterval|int } $ttl + * @param (callable(): TCacheValue) $callback + * @param array{ seconds?: int, owner?: string }|null $lock + * @param bool $alwaysDefer + * @return TCacheValue + * @static + */ + public static function flexible($key, $ttl, $callback, $lock = null, $alwaysDefer = false) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->flexible($key, $ttl, $callback, $lock, $alwaysDefer); + } + + /** + * Set the expiration of a cached item. + * + * @param string $key + * @param \DateTimeInterface|\DateInterval|int $ttl + * @return bool + * @static + */ + public static function touch($key, $ttl) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->touch($key, $ttl); + } + + /** + * Execute a callback while holding an atomic lock on a cache mutex to prevent overlapping calls. + * + * @template TReturn + * @param \UnitEnum|string $key + * @param callable(): TReturn $callback + * @param int $lockFor + * @param int $waitFor + * @param string|null $owner + * @return TReturn + * @throws \Illuminate\Contracts\Cache\LockTimeoutException + * @static + */ + public static function withoutOverlapping($key, $callback, $lockFor = 0, $waitFor = 10, $owner = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->withoutOverlapping($key, $callback, $lockFor, $waitFor, $owner); + } + + /** + * Funnel a callback for a maximum number of simultaneous executions. + * + * @param \UnitEnum|string $name + * @return \Illuminate\Cache\Limiters\ConcurrencyLimiterBuilder + * @static + */ + public static function funnel($name) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->funnel($name); + } + + /** + * Remove an item from the cache. + * + * @param \UnitEnum|array|string $key + * @return bool + * @static + */ + public static function forget($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->forget($key); + } + + /** + * Remove an item from the cache. + * + * @param \UnitEnum|array|string $key + * @static + */ + public static function delete($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->delete($key); + } + + /** + * Deletes multiple cache items in a single operation. + * + * @param iterable $keys A list of string-based keys to be deleted. + * @return bool True if the items were successfully removed. False if there was an error. + * @throws \Psr\SimpleCache\InvalidArgumentException + * MUST be thrown if $keys is neither an array nor a Traversable, + * or if any of the $keys are not a legal value. + * @static + */ + public static function deleteMultiple($keys) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->deleteMultiple($keys); + } + + /** + * Wipes clean the entire cache's keys. + * + * @return bool True on success and false on failure. + * @static + */ + public static function clear() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->clear(); + } + + /** + * Flush all locks from the cache store. + * + * @throws \BadMethodCallException + * @static + */ + public static function flushLocks() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->flushLocks(); + } + + /** + * Begin executing a new tags operation if the store supports it. + * + * @param mixed $names + * @return \Illuminate\Cache\TaggedCache + * @throws \BadMethodCallException + * @static + */ + public static function tags($names) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->tags($names); + } + + /** + * Get the name of the cache store. + * + * @return string|null + * @static + */ + public static function getName() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getName(); + } + + /** + * Determine if the current store supports tags. + * + * @return bool + * @static + */ + public static function supportsTags() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->supportsTags(); + } + + /** + * Determine if the current store supports flushing locks. + * + * @static + */ + public static function supportsFlushingLocks() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->supportsFlushingLocks(); + } + + /** + * Get the default cache time. + * + * @return int|null + * @static + */ + public static function getDefaultCacheTime() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getDefaultCacheTime(); + } + + /** + * Set the default cache time in seconds. + * + * @param int|null $seconds + * @return \Illuminate\Cache\Repository + * @static + */ + public static function setDefaultCacheTime($seconds) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->setDefaultCacheTime($seconds); + } + + /** + * Get the cache store implementation. + * + * @return \Illuminate\Contracts\Cache\Store + * @static + */ + public static function getStore() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getStore(); + } + + /** + * Set the cache store implementation. + * + * @param \Illuminate\Contracts\Cache\Store $store + * @return static + * @static + */ + public static function setStore($store) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->setStore($store); + } + + /** + * Get the event dispatcher instance. + * + * @return \Illuminate\Contracts\Events\Dispatcher|null + * @static + */ + public static function getEventDispatcher() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getEventDispatcher(); + } + + /** + * Set the event dispatcher instance. + * + * @return void + * @static + */ + public static function setEventDispatcher($events) + { + /** @var \Illuminate\Cache\Repository $instance */ + $instance->setEventDispatcher($events); + } + + /** + * Determine if a cached value exists. + * + * @param \UnitEnum|string $offset + * @static + */ + public static function offsetExists($offset) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->offsetExists($offset); + } + + /** + * Retrieve an item from the cache by key. + * + * @param \UnitEnum|string $offset + * @static + */ + public static function offsetGet($offset) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->offsetGet($offset); + } + + /** + * Store an item in the cache for the default time. + * + * @param \UnitEnum|string $offset + * @param mixed $value + * @static + */ + public static function offsetSet($offset, $value) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->offsetSet($offset, $value); + } + + /** + * Remove an item from the cache. + * + * @param \UnitEnum|string $offset + * @static + */ + public static function offsetUnset($offset) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->offsetUnset($offset); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Cache\Repository::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Cache\Repository::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Cache\Repository::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Cache\Repository::flushMacros(); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->macroCall($method, $parameters); + } + + /** + * Get a lock instance. + * + * @param string $name + * @param int $seconds + * @param string|null $owner + * @return \Illuminate\Contracts\Cache\Lock + * @static + */ + public static function lock($name, $seconds = 0, $owner = null) + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->lock($name, $seconds, $owner); + } + + /** + * Restore a lock instance using the owner identifier. + * + * @param string $name + * @param string $owner + * @return \Illuminate\Contracts\Cache\Lock + * @static + */ + public static function restoreLock($name, $owner) + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->restoreLock($name, $owner); + } + + /** + * Remove an item from the cache if it is expired. + * + * @param string $key + * @return bool + * @static + */ + public static function forgetIfExpired($key) + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->forgetIfExpired($key); + } + + /** + * Remove all items from the cache. + * + * @return bool + * @static + */ + public static function flush() + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->flush(); + } + + /** + * Get the underlying database connection. + * + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function getConnection() + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->getConnection(); + } + + /** + * Set the underlying database connection. + * + * @param \Illuminate\Database\ConnectionInterface $connection + * @return \Illuminate\Cache\DatabaseStore + * @static + */ + public static function setConnection($connection) + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->setConnection($connection); + } + + /** + * Get the connection used to manage locks. + * + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function getLockConnection() + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->getLockConnection(); + } + + /** + * Specify the connection that should be used to manage locks. + * + * @param \Illuminate\Database\ConnectionInterface $connection + * @return \Illuminate\Cache\DatabaseStore + * @static + */ + public static function setLockConnection($connection) + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->setLockConnection($connection); + } + + /** + * Get the cache key prefix. + * + * @return string + * @static + */ + public static function getPrefix() + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->getPrefix(); + } + + /** + * Set the cache key prefix. + * + * @param string $prefix + * @return void + * @static + */ + public static function setPrefix($prefix) + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + $instance->setPrefix($prefix); + } + + /** + * Determine if the lock store is separate from the cache store. + * + * @return bool + * @static + */ + public static function hasSeparateLockStore() + { + /** @var \Illuminate\Cache\DatabaseStore $instance */ + return $instance->hasSeparateLockStore(); + } + + } + /** + * @method static array run(\Closure|array $tasks) + * @method static \Illuminate\Support\Defer\DeferredCallback defer(\Closure|array $tasks) + * @see \Illuminate\Concurrency\ConcurrencyManager + */ + class Concurrency { + /** + * Get a driver instance by name. + * + * @param string|null $name + * @return mixed + * @static + */ + public static function driver($name = null) + { + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->driver($name); + } + + /** + * Create an instance of the process concurrency driver. + * + * @return \Illuminate\Concurrency\ProcessDriver + * @static + */ + public static function createProcessDriver() + { + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->createProcessDriver(); + } + + /** + * Create an instance of the fork concurrency driver. + * + * @return \Illuminate\Concurrency\ForkDriver + * @throws \RuntimeException + * @static + */ + public static function createForkDriver() + { + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->createForkDriver(); + } + + /** + * Create an instance of the sync concurrency driver. + * + * @return \Illuminate\Concurrency\SyncDriver + * @static + */ + public static function createSyncDriver() + { + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->createSyncDriver(); + } + + /** + * Get the default instance name. + * + * @return string + * @static + */ + public static function getDefaultInstance() + { + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->getDefaultInstance(); + } + + /** + * Set the default instance name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultInstance($name) + { + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + $instance->setDefaultInstance($name); + } + + /** + * Get the instance specific configuration. + * + * @param string $name + * @return array + * @static + */ + public static function getInstanceConfig($name) + { + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->getInstanceConfig($name); + } + + /** + * Get an instance by name. + * + * @param string|null $name + * @return mixed + * @static + */ + public static function instance($name = null) + { + //Method inherited from \Illuminate\Support\MultipleInstanceManager + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->instance($name); + } + + /** + * Unset the given instances. + * + * @param array|string|null $name + * @return \Illuminate\Concurrency\ConcurrencyManager + * @static + */ + public static function forgetInstance($name = null) + { + //Method inherited from \Illuminate\Support\MultipleInstanceManager + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->forgetInstance($name); + } + + /** + * Disconnect the given instance and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + //Method inherited from \Illuminate\Support\MultipleInstanceManager + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + $instance->purge($name); + } + + /** + * Register a custom instance creator Closure. + * + * @param string $name + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Concurrency\ConcurrencyManager + * @static + */ + public static function extend($name, $callback) + { + //Method inherited from \Illuminate\Support\MultipleInstanceManager + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->extend($name, $callback); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Concurrency\ConcurrencyManager + * @static + */ + public static function setApplication($app) + { + //Method inherited from \Illuminate\Support\MultipleInstanceManager + /** @var \Illuminate\Concurrency\ConcurrencyManager $instance */ + return $instance->setApplication($app); + } + + } + /** + * @see \Illuminate\Config\Repository + */ + class Config { + /** + * Determine if the given configuration value exists. + * + * @param string $key + * @return bool + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->has($key); + } + + /** + * Get the specified configuration value. + * + * @param array|string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->get($key, $default); + } + + /** + * Get many configuration values. + * + * @param array $keys + * @return array + * @static + */ + public static function getMany($keys) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->getMany($keys); + } + + /** + * Get the specified string configuration value. + * + * @param string $key + * @param (\Closure():(string|null))|string|null $default + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function string($key, $default = null) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->string($key, $default); + } + + /** + * Get the specified integer configuration value. + * + * @param string $key + * @param (\Closure():(int|null))|int|null $default + * @return int + * @throws \InvalidArgumentException + * @static + */ + public static function integer($key, $default = null) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->integer($key, $default); + } + + /** + * Get the specified float configuration value. + * + * @param string $key + * @param (\Closure():(float|null))|float|null $default + * @return float + * @throws \InvalidArgumentException + * @static + */ + public static function float($key, $default = null) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->float($key, $default); + } + + /** + * Get the specified boolean configuration value. + * + * @param string $key + * @param (\Closure():(bool|null))|bool|null $default + * @return bool + * @throws \InvalidArgumentException + * @static + */ + public static function boolean($key, $default = null) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->boolean($key, $default); + } + + /** + * Get the specified array configuration value. + * + * @param string $key + * @param (\Closure():(array|null))|array|null $default + * @return array + * @throws \InvalidArgumentException + * @static + */ + public static function array($key, $default = null) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->array($key, $default); + } + + /** + * Get the specified array configuration value as a collection. + * + * @param string $key + * @param (\Closure():(array|null))|array|null $default + * @return Collection + * @static + */ + public static function collection($key, $default = null) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->collection($key, $default); + } + + /** + * Set a given configuration value. + * + * @param array|string $key + * @param mixed $value + * @return void + * @static + */ + public static function set($key, $value = null) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->set($key, $value); + } + + /** + * Prepend a value onto an array configuration value. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function prepend($key, $value) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->prepend($key, $value); + } + + /** + * Push a value onto an array configuration value. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function push($key, $value) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->push($key, $value); + } + + /** + * Get all of the configuration items for the application. + * + * @return array + * @static + */ + public static function all() + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->all(); + } + + /** + * Determine if the given configuration option exists. + * + * @param string $offset + * @return bool + * @static + */ + public static function offsetExists($offset) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->offsetExists($offset); + } + + /** + * Get a configuration option. + * + * @param string $offset + * @return mixed + * @static + */ + public static function offsetGet($offset) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->offsetGet($offset); + } + + /** + * Set a configuration option. + * + * @param string $offset + * @param mixed $value + * @return void + * @static + */ + public static function offsetSet($offset, $value) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->offsetSet($offset, $value); + } + + /** + * Unset a configuration option. + * + * @param string $offset + * @return void + * @static + */ + public static function offsetUnset($offset) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->offsetUnset($offset); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Config\Repository::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Config\Repository::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Config\Repository::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Config\Repository::flushMacros(); + } + + } + /** + * @see \Illuminate\Log\Context\Repository + */ + class Context { + /** + * Determine if the given key exists. + * + * @param string $key + * @return bool + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->has($key); + } + + /** + * Determine if the given key is missing. + * + * @param string $key + * @return bool + * @static + */ + public static function missing($key) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->missing($key); + } + + /** + * Determine if the given key exists within the hidden context data. + * + * @param string $key + * @return bool + * @static + */ + public static function hasHidden($key) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->hasHidden($key); + } + + /** + * Determine if the given key is missing within the hidden context data. + * + * @param string $key + * @return bool + * @static + */ + public static function missingHidden($key) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->missingHidden($key); + } + + /** + * Retrieve all the context data. + * + * @return array + * @static + */ + public static function all() + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->all(); + } + + /** + * Retrieve all the hidden context data. + * + * @return array + * @static + */ + public static function allHidden() + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->allHidden(); + } + + /** + * Retrieve the given key's value. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->get($key, $default); + } + + /** + * Retrieve the given key's hidden value. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function getHidden($key, $default = null) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->getHidden($key, $default); + } + + /** + * Retrieve the given key's value and then forget it. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function pull($key, $default = null) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->pull($key, $default); + } + + /** + * Retrieve the given key's hidden value and then forget it. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function pullHidden($key, $default = null) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->pullHidden($key, $default); + } + + /** + * Retrieve only the values of the given keys. + * + * @param array $keys + * @return array + * @static + */ + public static function only($keys) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->only($keys); + } + + /** + * Retrieve only the hidden values of the given keys. + * + * @param array $keys + * @return array + * @static + */ + public static function onlyHidden($keys) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->onlyHidden($keys); + } + + /** + * Retrieve all values except those with the given keys. + * + * @param array $keys + * @return array + * @static + */ + public static function except($keys) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->except($keys); + } + + /** + * Retrieve all hidden values except those with the given keys. + * + * @param array $keys + * @return array + * @static + */ + public static function exceptHidden($keys) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->exceptHidden($keys); + } + + /** + * Add a context value. + * + * @param string|array $key + * @param mixed $value + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function add($key, $value = null) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->add($key, $value); + } + + /** + * Add a hidden context value. + * + * @param string|array $key + * @param mixed $value + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function addHidden($key, $value = null) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->addHidden($key, $value); + } + + /** + * Add a context value if it does not exist yet, and return the value. + * + * @param string $key + * @param mixed $value + * @return mixed + * @static + */ + public static function remember($key, $value) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->remember($key, $value); + } + + /** + * Add a hidden context value if it does not exist yet, and return the value. + * + * @param string $key + * @param mixed $value + * @return mixed + * @static + */ + public static function rememberHidden($key, $value) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->rememberHidden($key, $value); + } + + /** + * Forget the given context key. + * + * @param string|array $key + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function forget($key) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->forget($key); + } + + /** + * Forget the given hidden context key. + * + * @param string|array $key + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function forgetHidden($key) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->forgetHidden($key); + } + + /** + * Add a context value if it does not exist yet. + * + * @param string $key + * @param mixed $value + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function addIf($key, $value) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->addIf($key, $value); + } + + /** + * Add a hidden context value if it does not exist yet. + * + * @param string $key + * @param mixed $value + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function addHiddenIf($key, $value) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->addHiddenIf($key, $value); + } + + /** + * Push the given values onto the key's stack. + * + * @param string $key + * @param mixed $values + * @return \Illuminate\Log\Context\Repository + * @throws \RuntimeException + * @static + */ + public static function push($key, ...$values) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->push($key, ...$values); + } + + /** + * Pop the latest value from the key's stack. + * + * @param string $key + * @return mixed + * @throws \RuntimeException + * @static + */ + public static function pop($key) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->pop($key); + } + + /** + * Push the given hidden values onto the key's stack. + * + * @param string $key + * @param mixed $values + * @return \Illuminate\Log\Context\Repository + * @throws \RuntimeException + * @static + */ + public static function pushHidden($key, ...$values) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->pushHidden($key, ...$values); + } + + /** + * Pop the latest hidden value from the key's stack. + * + * @param string $key + * @return mixed + * @throws \RuntimeException + * @static + */ + public static function popHidden($key) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->popHidden($key); + } + + /** + * Increment a context counter. + * + * @param string $key + * @param int $amount + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function increment($key, $amount = 1) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->increment($key, $amount); + } + + /** + * Decrement a context counter. + * + * @param string $key + * @param int $amount + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function decrement($key, $amount = 1) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->decrement($key, $amount); + } + + /** + * Determine if the given value is in the given stack. + * + * @param string $key + * @param mixed $value + * @param bool $strict + * @return bool + * @throws \RuntimeException + * @static + */ + public static function stackContains($key, $value, $strict = false) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->stackContains($key, $value, $strict); + } + + /** + * Determine if the given value is in the given hidden stack. + * + * @param string $key + * @param mixed $value + * @param bool $strict + * @return bool + * @throws \RuntimeException + * @static + */ + public static function hiddenStackContains($key, $value, $strict = false) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->hiddenStackContains($key, $value, $strict); + } + + /** + * @template TReturn of mixed + * + * Run the callback function with the given context values and restore the original context state when complete. + * @param (callable(): TReturn) $callback + * @param array $data + * @param array $hidden + * @return TReturn + * @throws \Throwable + * @static + */ + public static function scope($callback, $data = [], $hidden = []) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->scope($callback, $data, $hidden); + } + + /** + * Determine if the repository is empty. + * + * @return bool + * @static + */ + public static function isEmpty() + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->isEmpty(); + } + + /** + * Execute the given callback when context is about to be dehydrated. + * + * @param (callable(static): void) $callback + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function dehydrating($callback) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->dehydrating($callback); + } + + /** + * Execute the given callback when context has been hydrated. + * + * @param (callable(static): void) $callback + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function hydrated($callback) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->hydrated($callback); + } + + /** + * Handle unserialize exceptions using the given callback. + * + * @param callable|null $callback + * @return static + * @static + */ + public static function handleUnserializeExceptionsUsing($callback) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->handleUnserializeExceptionsUsing($callback); + } + + /** + * Flush all context data. + * + * @return \Illuminate\Log\Context\Repository + * @static + */ + public static function flush() + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->flush(); + } + + /** + * Dehydrate the context data. + * + * @internal + * @return \Illuminate\Log\Context\?array + * @static + */ + public static function dehydrate() + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->dehydrate(); + } + + /** + * Hydrate the context instance. + * + * @internal + * @param \Illuminate\Log\Context\?array $context + * @return \Illuminate\Log\Context\Repository + * @throws \RuntimeException + * @static + */ + public static function hydrate($context) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->hydrate($context); + } + + /** + * Apply the callback if the given "value" is (or resolves to) truthy. + * + * @template TWhenParameter + * @template TWhenReturnType + * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default + * @return $this|TWhenReturnType + * @static + */ + public static function when($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->when($value, $callback, $default); + } + + /** + * Apply the callback if the given "value" is (or resolves to) falsy. + * + * @template TUnlessParameter + * @template TUnlessReturnType + * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default + * @return $this|TUnlessReturnType + * @static + */ + public static function unless($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->unless($value, $callback, $default); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Log\Context\Repository::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Log\Context\Repository::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Log\Context\Repository::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Log\Context\Repository::flushMacros(); + } + + /** + * Restore the model from the model identifier instance. + * + * @param \Illuminate\Contracts\Database\ModelIdentifier $value + * @return \Illuminate\Database\Eloquent\Model + * @static + */ + public static function restoreModel($value) + { + /** @var \Illuminate\Log\Context\Repository $instance */ + return $instance->restoreModel($value); + } + + } + /** + * @see \Illuminate\Cookie\CookieJar + */ + class Cookie { + /** + * Create a new cookie instance. + * + * @param string $name + * @param string $value + * @param int $minutes + * @param string|null $path + * @param string|null $domain + * @param bool|null $secure + * @param bool $httpOnly + * @param bool $raw + * @param string|null $sameSite + * @return \Symfony\Component\HttpFoundation\Cookie + * @static + */ + public static function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite); + } + + /** + * Create a cookie that lasts "forever" (400 days). + * + * @param string $name + * @param string $value + * @param string|null $path + * @param string|null $domain + * @param bool|null $secure + * @param bool $httpOnly + * @param bool $raw + * @param string|null $sameSite + * @return \Symfony\Component\HttpFoundation\Cookie + * @static + */ + public static function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->forever($name, $value, $path, $domain, $secure, $httpOnly, $raw, $sameSite); + } + + /** + * Expire the given cookie. + * + * @param string $name + * @param string|null $path + * @param string|null $domain + * @return \Symfony\Component\HttpFoundation\Cookie + * @static + */ + public static function forget($name, $path = null, $domain = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->forget($name, $path, $domain); + } + + /** + * Determine if a cookie has been queued. + * + * @param string $key + * @param string|null $path + * @return bool + * @static + */ + public static function hasQueued($key, $path = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->hasQueued($key, $path); + } + + /** + * Get a queued cookie instance. + * + * @param string $key + * @param mixed $default + * @param string|null $path + * @return \Symfony\Component\HttpFoundation\Cookie|null + * @static + */ + public static function queued($key, $default = null, $path = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->queued($key, $default, $path); + } + + /** + * Queue a cookie to send with the next response. + * + * @param mixed $parameters + * @return void + * @static + */ + public static function queue(...$parameters) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + $instance->queue(...$parameters); + } + + /** + * Queue a cookie to expire with the next response. + * + * @param string $name + * @param string|null $path + * @param string|null $domain + * @return void + * @static + */ + public static function expire($name, $path = null, $domain = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + $instance->expire($name, $path, $domain); + } + + /** + * Remove a cookie from the queue. + * + * @param string $name + * @param string|null $path + * @return void + * @static + */ + public static function unqueue($name, $path = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + $instance->unqueue($name, $path); + } + + /** + * Set the default path and domain for the jar. + * + * @param string $path + * @param string|null $domain + * @param bool|null $secure + * @param string|null $sameSite + * @return \Illuminate\Cookie\CookieJar + * @static + */ + public static function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->setDefaultPathAndDomain($path, $domain, $secure, $sameSite); + } + + /** + * Get the cookies which have been queued for the next request. + * + * @return \Symfony\Component\HttpFoundation\Cookie[] + * @static + */ + public static function getQueuedCookies() + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->getQueuedCookies(); + } + + /** + * Flush the cookies which have been queued for the next request. + * + * @return \Illuminate\Cookie\CookieJar + * @static + */ + public static function flushQueuedCookies() + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->flushQueuedCookies(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Cookie\CookieJar::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Cookie\CookieJar::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Cookie\CookieJar::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Cookie\CookieJar::flushMacros(); + } + + } + /** + * @see \Illuminate\Encryption\Encrypter + */ + class Crypt { + /** + * Determine if the given key and cipher combination is valid. + * + * @param string $key + * @param string $cipher + * @return bool + * @static + */ + public static function supported($key, $cipher) + { + return \Illuminate\Encryption\Encrypter::supported($key, $cipher); + } + + /** + * Create a new encryption key for the given cipher. + * + * @param string $cipher + * @return string + * @static + */ + public static function generateKey($cipher) + { + return \Illuminate\Encryption\Encrypter::generateKey($cipher); + } + + /** + * Encrypt the given value. + * + * @param mixed $value + * @param bool $serialize + * @return string + * @throws \Illuminate\Contracts\Encryption\EncryptException + * @static + */ + public static function encrypt($value, $serialize = true) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->encrypt($value, $serialize); + } + + /** + * Encrypt a string without serialization. + * + * @param string $value + * @return string + * @throws \Illuminate\Contracts\Encryption\EncryptException + * @static + */ + public static function encryptString($value) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->encryptString($value); + } + + /** + * Decrypt the given value. + * + * @param string $payload + * @param bool $unserialize + * @return mixed + * @throws \Illuminate\Contracts\Encryption\DecryptException + * @static + */ + public static function decrypt($payload, $unserialize = true) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->decrypt($payload, $unserialize); + } + + /** + * Decrypt the given string without unserialization. + * + * @param string $payload + * @return string + * @throws \Illuminate\Contracts\Encryption\DecryptException + * @static + */ + public static function decryptString($payload) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->decryptString($payload); + } + + /** + * Determine if the given value appears to be encrypted by this encrypter. + * + * @param mixed $value + * @return bool + * @static + */ + public static function appearsEncrypted($value) + { + return \Illuminate\Encryption\Encrypter::appearsEncrypted($value); + } + + /** + * Get the encryption key that the encrypter is currently using. + * + * @return string + * @static + */ + public static function getKey() + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->getKey(); + } + + /** + * Get the current encryption key and all previous encryption keys. + * + * @return array + * @static + */ + public static function getAllKeys() + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->getAllKeys(); + } + + /** + * Get the previous encryption keys. + * + * @return array + * @static + */ + public static function getPreviousKeys() + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->getPreviousKeys(); + } + + /** + * Set the previous / legacy encryption keys that should be utilized if decryption fails. + * + * @param array $keys + * @return \Illuminate\Encryption\Encrypter + * @throws \RuntimeException + * @static + */ + public static function previousKeys($keys) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->previousKeys($keys); + } + + } + /** + * @see https://carbon.nesbot.com/docs/ + * @see https://github.com/briannesbitt/Carbon/blob/master/src/Carbon/Factory.php + * @method static bool canBeCreatedFromFormat(?string $date, string $format) + * @method static \Illuminate\Support\Carbon|null create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $timezone = null) + * @method static \Illuminate\Support\Carbon createFromDate($year = null, $month = null, $day = null, $timezone = null) + * @method static \Illuminate\Support\Carbon|null createFromFormat($format, $time, $timezone = null) + * @method static \Illuminate\Support\Carbon|null createFromIsoFormat(string $format, string $time, $timezone = null, ?string $locale = 'en', ?\Symfony\Contracts\Translation\TranslatorInterface $translator = null) + * @method static \Illuminate\Support\Carbon|null createFromLocaleFormat(string $format, string $locale, string $time, $timezone = null) + * @method static \Illuminate\Support\Carbon|null createFromLocaleIsoFormat(string $format, string $locale, string $time, $timezone = null) + * @method static \Illuminate\Support\Carbon createFromTime($hour = 0, $minute = 0, $second = 0, $timezone = null) + * @method static \Illuminate\Support\Carbon createFromTimeString(string $time, \DateTimeZone|string|int|null $timezone = null) + * @method static \Illuminate\Support\Carbon createFromTimestamp(string|int|float $timestamp, \DateTimeZone|string|int|null $timezone = null) + * @method static \Illuminate\Support\Carbon createFromTimestampMs(string|int|float $timestamp, \DateTimeZone|string|int|null $timezone = null) + * @method static \Illuminate\Support\Carbon createFromTimestampMsUTC($timestamp) + * @method static \Illuminate\Support\Carbon createFromTimestampUTC(string|int|float $timestamp) + * @method static \Illuminate\Support\Carbon createMidnightDate($year = null, $month = null, $day = null, $timezone = null) + * @method static \Illuminate\Support\Carbon|null createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $timezone = null) + * @method static \Illuminate\Support\Carbon createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $timezone = null) + * @method static void disableHumanDiffOption($humanDiffOption) + * @method static void enableHumanDiffOption($humanDiffOption) + * @method static mixed executeWithLocale(string $locale, callable $func) + * @method static \Illuminate\Support\Carbon fromSerialized($value) + * @method static array getAvailableLocales() + * @method static array getAvailableLocalesInfo() + * @method static array getDays() + * @method static ?string getFallbackLocale() + * @method static array getFormatsToIsoReplacements() + * @method static int getHumanDiffOptions() + * @method static array getIsoUnits() + * @method static array|false getLastErrors() + * @method static string getLocale() + * @method static int getMidDayAt() + * @method static string getTimeFormatByPrecision(string $unitPrecision) + * @method static string|\Closure|null getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null) + * @method static \Illuminate\Support\Carbon|null getTestNow() + * @method static \Symfony\Contracts\Translation\TranslatorInterface getTranslator() + * @method static int getWeekEndsAt(?string $locale = null) + * @method static int getWeekStartsAt(?string $locale = null) + * @method static array getWeekendDays() + * @method static bool hasFormat(string $date, string $format) + * @method static bool hasFormatWithModifiers(string $date, string $format) + * @method static bool hasMacro($name) + * @method static bool hasRelativeKeywords(?string $time) + * @method static bool hasTestNow() + * @method static \Illuminate\Support\Carbon instance(\DateTimeInterface $date) + * @method static bool isImmutable() + * @method static bool isModifiableUnit($unit) + * @method static bool isMutable() + * @method static bool isStrictModeEnabled() + * @method static bool localeHasDiffOneDayWords(string $locale) + * @method static bool localeHasDiffSyntax(string $locale) + * @method static bool localeHasDiffTwoDayWords(string $locale) + * @method static bool localeHasPeriodSyntax($locale) + * @method static bool localeHasShortUnits(string $locale) + * @method static void macro(string $name, ?callable $macro) + * @method static \Illuminate\Support\Carbon|null make($var, \DateTimeZone|string|null $timezone = null) + * @method static void mixin(object|string $mixin) + * @method static \Illuminate\Support\Carbon now(\DateTimeZone|string|int|null $timezone = null) + * @method static \Illuminate\Support\Carbon parse(\DateTimeInterface|\Carbon\WeekDay|\Carbon\Month|string|int|float|null $time, \DateTimeZone|string|int|null $timezone = null) + * @method static \Illuminate\Support\Carbon parseFromLocale(string $time, ?string $locale = null, \DateTimeZone|string|int|null $timezone = null) + * @method static string pluralUnit(string $unit) + * @method static \Illuminate\Support\Carbon|null rawCreateFromFormat(string $format, string $time, $timezone = null) + * @method static \Illuminate\Support\Carbon rawParse(\DateTimeInterface|\Carbon\WeekDay|\Carbon\Month|string|int|float|null $time, \DateTimeZone|string|int|null $timezone = null) + * @method static void resetMonthsOverflow() + * @method static void resetToStringFormat() + * @method static void resetYearsOverflow() + * @method static void serializeUsing($callback) + * @method static void setFallbackLocale(string $locale) + * @method static void setHumanDiffOptions($humanDiffOptions) + * @method static void setLocale(string $locale) + * @method static void setMidDayAt($hour) + * @method static void setTestNow(mixed $testNow = null) + * @method static void setTestNowAndTimezone(mixed $testNow = null, $timezone = null) + * @method static void setToStringFormat(string|\Closure|null $format) + * @method static void setTranslator(\Symfony\Contracts\Translation\TranslatorInterface $translator) + * @method static void setWeekEndsAt($day) + * @method static void setWeekStartsAt($day) + * @method static void setWeekendDays($days) + * @method static bool shouldOverflowMonths() + * @method static bool shouldOverflowYears() + * @method static string singularUnit(string $unit) + * @method static void sleep(int|float $seconds) + * @method static \Illuminate\Support\Carbon today(\DateTimeZone|string|int|null $timezone = null) + * @method static \Illuminate\Support\Carbon tomorrow(\DateTimeZone|string|int|null $timezone = null) + * @method static string translateTimeString(string $timeString, ?string $from = null, ?string $to = null, int $mode = \Carbon\CarbonInterface::TRANSLATE_ALL) + * @method static string translateWith(\Symfony\Contracts\Translation\TranslatorInterface $translator, string $key, array $parameters = [], $number = null) + * @method static void useMonthsOverflow($monthsOverflow = true) + * @method static void useStrictMode($strictModeEnabled = true) + * @method static void useYearsOverflow($yearsOverflow = true) + * @method static mixed withTestNow(mixed $testNow, callable $callback) + * @method static static withTimeZone(\DateTimeZone|string|int|null $timezone) + * @method static \Illuminate\Support\Carbon yesterday(\DateTimeZone|string|int|null $timezone = null) + * @see \Illuminate\Support\DateFactory + */ + class Date { + /** + * Use the given handler when generating dates (class name, callable, or factory). + * + * @param mixed $handler + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function use($handler) + { + return \Illuminate\Support\DateFactory::use($handler); + } + + /** + * Use the default date class when generating dates. + * + * @return void + * @static + */ + public static function useDefault() + { + \Illuminate\Support\DateFactory::useDefault(); + } + + /** + * Execute the given callable on each date creation. + * + * @param callable $callable + * @return void + * @static + */ + public static function useCallable($callable) + { + \Illuminate\Support\DateFactory::useCallable($callable); + } + + /** + * Use the given date type (class) when generating dates. + * + * @param string $dateClass + * @return void + * @static + */ + public static function useClass($dateClass) + { + \Illuminate\Support\DateFactory::useClass($dateClass); + } + + /** + * Use the given Carbon factory when generating dates. + * + * @param object $factory + * @return void + * @static + */ + public static function useFactory($factory) + { + \Illuminate\Support\DateFactory::useFactory($factory); + } + + } + /** + * @see \Illuminate\Database\DatabaseManager + */ + class DB { + /** + * Get a database connection instance. + * + * @param \UnitEnum|string|null $name + * @return \Illuminate\Database\Connection + * @static + */ + public static function connection($name = null) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->connection($name); + } + + /** + * Build a database connection instance from the given configuration. + * + * @param array $config + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function build($config) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->build($config); + } + + /** + * Calculate the dynamic connection name for an on-demand connection based on its configuration. + * + * @param array $config + * @return string + * @static + */ + public static function calculateDynamicConnectionName($config) + { + return \Illuminate\Database\DatabaseManager::calculateDynamicConnectionName($config); + } + + /** + * Get a database connection instance from the given configuration. + * + * @param \UnitEnum|string $name + * @param array $config + * @param bool $force + * @return \Illuminate\Database\MariaDbConnection + * @throws \RuntimeException + * @static + */ + public static function connectUsing($name, $config, $force = false) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->connectUsing($name, $config, $force); + } + + /** + * Disconnect from the given database and remove from local cache. + * + * @param \UnitEnum|string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->purge($name); + } + + /** + * Disconnect from the given database. + * + * @param \UnitEnum|string|null $name + * @return void + * @static + */ + public static function disconnect($name = null) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->disconnect($name); + } + + /** + * Reconnect to the given database. + * + * @param \UnitEnum|string|null $name + * @return \Illuminate\Database\Connection + * @static + */ + public static function reconnect($name = null) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->reconnect($name); + } + + /** + * Set the default database connection for the callback execution. + * + * @param \UnitEnum|string $name + * @param callable $callback + * @return mixed + * @static + */ + public static function usingConnection($name, $callback) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->usingConnection($name, $callback); + } + + /** + * Get the default connection name. + * + * @return string + * @static + */ + public static function getDefaultConnection() + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->getDefaultConnection(); + } + + /** + * Set the default connection name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultConnection($name) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->setDefaultConnection($name); + } + + /** + * Get all of the supported drivers. + * + * @return string[] + * @static + */ + public static function supportedDrivers() + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->supportedDrivers(); + } + + /** + * Get all of the drivers that are actually available. + * + * @return string[] + * @static + */ + public static function availableDrivers() + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->availableDrivers(); + } + + /** + * Register an extension connection resolver. + * + * @param string $name + * @param callable $resolver + * @return void + * @static + */ + public static function extend($name, $resolver) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->extend($name, $resolver); + } + + /** + * Remove an extension connection resolver. + * + * @param string $name + * @return void + * @static + */ + public static function forgetExtension($name) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->forgetExtension($name); + } + + /** + * Return all of the created connections. + * + * @return array + * @static + */ + public static function getConnections() + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->getConnections(); + } + + /** + * Set the database reconnector callback. + * + * @param callable $reconnector + * @return void + * @static + */ + public static function setReconnector($reconnector) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->setReconnector($reconnector); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Database\DatabaseManager + * @static + */ + public static function setApplication($app) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->setApplication($app); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Database\DatabaseManager::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Database\DatabaseManager::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Database\DatabaseManager::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Database\DatabaseManager::flushMacros(); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->macroCall($method, $parameters); + } + + /** + * Get a human-readable name for the given connection driver. + * + * @return string + * @static + */ + public static function getDriverTitle() + { + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getDriverTitle(); + } + + /** + * Determine if the connected database is a MariaDB database. + * + * @return bool + * @static + */ + public static function isMaria() + { + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->isMaria(); + } + + /** + * Get the server version for the connection. + * + * @return string + * @static + */ + public static function getServerVersion() + { + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getServerVersion(); + } + + /** + * Get a schema builder instance for the connection. + * + * @return \Illuminate\Database\Schema\MariaDbBuilder + * @static + */ + public static function getSchemaBuilder() + { + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getSchemaBuilder(); + } + + /** + * Get the schema state for the connection. + * + * @param \Illuminate\Filesystem\Filesystem|null $files + * @param callable|null $processFactory + * @return \Illuminate\Database\Schema\MariaDbSchemaState + * @static + */ + public static function getSchemaState($files = null, $processFactory = null) + { + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getSchemaState($files, $processFactory); + } + + /** + * Run an insert statement against the database. + * + * @param string $query + * @param array $bindings + * @param string|null $sequence + * @return bool + * @static + */ + public static function insert($query, $bindings = [], $sequence = null) + { + //Method inherited from \Illuminate\Database\MySqlConnection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->insert($query, $bindings, $sequence); + } + + /** + * Get the connection's last insert ID. + * + * @return string|int|null + * @static + */ + public static function getLastInsertId() + { + //Method inherited from \Illuminate\Database\MySqlConnection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getLastInsertId(); + } + + /** + * Set the query grammar to the default implementation. + * + * @return void + * @static + */ + public static function useDefaultQueryGrammar() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->useDefaultQueryGrammar(); + } + + /** + * Set the schema grammar to the default implementation. + * + * @return void + * @static + */ + public static function useDefaultSchemaGrammar() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->useDefaultSchemaGrammar(); + } + + /** + * Set the query post processor to the default implementation. + * + * @return void + * @static + */ + public static function useDefaultPostProcessor() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->useDefaultPostProcessor(); + } + + /** + * Begin a fluent query against a database table. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Contracts\Database\Query\Expression|\UnitEnum|string $table + * @param string|null $as + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function table($table, $as = null) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->table($table, $as); + } + + /** + * Get a new query builder instance. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function query() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->query(); + } + + /** + * Run a select statement and return a single result. + * + * @param string $query + * @param array $bindings + * @param bool $useReadPdo + * @return mixed + * @static + */ + public static function selectOne($query, $bindings = [], $useReadPdo = true) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->selectOne($query, $bindings, $useReadPdo); + } + + /** + * Run a select statement and return the first column of the first row. + * + * @param string $query + * @param array $bindings + * @param bool $useReadPdo + * @return mixed + * @throws \Illuminate\Database\MultipleColumnsSelectedException + * @static + */ + public static function scalar($query, $bindings = [], $useReadPdo = true) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->scalar($query, $bindings, $useReadPdo); + } + + /** + * Run a select statement against the database. + * + * @param string $query + * @param array $bindings + * @return array + * @static + */ + public static function selectFromWriteConnection($query, $bindings = []) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->selectFromWriteConnection($query, $bindings); + } + + /** + * Run a select statement against the database. + * + * @param string $query + * @param array $bindings + * @param bool $useReadPdo + * @param array $fetchUsing + * @return array + * @static + */ + public static function select($query, $bindings = [], $useReadPdo = true, $fetchUsing = []) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->select($query, $bindings, $useReadPdo, $fetchUsing); + } + + /** + * Run a select statement against the database and returns all of the result sets. + * + * @param string $query + * @param array $bindings + * @param bool $useReadPdo + * @param array $fetchUsing + * @return array + * @static + */ + public static function selectResultSets($query, $bindings = [], $useReadPdo = true, $fetchUsing = []) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->selectResultSets($query, $bindings, $useReadPdo, $fetchUsing); + } + + /** + * Run a select statement against the database and returns a generator. + * + * @param string $query + * @param array $bindings + * @param bool $useReadPdo + * @param array $fetchUsing + * @return \Generator + * @static + */ + public static function cursor($query, $bindings = [], $useReadPdo = true, $fetchUsing = []) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->cursor($query, $bindings, $useReadPdo, $fetchUsing); + } + + /** + * Run an update statement against the database. + * + * @param string $query + * @param array $bindings + * @return int + * @static + */ + public static function update($query, $bindings = []) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->update($query, $bindings); + } + + /** + * Run a delete statement against the database. + * + * @param string $query + * @param array $bindings + * @return int + * @static + */ + public static function delete($query, $bindings = []) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->delete($query, $bindings); + } + + /** + * Execute an SQL statement and return the boolean result. + * + * @param string $query + * @param array $bindings + * @return bool + * @static + */ + public static function statement($query, $bindings = []) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->statement($query, $bindings); + } + + /** + * Run an SQL statement and get the number of rows affected. + * + * @param string $query + * @param array $bindings + * @return int + * @static + */ + public static function affectingStatement($query, $bindings = []) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->affectingStatement($query, $bindings); + } + + /** + * Run a raw, unprepared query against the PDO connection. + * + * @param literal-string $query + * @return bool + * @static + */ + public static function unprepared($query) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->unprepared($query); + } + + /** + * Get the number of open connections for the database. + * + * @return int|null + * @static + */ + public static function threadCount() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->threadCount(); + } + + /** + * Execute the given callback in "dry run" mode. + * + * @param (\Closure(\Illuminate\Database\Connection): mixed) $callback + * @return \Illuminate\Database\array{query: string, bindings: array, time: float|null}[] + * @static + */ + public static function pretend($callback) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->pretend($callback); + } + + /** + * Execute the given callback without "pretending". + * + * @param \Closure $callback + * @return mixed + * @static + */ + public static function withoutPretending($callback) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->withoutPretending($callback); + } + + /** + * Bind values to their parameters in the given statement. + * + * @param \PDOStatement $statement + * @param array $bindings + * @return void + * @static + */ + public static function bindValues($statement, $bindings) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->bindValues($statement, $bindings); + } + + /** + * Prepare the query bindings for execution. + * + * @param array $bindings + * @return array + * @static + */ + public static function prepareBindings($bindings) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->prepareBindings($bindings); + } + + /** + * Log a query in the connection's query log. + * + * @param string $query + * @param array $bindings + * @param float|null $time + * @return void + * @static + */ + public static function logQuery($query, $bindings, $time = null) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->logQuery($query, $bindings, $time); + } + + /** + * Register a callback to be invoked when the connection queries for longer than a given amount of time. + * + * @param \DateTimeInterface|\Carbon\CarbonInterval|float|int $threshold + * @param (callable(\Illuminate\Database\Connection, \Illuminate\Database\Events\QueryExecuted): mixed) $handler + * @return void + * @static + */ + public static function whenQueryingForLongerThan($threshold, $handler) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->whenQueryingForLongerThan($threshold, $handler); + } + + /** + * Allow all the query duration handlers to run again, even if they have already run. + * + * @return void + * @static + */ + public static function allowQueryDurationHandlersToRunAgain() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->allowQueryDurationHandlersToRunAgain(); + } + + /** + * Get the duration of all run queries in milliseconds. + * + * @return float + * @static + */ + public static function totalQueryDuration() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->totalQueryDuration(); + } + + /** + * Reset the duration of all run queries. + * + * @return void + * @static + */ + public static function resetTotalQueryDuration() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->resetTotalQueryDuration(); + } + + /** + * Reconnect to the database if a PDO connection is missing. + * + * @return void + * @static + */ + public static function reconnectIfMissingConnection() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->reconnectIfMissingConnection(); + } + + /** + * Register a hook to be run just before a database transaction is started. + * + * @param \Closure $callback + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function beforeStartingTransaction($callback) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->beforeStartingTransaction($callback); + } + + /** + * Register a hook to be run just before a database query is executed. + * + * @param \Closure $callback + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function beforeExecuting($callback) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->beforeExecuting($callback); + } + + /** + * Register a database query listener with the connection. + * + * @param \Closure(\Illuminate\Database\Events\QueryExecuted) $callback + * @return void + * @static + */ + public static function listen($callback) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->listen($callback); + } + + /** + * Get a new raw query expression. + * + * @param literal-string|int|float $value + * @return \Illuminate\Contracts\Database\Query\Expression + * @static + */ + public static function raw($value) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->raw($value); + } + + /** + * Escape a value for safe SQL embedding. + * + * @param string|float|int|bool|null $value + * @param bool $binary + * @return string + * @throws \RuntimeException + * @static + */ + public static function escape($value, $binary = false) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->escape($value, $binary); + } + + /** + * Determine if the database connection has modified any database records. + * + * @return bool + * @static + */ + public static function hasModifiedRecords() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->hasModifiedRecords(); + } + + /** + * Indicate if any records have been modified. + * + * @param bool $value + * @return void + * @static + */ + public static function recordsHaveBeenModified($value = true) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->recordsHaveBeenModified($value); + } + + /** + * Set the record modification state. + * + * @param bool $value + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setRecordModificationState($value) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setRecordModificationState($value); + } + + /** + * Reset the record modification state. + * + * @return void + * @static + */ + public static function forgetRecordModificationState() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->forgetRecordModificationState(); + } + + /** + * Indicate that the connection should use the write PDO connection for reads. + * + * @param bool $value + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function useWriteConnectionWhenReading($value = true) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->useWriteConnectionWhenReading($value); + } + + /** + * Get the current PDO connection. + * + * @return \PDO + * @static + */ + public static function getPdo() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getPdo(); + } + + /** + * Get the current PDO connection parameter without executing any reconnect logic. + * + * @return \PDO|\Closure|null + * @static + */ + public static function getRawPdo() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getRawPdo(); + } + + /** + * Get the current PDO connection used for reading. + * + * @return \PDO + * @static + */ + public static function getReadPdo() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getReadPdo(); + } + + /** + * Get the current read PDO connection parameter without executing any reconnect logic. + * + * @return \PDO|\Closure|null + * @static + */ + public static function getRawReadPdo() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getRawReadPdo(); + } + + /** + * Set the PDO connection. + * + * @param \PDO|\Closure|null $pdo + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setPdo($pdo) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setPdo($pdo); + } + + /** + * Set the PDO connection used for reading. + * + * @param \PDO|\Closure|null $pdo + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setReadPdo($pdo) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setReadPdo($pdo); + } + + /** + * Set the read PDO connection configuration. + * + * @param array $config + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setReadPdoConfig($config) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setReadPdoConfig($config); + } + + /** + * Get the database connection name. + * + * @return string|null + * @static + */ + public static function getName() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getName(); + } + + /** + * Get the database connection with its read / write type. + * + * @return string|null + * @static + */ + public static function getNameWithReadWriteType() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getNameWithReadWriteType(); + } + + /** + * Get an option from the configuration options. + * + * @param string|null $option + * @return mixed + * @static + */ + public static function getConfig($option = null) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getConfig($option); + } + + /** + * Get the PDO driver name. + * + * @return string + * @static + */ + public static function getDriverName() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getDriverName(); + } + + /** + * Get the query grammar used by the connection. + * + * @return \Illuminate\Database\Query\Grammars\Grammar + * @static + */ + public static function getQueryGrammar() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getQueryGrammar(); + } + + /** + * Set the query grammar used by the connection. + * + * @param \Illuminate\Database\Query\Grammars\Grammar $grammar + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setQueryGrammar($grammar) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setQueryGrammar($grammar); + } + + /** + * Get the schema grammar used by the connection. + * + * @return \Illuminate\Database\Schema\Grammars\Grammar + * @static + */ + public static function getSchemaGrammar() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getSchemaGrammar(); + } + + /** + * Set the schema grammar used by the connection. + * + * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setSchemaGrammar($grammar) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setSchemaGrammar($grammar); + } + + /** + * Get the query post processor used by the connection. + * + * @return \Illuminate\Database\Query\Processors\Processor + * @static + */ + public static function getPostProcessor() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getPostProcessor(); + } + + /** + * Set the query post processor used by the connection. + * + * @param \Illuminate\Database\Query\Processors\Processor $processor + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setPostProcessor($processor) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setPostProcessor($processor); + } + + /** + * Get the event dispatcher used by the connection. + * + * @return \Illuminate\Contracts\Events\Dispatcher|null + * @static + */ + public static function getEventDispatcher() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getEventDispatcher(); + } + + /** + * Set the event dispatcher instance on the connection. + * + * @param \Illuminate\Contracts\Events\Dispatcher $events + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setEventDispatcher($events) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setEventDispatcher($events); + } + + /** + * Unset the event dispatcher for this connection. + * + * @return void + * @static + */ + public static function unsetEventDispatcher() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->unsetEventDispatcher(); + } + + /** + * Set the transaction manager instance on the connection. + * + * @param \Illuminate\Database\DatabaseTransactionsManager $manager + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setTransactionManager($manager) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setTransactionManager($manager); + } + + /** + * Unset the transaction manager for this connection. + * + * @return void + * @static + */ + public static function unsetTransactionManager() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->unsetTransactionManager(); + } + + /** + * Determine if the connection is in a "dry run". + * + * @return bool + * @static + */ + public static function pretending() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->pretending(); + } + + /** + * Get the connection query log. + * + * @return \Illuminate\Database\array{query: string, bindings: array, time: float|null}[] + * @static + */ + public static function getQueryLog() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getQueryLog(); + } + + /** + * Get the connection query log with embedded bindings. + * + * @return array + * @static + */ + public static function getRawQueryLog() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getRawQueryLog(); + } + + /** + * Clear the query log. + * + * @return void + * @static + */ + public static function flushQueryLog() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->flushQueryLog(); + } + + /** + * Enable the query log on the connection. + * + * @return void + * @static + */ + public static function enableQueryLog() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->enableQueryLog(); + } + + /** + * Disable the query log on the connection. + * + * @return void + * @static + */ + public static function disableQueryLog() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->disableQueryLog(); + } + + /** + * Determine whether we're logging queries. + * + * @return bool + * @static + */ + public static function logging() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->logging(); + } + + /** + * Get the name of the connected database. + * + * @return string + * @static + */ + public static function getDatabaseName() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getDatabaseName(); + } + + /** + * Set the name of the connected database. + * + * @param string $database + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setDatabaseName($database) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setDatabaseName($database); + } + + /** + * Set the read / write type of the connection. + * + * @param string|null $readWriteType + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setReadWriteType($readWriteType) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setReadWriteType($readWriteType); + } + + /** + * Get the table prefix for the connection. + * + * @return string + * @static + */ + public static function getTablePrefix() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->getTablePrefix(); + } + + /** + * Set the table prefix in use by the connection. + * + * @param string $prefix + * @return \Illuminate\Database\MariaDbConnection + * @static + */ + public static function setTablePrefix($prefix) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->setTablePrefix($prefix); + } + + /** + * Execute the given callback without table prefix. + * + * @param \Closure $callback + * @return mixed + * @static + */ + public static function withoutTablePrefix($callback) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->withoutTablePrefix($callback); + } + + /** + * Register a connection resolver. + * + * @param string $driver + * @param \Closure $callback + * @return void + * @static + */ + public static function resolverFor($driver, $callback) + { + //Method inherited from \Illuminate\Database\Connection + \Illuminate\Database\MariaDbConnection::resolverFor($driver, $callback); + } + + /** + * Get the connection resolver for the given driver. + * + * @param string $driver + * @return \Closure|null + * @static + */ + public static function getResolver($driver) + { + //Method inherited from \Illuminate\Database\Connection + return \Illuminate\Database\MariaDbConnection::getResolver($driver); + } + + /** + * @template TReturn of mixed + * + * Execute a Closure within a transaction. + * @param (\Closure(static): TReturn) $callback + * @param int $attempts + * @return TReturn + * @throws \Throwable + * @static + */ + public static function transaction($callback, $attempts = 1) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->transaction($callback, $attempts); + } + + /** + * Start a new database transaction. + * + * @return void + * @throws \Throwable + * @static + */ + public static function beginTransaction() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->beginTransaction(); + } + + /** + * Commit the active database transaction. + * + * @return void + * @throws \Throwable + * @static + */ + public static function commit() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->commit(); + } + + /** + * Rollback the active database transaction. + * + * @param int|null $toLevel + * @return void + * @throws \Throwable + * @static + */ + public static function rollBack($toLevel = null) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->rollBack($toLevel); + } + + /** + * Get the number of active transactions. + * + * @return int + * @static + */ + public static function transactionLevel() + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + return $instance->transactionLevel(); + } + + /** + * Execute the callback after a transaction commits. + * + * @param callable $callback + * @return void + * @throws \RuntimeException + * @static + */ + public static function afterCommit($callback) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->afterCommit($callback); + } + + /** + * Execute the callback after a transaction rolls back. + * + * @param callable $callback + * @return void + * @throws \RuntimeException + * @static + */ + public static function afterRollBack($callback) + { + //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MariaDbConnection $instance */ + $instance->afterRollBack($callback); + } + + } + /** + * @see \Illuminate\Events\Dispatcher + * @see \Illuminate\Support\Testing\Fakes\EventFake + */ + class Event { + /** + * Register an event listener with the dispatcher. + * + * @param \Illuminate\Events\Queued\Closure|callable|array|class-string|string $events + * @param \Illuminate\Events\Queued\Closure|callable|array|class-string|null $listener + * @return void + * @static + */ + public static function listen($events, $listener = null) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->listen($events, $listener); + } + + /** + * Determine if a given event has listeners. + * + * @param string $eventName + * @return bool + * @static + */ + public static function hasListeners($eventName) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->hasListeners($eventName); + } + + /** + * Determine if the given event has any wildcard listeners. + * + * @param string $eventName + * @return bool + * @static + */ + public static function hasWildcardListeners($eventName) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->hasWildcardListeners($eventName); + } + + /** + * Register an event and payload to be fired later. + * + * @param string $event + * @param object|array $payload + * @return void + * @static + */ + public static function push($event, $payload = []) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->push($event, $payload); + } + + /** + * Flush a set of pushed events. + * + * @param string $event + * @return void + * @static + */ + public static function flush($event) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->flush($event); + } + + /** + * Register an event subscriber with the dispatcher. + * + * @param object|string $subscriber + * @return void + * @static + */ + public static function subscribe($subscriber) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->subscribe($subscriber); + } + + /** + * Fire an event until the first non-null response is returned. + * + * @param string|object $event + * @param mixed $payload + * @return array|null + * @static + */ + public static function until($event, $payload = []) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->until($event, $payload); + } + + /** + * Fire an event and call the listeners. + * + * @param string|object $event + * @param mixed $payload + * @param bool $halt + * @return array|null + * @static + */ + public static function dispatch($event, $payload = [], $halt = false) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->dispatch($event, $payload, $halt); + } + + /** + * Get all of the listeners for a given event name. + * + * @param string $eventName + * @return array + * @static + */ + public static function getListeners($eventName) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->getListeners($eventName); + } + + /** + * Register an event listener with the dispatcher. + * + * @param \Closure|string|array{class-string, string} $listener + * @param bool $wildcard + * @return \Closure + * @static + */ + public static function makeListener($listener, $wildcard = false) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->makeListener($listener, $wildcard); + } + + /** + * Create a class based listener using the IoC container. + * + * @param string $listener + * @param bool $wildcard + * @return \Closure + * @static + */ + public static function createClassListener($listener, $wildcard = false) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->createClassListener($listener, $wildcard); + } + + /** + * Remove a set of listeners from the dispatcher. + * + * @param string $event + * @return void + * @static + */ + public static function forget($event) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->forget($event); + } + + /** + * Forget all of the pushed listeners. + * + * @return void + * @static + */ + public static function forgetPushed() + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->forgetPushed(); + } + + /** + * Set the queue resolver implementation. + * + * @param callable(): \Illuminate\Contracts\Queue\Queue $resolver + * @return \Illuminate\Events\Dispatcher + * @static + */ + public static function setQueueResolver($resolver) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->setQueueResolver($resolver); + } + + /** + * Set the database transaction manager resolver implementation. + * + * @param (callable(): (\Illuminate\Database\DatabaseTransactionsManager|null)) $resolver + * @return \Illuminate\Events\Dispatcher + * @static + */ + public static function setTransactionManagerResolver($resolver) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->setTransactionManagerResolver($resolver); + } + + /** + * Execute the given callback while deferring events, then dispatch all deferred events. + * + * @template TResult + * @param callable(): TResult $callback + * @param string[]|null $events + * @return TResult + * @static + */ + public static function defer($callback, $events = null) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->defer($callback, $events); + } + + /** + * Gets the raw, unprepared listeners. + * + * @return array + * @static + */ + public static function getRawListeners() + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->getRawListeners(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Events\Dispatcher::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Events\Dispatcher::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Events\Dispatcher::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Events\Dispatcher::flushMacros(); + } + + /** + * Resolve the default connection name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveConnectionFromQueueRoute($queueable) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->resolveConnectionFromQueueRoute($queueable); + } + + /** + * Resolve the default queue name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveQueueFromQueueRoute($queueable) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->resolveQueueFromQueueRoute($queueable); + } + + /** + * Specify the events that should be dispatched instead of faked. + * + * @param array|string $eventsToDispatch + * @return \Illuminate\Support\Testing\Fakes\EventFake + * @static + */ + public static function except($eventsToDispatch) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + return $instance->except($eventsToDispatch); + } + + /** + * Assert if an event has a listener attached to it. + * + * @param string $expectedEvent + * @param string|array $expectedListener + * @return void + * @static + */ + public static function assertListening($expectedEvent, $expectedListener) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertListening($expectedEvent, $expectedListener); + } + + /** + * Assert if an event was dispatched based on a truth-test callback. + * + * @param string|\Closure $event + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertDispatched($event, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertDispatched($event, $callback); + } + + /** + * Assert if an event was dispatched exactly once. + * + * @param string $event + * @return void + * @static + */ + public static function assertDispatchedOnce($event) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertDispatchedOnce($event); + } + + /** + * Assert if an event was dispatched a number of times. + * + * @param string $event + * @param int $times + * @return void + * @static + */ + public static function assertDispatchedTimes($event, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertDispatchedTimes($event, $times); + } + + /** + * Determine if an event was dispatched based on a truth-test callback. + * + * @param string|\Closure $event + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotDispatched($event, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertNotDispatched($event, $callback); + } + + /** + * Assert that no events were dispatched. + * + * @return void + * @static + */ + public static function assertNothingDispatched() + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertNothingDispatched(); + } + + /** + * Get all of the events matching a truth-test callback. + * + * @param string $event + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function dispatched($event, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + return $instance->dispatched($event, $callback); + } + + /** + * Determine if the given event has been dispatched. + * + * @param string $event + * @return bool + * @static + */ + public static function hasDispatched($event) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + return $instance->hasDispatched($event); + } + + /** + * Get the events that have been dispatched. + * + * @return array + * @static + */ + public static function dispatchedEvents() + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + return $instance->dispatchedEvents(); + } + + } + /** + * @see \Illuminate\Filesystem\Filesystem + */ + class File { + /** + * Determine if a file or directory exists. + * + * @param string $path + * @return bool + * @static + */ + public static function exists($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->exists($path); + } + + /** + * Determine if a file or directory is missing. + * + * @param string $path + * @return bool + * @static + */ + public static function missing($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->missing($path); + } + + /** + * Get the contents of a file. + * + * @param string $path + * @param bool $lock + * @return string + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function get($path, $lock = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->get($path, $lock); + } + + /** + * Get the contents of a file as decoded JSON. + * + * @param string $path + * @param int $flags + * @param bool $lock + * @return array + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function json($path, $flags = 0, $lock = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->json($path, $flags, $lock); + } + + /** + * Get contents of a file with shared access. + * + * @param string $path + * @return string + * @static + */ + public static function sharedGet($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->sharedGet($path); + } + + /** + * Get the returned value of a file. + * + * @param string $path + * @param array $data + * @return mixed + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function getRequire($path, $data = []) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->getRequire($path, $data); + } + + /** + * Require the given file once. + * + * @param string $path + * @param array $data + * @return mixed + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function requireOnce($path, $data = []) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->requireOnce($path, $data); + } + + /** + * Get the contents of a file one line at a time. + * + * @param string $path + * @return \Illuminate\Support\LazyCollection + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function lines($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->lines($path); + } + + /** + * Get the hash of the file at the given path. + * + * @param string $path + * @param string $algorithm + * @return string|false + * @static + */ + public static function hash($path, $algorithm = 'md5') + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->hash($path, $algorithm); + } + + /** + * Write the contents of a file. + * + * @param string $path + * @param string $contents + * @param bool $lock + * @return int|bool + * @static + */ + public static function put($path, $contents, $lock = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->put($path, $contents, $lock); + } + + /** + * Write the contents of a file, replacing it atomically if it already exists. + * + * @param string $path + * @param string $content + * @param int|null $mode + * @return void + * @static + */ + public static function replace($path, $content, $mode = null) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + $instance->replace($path, $content, $mode); + } + + /** + * Replace a given string within a given file. + * + * @param array|string $search + * @param array|string $replace + * @param string $path + * @return void + * @static + */ + public static function replaceInFile($search, $replace, $path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + $instance->replaceInFile($search, $replace, $path); + } + + /** + * Prepend to a file. + * + * @param string $path + * @param string $data + * @return int + * @static + */ + public static function prepend($path, $data) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->prepend($path, $data); + } + + /** + * Append to a file. + * + * @param string $path + * @param string $data + * @param bool $lock + * @return int + * @static + */ + public static function append($path, $data, $lock = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->append($path, $data, $lock); + } + + /** + * Get or set UNIX mode of a file or directory. + * + * @param string $path + * @param int|null $mode + * @return mixed + * @static + */ + public static function chmod($path, $mode = null) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->chmod($path, $mode); + } + + /** + * Delete the file at a given path. + * + * @param string|array $paths + * @return bool + * @static + */ + public static function delete($paths) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->delete($paths); + } + + /** + * Move a file to a new location. + * + * @param string $path + * @param string $target + * @return bool + * @static + */ + public static function move($path, $target) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->move($path, $target); + } + + /** + * Copy a file to a new location. + * + * @param string $path + * @param string $target + * @return bool + * @static + */ + public static function copy($path, $target) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->copy($path, $target); + } + + /** + * Create a symlink to the target file or directory. On Windows, a hard link is created if the target is a file. + * + * @param string $target + * @param string $link + * @return bool|null + * @static + */ + public static function link($target, $link) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->link($target, $link); + } + + /** + * Create a relative symlink to the target file or directory. + * + * @param string $target + * @param string $link + * @return void + * @throws \RuntimeException + * @static + */ + public static function relativeLink($target, $link) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + $instance->relativeLink($target, $link); + } + + /** + * Extract the file name from a file path. + * + * @param string $path + * @return string + * @static + */ + public static function name($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->name($path); + } + + /** + * Extract the trailing name component from a file path. + * + * @param string $path + * @return string + * @static + */ + public static function basename($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->basename($path); + } + + /** + * Extract the parent directory from a file path. + * + * @param string $path + * @return string + * @static + */ + public static function dirname($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->dirname($path); + } + + /** + * Extract the file extension from a file path. + * + * @param string $path + * @return string + * @static + */ + public static function extension($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->extension($path); + } + + /** + * Guess the file extension from the MIME type of a given file. + * + * @param string $path + * @return string|null + * @throws \RuntimeException + * @static + */ + public static function guessExtension($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->guessExtension($path); + } + + /** + * Get the file type of a given file. + * + * @param string $path + * @return string|false + * @static + */ + public static function type($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->type($path); + } + + /** + * Get the MIME type of a given file. + * + * @param string $path + * @return string|false + * @static + */ + public static function mimeType($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->mimeType($path); + } + + /** + * Get the file size of a given file. + * + * @param string $path + * @return int + * @static + */ + public static function size($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->size($path); + } + + /** + * Get the file's last modification time. + * + * @param string $path + * @return int + * @static + */ + public static function lastModified($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->lastModified($path); + } + + /** + * Determine if the given path is a directory. + * + * @param string $directory + * @return bool + * @static + */ + public static function isDirectory($directory) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isDirectory($directory); + } + + /** + * Determine if the given path is a directory that does not contain any other files or directories. + * + * @param string $directory + * @param bool $ignoreDotFiles + * @return bool + * @static + */ + public static function isEmptyDirectory($directory, $ignoreDotFiles = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isEmptyDirectory($directory, $ignoreDotFiles); + } + + /** + * Determine if the given path is readable. + * + * @param string $path + * @return bool + * @static + */ + public static function isReadable($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isReadable($path); + } + + /** + * Determine if the given path is writable. + * + * @param string $path + * @return bool + * @static + */ + public static function isWritable($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isWritable($path); + } + + /** + * Determine if two files are the same by comparing their hashes. + * + * @param string $firstFile + * @param string $secondFile + * @return bool + * @static + */ + public static function hasSameHash($firstFile, $secondFile) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->hasSameHash($firstFile, $secondFile); + } + + /** + * Determine if the given path is a file. + * + * @param string $file + * @return bool + * @static + */ + public static function isFile($file) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isFile($file); + } + + /** + * Find path names matching a given pattern. + * + * @param string $pattern + * @param int $flags + * @return array + * @static + */ + public static function glob($pattern, $flags = 0) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->glob($pattern, $flags); + } + + /** + * Get an array of all files in a directory. + * + * @param string $directory + * @param bool $hidden + * @return \Symfony\Component\Finder\SplFileInfo[] + * @static + */ + public static function files($directory, $hidden = false, $depth = 0) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->files($directory, $hidden, $depth); + } + + /** + * Get all of the files from the given directory (recursive). + * + * @param string $directory + * @param bool $hidden + * @return \Symfony\Component\Finder\SplFileInfo[] + * @static + */ + public static function allFiles($directory, $hidden = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->allFiles($directory, $hidden); + } + + /** + * Get all of the directories within a given directory. + * + * @param string $directory + * @return array + * @static + */ + public static function directories($directory, $depth = 0) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->directories($directory, $depth); + } + + /** + * Get all the directories within a given directory (recursive). + * + * @return array + * @static + */ + public static function allDirectories($directory) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->allDirectories($directory); + } + + /** + * Ensure a directory exists. + * + * @param string $path + * @param int $mode + * @param bool $recursive + * @return void + * @static + */ + public static function ensureDirectoryExists($path, $mode = 493, $recursive = true) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + $instance->ensureDirectoryExists($path, $mode, $recursive); + } + + /** + * Create a directory. + * + * @param string $path + * @param int $mode + * @param bool $recursive + * @param bool $force + * @return bool + * @static + */ + public static function makeDirectory($path, $mode = 493, $recursive = false, $force = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->makeDirectory($path, $mode, $recursive, $force); + } + + /** + * Move a directory. + * + * @param string $from + * @param string $to + * @param bool $overwrite + * @return bool + * @static + */ + public static function moveDirectory($from, $to, $overwrite = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->moveDirectory($from, $to, $overwrite); + } + + /** + * Copy a directory from one location to another. + * + * @param string $directory + * @param string $destination + * @param int|null $options + * @return bool + * @static + */ + public static function copyDirectory($directory, $destination, $options = null) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->copyDirectory($directory, $destination, $options); + } + + /** + * Recursively delete a directory. + * + * The directory itself may be optionally preserved. + * + * @param string $directory + * @param bool $preserve + * @return bool + * @static + */ + public static function deleteDirectory($directory, $preserve = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->deleteDirectory($directory, $preserve); + } + + /** + * Remove all of the directories within a given directory. + * + * @param string $directory + * @return bool + * @static + */ + public static function deleteDirectories($directory) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->deleteDirectories($directory); + } + + /** + * Empty the specified directory of all files and folders. + * + * @param string $directory + * @return bool + * @static + */ + public static function cleanDirectory($directory) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->cleanDirectory($directory); + } + + /** + * Apply the callback if the given "value" is (or resolves to) truthy. + * + * @template TWhenParameter + * @template TWhenReturnType + * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default + * @return $this|TWhenReturnType + * @static + */ + public static function when($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->when($value, $callback, $default); + } + + /** + * Apply the callback if the given "value" is (or resolves to) falsy. + * + * @template TUnlessParameter + * @template TUnlessReturnType + * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default + * @return $this|TUnlessReturnType + * @static + */ + public static function unless($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->unless($value, $callback, $default); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Filesystem\Filesystem::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Filesystem\Filesystem::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Filesystem\Filesystem::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Filesystem\Filesystem::flushMacros(); + } + + } + /** + * @see \Illuminate\Auth\Access\Gate + */ + class Gate { + /** + * Determine if a given ability has been defined. + * + * @param \UnitEnum|array|string $ability + * @return bool + * @static + */ + public static function has($ability) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->has($ability); + } + + /** + * Perform an on-demand authorization check. Throw an authorization exception if the condition or callback is false. + * + * @param \Illuminate\Auth\Access\Response|\Closure|bool $condition + * @param string|null $message + * @param string|null $code + * @return \Illuminate\Auth\Access\Response + * @throws \Illuminate\Auth\Access\AuthorizationException + * @static + */ + public static function allowIf($condition, $message = null, $code = null) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->allowIf($condition, $message, $code); + } + + /** + * Perform an on-demand authorization check. Throw an authorization exception if the condition or callback is true. + * + * @param \Illuminate\Auth\Access\Response|\Closure|bool $condition + * @param string|null $message + * @param string|null $code + * @return \Illuminate\Auth\Access\Response + * @throws \Illuminate\Auth\Access\AuthorizationException + * @static + */ + public static function denyIf($condition, $message = null, $code = null) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->denyIf($condition, $message, $code); + } + + /** + * Define a new ability. + * + * @param \UnitEnum|string $ability + * @param callable|array|string $callback + * @return \Illuminate\Auth\Access\Gate + * @throws \InvalidArgumentException + * @static + */ + public static function define($ability, $callback) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->define($ability, $callback); + } + + /** + * Define abilities for a resource. + * + * @param string $name + * @param string $class + * @param array|null $abilities + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function resource($name, $class, $abilities = null) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->resource($name, $class, $abilities); + } + + /** + * Define a policy class for a given class type. + * + * @param string $class + * @param string $policy + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function policy($class, $policy) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->policy($class, $policy); + } + + /** + * Register a callback to run before all Gate checks. + * + * @param callable $callback + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function before($callback) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->before($callback); + } + + /** + * Register a callback to run after all Gate checks. + * + * @param callable $callback + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function after($callback) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->after($callback); + } + + /** + * Determine if all of the given abilities should be granted for the current user. + * + * @param iterable|\UnitEnum|string $ability + * @param mixed $arguments + * @return bool + * @static + */ + public static function allows($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->allows($ability, $arguments); + } + + /** + * Determine if any of the given abilities should be denied for the current user. + * + * @param iterable|\UnitEnum|string $ability + * @param mixed $arguments + * @return bool + * @static + */ + public static function denies($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->denies($ability, $arguments); + } + + /** + * Determine if all of the given abilities should be granted for the current user. + * + * @param iterable|\UnitEnum|string $abilities + * @param mixed $arguments + * @return bool + * @static + */ + public static function check($abilities, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->check($abilities, $arguments); + } + + /** + * Determine if any one of the given abilities should be granted for the current user. + * + * @param iterable|\UnitEnum|string $abilities + * @param mixed $arguments + * @return bool + * @static + */ + public static function any($abilities, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->any($abilities, $arguments); + } + + /** + * Determine if all of the given abilities should be denied for the current user. + * + * @param iterable|\UnitEnum|string $abilities + * @param mixed $arguments + * @return bool + * @static + */ + public static function none($abilities, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->none($abilities, $arguments); + } + + /** + * Determine if the given ability should be granted for the current user. + * + * @param \UnitEnum|string $ability + * @param mixed $arguments + * @return \Illuminate\Auth\Access\Response + * @throws \Illuminate\Auth\Access\AuthorizationException + * @static + */ + public static function authorize($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->authorize($ability, $arguments); + } + + /** + * Inspect the user for the given ability. + * + * @param \UnitEnum|string $ability + * @param mixed $arguments + * @return \Illuminate\Auth\Access\Response + * @static + */ + public static function inspect($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->inspect($ability, $arguments); + } + + /** + * Get the raw result from the authorization callback. + * + * @param string $ability + * @param mixed $arguments + * @return mixed + * @throws \Illuminate\Auth\Access\AuthorizationException + * @static + */ + public static function raw($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->raw($ability, $arguments); + } + + /** + * Get a policy instance for a given class. + * + * @param object|string $class + * @return mixed + * @static + */ + public static function getPolicyFor($class) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->getPolicyFor($class); + } + + /** + * Specify a callback to be used to guess policy names. + * + * @param callable $callback + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function guessPolicyNamesUsing($callback) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->guessPolicyNamesUsing($callback); + } + + /** + * Build a policy class instance of the given type. + * + * @param object|string $class + * @return mixed + * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @static + */ + public static function resolvePolicy($class) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->resolvePolicy($class); + } + + /** + * Get a gate instance for the given user. + * + * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user + * @return static + * @static + */ + public static function forUser($user) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->forUser($user); + } + + /** + * Get all of the defined abilities. + * + * @return array + * @static + */ + public static function abilities() + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->abilities(); + } + + /** + * Get all of the defined policies. + * + * @return array + * @static + */ + public static function policies() + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->policies(); + } + + /** + * Set the default denial response for gates and policies. + * + * @param \Illuminate\Auth\Access\Response $response + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function defaultDenialResponse($response) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->defaultDenialResponse($response); + } + + /** + * Set the container instance used by the gate. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function setContainer($container) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->setContainer($container); + } + + /** + * Deny with a HTTP status code. + * + * @param int $status + * @param string|null $message + * @param int|null $code + * @return \Illuminate\Auth\Access\Response + * @static + */ + public static function denyWithStatus($status, $message = null, $code = null) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->denyWithStatus($status, $message, $code); + } + + /** + * Deny with a 404 HTTP status code. + * + * @param string|null $message + * @param int|null $code + * @return \Illuminate\Auth\Access\Response + * @static + */ + public static function denyAsNotFound($message = null, $code = null) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->denyAsNotFound($message, $code); + } + + } + /** + * @see \Illuminate\Hashing\HashManager + * @see \Illuminate\Hashing\AbstractHasher + */ + class Hash { + /** + * Create an instance of the Bcrypt hash Driver. + * + * @return \Illuminate\Hashing\BcryptHasher + * @static + */ + public static function createBcryptDriver() + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->createBcryptDriver(); + } + + /** + * Create an instance of the Argon2i hash Driver. + * + * @return \Illuminate\Hashing\ArgonHasher + * @static + */ + public static function createArgonDriver() + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->createArgonDriver(); + } + + /** + * Create an instance of the Argon2id hash Driver. + * + * @return \Illuminate\Hashing\Argon2IdHasher + * @static + */ + public static function createArgon2idDriver() + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->createArgon2idDriver(); + } + + /** + * Get information about the given hashed value. + * + * @param string $hashedValue + * @return array + * @static + */ + public static function info($hashedValue) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->info($hashedValue); + } + + /** + * Hash the given value. + * + * @param string $value + * @param array $options + * @return string + * @static + */ + public static function make($value, $options = []) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->make($value, $options); + } + + /** + * Check the given plain value against a hash. + * + * @param string $value + * @param string $hashedValue + * @param array $options + * @return bool + * @static + */ + public static function check($value, $hashedValue, $options = []) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->check($value, $hashedValue, $options); + } + + /** + * Check if the given hash has been hashed using the given options. + * + * @param string $hashedValue + * @param array $options + * @return bool + * @static + */ + public static function needsRehash($hashedValue, $options = []) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->needsRehash($hashedValue, $options); + } + + /** + * Determine if a given string is already hashed. + * + * @param string $value + * @return bool + * @static + */ + public static function isHashed($value) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->isHashed($value); + } + + /** + * Get the default driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Verifies that the configuration is less than or equal to what is configured. + * + * @param array $value + * @return bool + * @internal + * @static + */ + public static function verifyConfiguration($value) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->verifyConfiguration($value); + } + + /** + * Get a driver instance. + * + * @param string|null $driver + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function driver($driver = null) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->driver($driver); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Hashing\HashManager + * @static + */ + public static function extend($driver, $callback) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Get all of the created "drivers". + * + * @return array + * @static + */ + public static function getDrivers() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->getDrivers(); + } + + /** + * Get the container instance used by the manager. + * + * @return \Illuminate\Contracts\Container\Container + * @static + */ + public static function getContainer() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->getContainer(); + } + + /** + * Set the container instance used by the manager. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return \Illuminate\Hashing\HashManager + * @static + */ + public static function setContainer($container) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->setContainer($container); + } + + /** + * Forget all of the resolved driver instances. + * + * @return \Illuminate\Hashing\HashManager + * @static + */ + public static function forgetDrivers() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->forgetDrivers(); + } + + } + /** + * @method static \Illuminate\Http\Client\PendingRequest baseUrl(string $url) + * @method static \Illuminate\Http\Client\PendingRequest withBody(\Psr\Http\Message\StreamInterface|string $content, string $contentType = 'application/json') + * @method static \Illuminate\Http\Client\PendingRequest asJson() + * @method static \Illuminate\Http\Client\PendingRequest asForm() + * @method static \Illuminate\Http\Client\PendingRequest attach(string|array $name, string|resource $contents = '', string|null $filename = null, array $headers = []) + * @method static \Illuminate\Http\Client\PendingRequest asMultipart() + * @method static \Illuminate\Http\Client\PendingRequest bodyFormat(string $format) + * @method static \Illuminate\Http\Client\PendingRequest withQueryParameters(array $parameters) + * @method static \Illuminate\Http\Client\PendingRequest contentType(string $contentType) + * @method static \Illuminate\Http\Client\PendingRequest acceptJson() + * @method static \Illuminate\Http\Client\PendingRequest accept(string $contentType) + * @method static \Illuminate\Http\Client\PendingRequest withHeaders(array $headers) + * @method static \Illuminate\Http\Client\PendingRequest withHeader(string $name, mixed $value) + * @method static \Illuminate\Http\Client\PendingRequest replaceHeaders(array $headers) + * @method static \Illuminate\Http\Client\PendingRequest withBasicAuth(string $username, string $password) + * @method static \Illuminate\Http\Client\PendingRequest withDigestAuth(string $username, string $password) + * @method static \Illuminate\Http\Client\PendingRequest withNtlmAuth(string $username, string $password) + * @method static \Illuminate\Http\Client\PendingRequest withToken(string $token, string $type = 'Bearer') + * @method static \Illuminate\Http\Client\PendingRequest withUserAgent(string|bool $userAgent) + * @method static \Illuminate\Http\Client\PendingRequest withUrlParameters(array $parameters = []) + * @method static \Illuminate\Http\Client\PendingRequest withCookies(array $cookies, string $domain) + * @method static \Illuminate\Http\Client\PendingRequest maxRedirects(int $max) + * @method static \Illuminate\Http\Client\PendingRequest withoutRedirecting() + * @method static \Illuminate\Http\Client\PendingRequest withoutVerifying() + * @method static \Illuminate\Http\Client\PendingRequest sink(string|resource $to) + * @method static \Illuminate\Http\Client\PendingRequest timeout(int|float $seconds) + * @method static \Illuminate\Http\Client\PendingRequest connectTimeout(int|float $seconds) + * @method static \Illuminate\Http\Client\PendingRequest retry(array|int $times, \Closure|int $sleepMilliseconds = 0, callable|null $when = null, bool $throw = true) + * @method static \Illuminate\Http\Client\PendingRequest withOptions(array $options) + * @method static \Illuminate\Http\Client\PendingRequest withMiddleware(callable $middleware) + * @method static \Illuminate\Http\Client\PendingRequest withRequestMiddleware(callable $middleware) + * @method static \Illuminate\Http\Client\PendingRequest withResponseMiddleware(callable $middleware) + * @method static \Illuminate\Http\Client\PendingRequest withAttributes(array $attributes) + * @method static \Illuminate\Http\Client\PendingRequest beforeSending(callable $callback) + * @method static \Illuminate\Http\Client\PendingRequest afterResponse(callable|null $callback) + * @method static \Illuminate\Http\Client\PendingRequest throw(callable|null $callback = null) + * @method static \Illuminate\Http\Client\PendingRequest throwIf(callable|bool $condition) + * @method static \Illuminate\Http\Client\PendingRequest throwUnless(callable|bool $condition) + * @method static \Illuminate\Http\Client\PendingRequest dump() + * @method static \Illuminate\Http\Client\PendingRequest dd() + * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface get(string $url, array|string|null $query = null) + * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface head(string $url, array|string|null $query = null) + * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface post(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) + * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface patch(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) + * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface put(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) + * @method static \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface delete(string $url, array|\JsonSerializable|\Illuminate\Contracts\Support\Arrayable $data = []) + * @method static array pool(callable $callback, int|null $concurrency = 0) + * @method static \Illuminate\Http\Client\Batch batch(callable $callback) + * @method static \Illuminate\Http\Client\Response|\Illuminate\Http\Client\Promises\LazyPromise send(string $method, string $url, array $options = []) + * @method static \GuzzleHttp\Client buildClient() + * @method static \GuzzleHttp\Client createClient(\GuzzleHttp\HandlerStack $handlerStack) + * @method static \GuzzleHttp\HandlerStack buildHandlerStack() + * @method static \GuzzleHttp\HandlerStack pushHandlers(\GuzzleHttp\HandlerStack $handlerStack) + * @method static \Closure buildBeforeSendingHandler() + * @method static \Closure buildRecorderHandler() + * @method static \Closure buildStubHandler() + * @method static \Psr\Http\Message\RequestInterface runBeforeSendingCallbacks(\Psr\Http\Message\RequestInterface $request, array $options) + * @method static array mergeOptions(array ...$options) + * @method static \Illuminate\Http\Client\PendingRequest stub(callable $callback) + * @method static bool isAllowedRequestUrl(string $url) + * @method static \Illuminate\Http\Client\PendingRequest async(bool $async = true) + * @method static \GuzzleHttp\Promise\PromiseInterface|null getPromise() + * @method static \Illuminate\Http\Client\PendingRequest truncateExceptionsAt(int $length) + * @method static \Illuminate\Http\Client\PendingRequest dontTruncateExceptions() + * @method static \Illuminate\Http\Client\PendingRequest setClient(\GuzzleHttp\Client $client) + * @method static \Illuminate\Http\Client\PendingRequest setHandler(callable $handler) + * @method static array getOptions() + * @method static \Illuminate\Http\Client\PendingRequest|mixed when(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null) + * @method static \Illuminate\Http\Client\PendingRequest|mixed unless(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null) + * @see \Illuminate\Http\Client\Factory + */ + class Http { + /** + * Add middleware to apply to every request. + * + * @param callable $middleware + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function globalMiddleware($middleware) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->globalMiddleware($middleware); + } + + /** + * Add request middleware to apply to every request. + * + * @param callable $middleware + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function globalRequestMiddleware($middleware) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->globalRequestMiddleware($middleware); + } + + /** + * Add response middleware to apply to every request. + * + * @param callable $middleware + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function globalResponseMiddleware($middleware) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->globalResponseMiddleware($middleware); + } + + /** + * Set the options to apply to every request. + * + * @param \Closure|array $options + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function globalOptions($options) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->globalOptions($options); + } + + /** + * Create a new response instance for use during stubbing. + * + * @param array|string|null $body + * @param int $status + * @param array $headers + * @return \GuzzleHttp\Promise\PromiseInterface + * @static + */ + public static function response($body = null, $status = 200, $headers = []) + { + return \Illuminate\Http\Client\Factory::response($body, $status, $headers); + } + + /** + * Create a new PSR-7 response instance for use during stubbing. + * + * @param array|string|null $body + * @param int $status + * @param array $headers + * @return \GuzzleHttp\Psr7\Response + * @static + */ + public static function psr7Response($body = null, $status = 200, $headers = []) + { + return \Illuminate\Http\Client\Factory::psr7Response($body, $status, $headers); + } + + /** + * Create a new RequestException instance for use during stubbing. + * + * @param array|string|null $body + * @param int $status + * @param array $headers + * @return \Illuminate\Http\Client\RequestException + * @static + */ + public static function failedRequest($body = null, $status = 200, $headers = []) + { + return \Illuminate\Http\Client\Factory::failedRequest($body, $status, $headers); + } + + /** + * Create a new connection exception for use during stubbing. + * + * @param string|null $message + * @return \Closure(\Illuminate\Http\Client\Request): \GuzzleHttp\Promise\PromiseInterface + * @static + */ + public static function failedConnection($message = null) + { + return \Illuminate\Http\Client\Factory::failedConnection($message); + } + + /** + * Get an invokable object that returns a sequence of responses in order for use during stubbing. + * + * @param array $responses + * @return \Illuminate\Http\Client\ResponseSequence + * @static + */ + public static function sequence($responses = []) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->sequence($responses); + } + + /** + * Register a stub callable that will intercept requests and be able to return stub responses. + * + * @param callable|array|null $callback + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function fake($callback = null) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->fake($callback); + } + + /** + * Register a response sequence for the given URL pattern. + * + * @param string $url + * @return \Illuminate\Http\Client\ResponseSequence + * @static + */ + public static function fakeSequence($url = '*') + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->fakeSequence($url); + } + + /** + * Stub the given URL using the given callback. + * + * @param string $url + * @param \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface|callable|int|string|array|\Illuminate\Http\Client\ResponseSequence $callback + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function stubUrl($url, $callback) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->stubUrl($url, $callback); + } + + /** + * Indicate that an exception should be thrown if any request is not faked. + * + * @param bool $prevent + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function preventStrayRequests($prevent = true) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->preventStrayRequests($prevent); + } + + /** + * Determine if stray requests are being prevented. + * + * @return bool + * @static + */ + public static function preventingStrayRequests() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->preventingStrayRequests(); + } + + /** + * Allow stray, unfaked requests entirely, or optionally allow only specific URLs. + * + * @param array|null $only + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function allowStrayRequests($only = null) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->allowStrayRequests($only); + } + + /** + * Begin recording request / response pairs. + * + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function record() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->record(); + } + + /** + * Record a request response pair. + * + * @param \Illuminate\Http\Client\Request $request + * @param \Illuminate\Http\Client\Response|null $response + * @return void + * @static + */ + public static function recordRequestResponsePair($request, $response) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->recordRequestResponsePair($request, $response); + } + + /** + * Assert that a request / response pair was recorded matching a given truth test. + * + * @param callable|(\Closure(\Illuminate\Http\Client\Request, \Illuminate\Http\Client\Response|null): bool) $callback + * @return void + * @static + */ + public static function assertSent($callback) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertSent($callback); + } + + /** + * Assert that the given request was sent in the given order. + * + * @param list $callbacks + * @return void + * @static + */ + public static function assertSentInOrder($callbacks) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertSentInOrder($callbacks); + } + + /** + * Assert that a request / response pair was not recorded matching a given truth test. + * + * @param callable|(\Closure(\Illuminate\Http\Client\Request, \Illuminate\Http\Client\Response|null): bool) $callback + * @return void + * @static + */ + public static function assertNotSent($callback) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertNotSent($callback); + } + + /** + * Assert that no request / response pair was recorded. + * + * @return void + * @static + */ + public static function assertNothingSent() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertNothingSent(); + } + + /** + * Assert how many requests have been recorded. + * + * @param int $count + * @return void + * @static + */ + public static function assertSentCount($count) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertSentCount($count); + } + + /** + * Assert that every created response sequence is empty. + * + * @return void + * @static + */ + public static function assertSequencesAreEmpty() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertSequencesAreEmpty(); + } + + /** + * Get a collection of the request / response pairs matching the given truth test. + * + * @param (\Closure(\Illuminate\Http\Client\Request, \Illuminate\Http\Client\Response|null): bool)|callable $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function recorded($callback = null) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->recorded($callback); + } + + /** + * Create a new pending request instance for this factory. + * + * @return \Illuminate\Http\Client\PendingRequest + * @static + */ + public static function createPendingRequest() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->createPendingRequest(); + } + + /** + * Get the current event dispatcher implementation. + * + * @return \Illuminate\Contracts\Events\Dispatcher|null + * @static + */ + public static function getDispatcher() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->getDispatcher(); + } + + /** + * Get the array of global middleware. + * + * @return array + * @static + */ + public static function getGlobalMiddleware() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->getGlobalMiddleware(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Http\Client\Factory::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Http\Client\Factory::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Http\Client\Factory::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Http\Client\Factory::flushMacros(); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->macroCall($method, $parameters); + } + + } + /** + * @see \Illuminate\Translation\Translator + */ + class Lang { + /** + * Determine if a translation exists for a given locale. + * + * @param string $key + * @param string|null $locale + * @return bool + * @static + */ + public static function hasForLocale($key, $locale = null) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->hasForLocale($key, $locale); + } + + /** + * Determine if a translation exists. + * + * @param string $key + * @param string|null $locale + * @param bool $fallback + * @return bool + * @static + */ + public static function has($key, $locale = null, $fallback = true) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->has($key, $locale, $fallback); + } + + /** + * Get the translation for the given key. + * + * @param string $key + * @param array $replace + * @param string|null $locale + * @param bool $fallback + * @return string|array + * @static + */ + public static function get($key, $replace = [], $locale = null, $fallback = true) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->get($key, $replace, $locale, $fallback); + } + + /** + * Get a translation according to an integer value. + * + * @param string $key + * @param \Countable|int|float|array $number + * @param array $replace + * @param string|null $locale + * @return string + * @static + */ + public static function choice($key, $number, $replace = [], $locale = null) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->choice($key, $number, $replace, $locale); + } + + /** + * Add translation lines to the given locale. + * + * @param array $lines + * @param string $locale + * @param string $namespace + * @return void + * @static + */ + public static function addLines($lines, $locale, $namespace = '*') + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->addLines($lines, $locale, $namespace); + } + + /** + * Load the specified language group. + * + * @param string $namespace + * @param string $group + * @param string $locale + * @return void + * @static + */ + public static function load($namespace, $group, $locale) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->load($namespace, $group, $locale); + } + + /** + * Register a callback that is responsible for handling missing translation keys. + * + * @param callable|null $callback + * @return static + * @static + */ + public static function handleMissingKeysUsing($callback) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->handleMissingKeysUsing($callback); + } + + /** + * Add a new namespace to the loader. + * + * @param string $namespace + * @param string $hint + * @return void + * @static + */ + public static function addNamespace($namespace, $hint) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->addNamespace($namespace, $hint); + } + + /** + * Add a new path to the loader. + * + * @param string $path + * @return void + * @static + */ + public static function addPath($path) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->addPath($path); + } + + /** + * Add a new JSON path to the loader. + * + * @param string $path + * @return void + * @static + */ + public static function addJsonPath($path) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->addJsonPath($path); + } + + /** + * Parse a key into namespace, group, and item. + * + * @param string $key + * @return array + * @static + */ + public static function parseKey($key) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->parseKey($key); + } + + /** + * Specify a callback that should be invoked to determined the applicable locale array. + * + * @param callable $callback + * @return void + * @static + */ + public static function determineLocalesUsing($callback) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->determineLocalesUsing($callback); + } + + /** + * Get the message selector instance. + * + * @return \Illuminate\Translation\MessageSelector + * @static + */ + public static function getSelector() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->getSelector(); + } + + /** + * Set the message selector instance. + * + * @param \Illuminate\Translation\MessageSelector $selector + * @return void + * @static + */ + public static function setSelector($selector) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setSelector($selector); + } + + /** + * Get the language line loader implementation. + * + * @return \Illuminate\Contracts\Translation\Loader + * @static + */ + public static function getLoader() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->getLoader(); + } + + /** + * Get the default locale being used. + * + * @return string + * @static + */ + public static function locale() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->locale(); + } + + /** + * Get the default locale being used. + * + * @return string + * @static + */ + public static function getLocale() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->getLocale(); + } + + /** + * Set the default locale. + * + * @param string $locale + * @return void + * @throws \InvalidArgumentException + * @static + */ + public static function setLocale($locale) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setLocale($locale); + } + + /** + * Get the fallback locale being used. + * + * @return string + * @static + */ + public static function getFallback() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->getFallback(); + } + + /** + * Set the fallback locale being used. + * + * @param string $fallback + * @return void + * @static + */ + public static function setFallback($fallback) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setFallback($fallback); + } + + /** + * Set the loaded translation groups. + * + * @param array $loaded + * @return void + * @static + */ + public static function setLoaded($loaded) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setLoaded($loaded); + } + + /** + * Add a handler to be executed in order to format a given class to a string during translation replacements. + * + * @param callable|string $class + * @param callable|null $handler + * @return void + * @static + */ + public static function stringable($class, $handler = null) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->stringable($class, $handler); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Translation\Translator::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Translation\Translator::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Translation\Translator::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Translation\Translator::flushMacros(); + } + + /** + * Set the parsed value of a key. + * + * @param string $key + * @param array $parsed + * @return void + * @static + */ + public static function setParsedKey($key, $parsed) + { + //Method inherited from \Illuminate\Support\NamespacedItemResolver + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setParsedKey($key, $parsed); + } + + /** + * Flush the cache of parsed keys. + * + * @return void + * @static + */ + public static function flushParsedKeys() + { + //Method inherited from \Illuminate\Support\NamespacedItemResolver + /** @var \Illuminate\Translation\Translator $instance */ + $instance->flushParsedKeys(); + } + + } + /** + * @method static void write(string $level, \Illuminate\Contracts\Support\Arrayable|\Illuminate\Contracts\Support\Jsonable|\Illuminate\Support\Stringable|array|string $message, array $context = []) + * @method static \Illuminate\Log\Logger withContext(array $context = []) + * @method static void listen(\Closure $callback) + * @method static \Psr\Log\LoggerInterface getLogger() + * @method static \Illuminate\Contracts\Events\Dispatcher|null getEventDispatcher() + * @method static void setEventDispatcher(\Illuminate\Contracts\Events\Dispatcher $dispatcher) + * @method static \Illuminate\Log\Logger|mixed when(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null) + * @method static \Illuminate\Log\Logger|mixed unless(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null) + * @see \Illuminate\Log\LogManager + */ + class Log { + /** + * Build an on-demand log channel. + * + * @param array $config + * @return \Psr\Log\LoggerInterface + * @static + */ + public static function build($config) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->build($config); + } + + /** + * Create a new, on-demand aggregate logger instance. + * + * @param array $channels + * @param string|null $channel + * @return \Psr\Log\LoggerInterface + * @static + */ + public static function stack($channels, $channel = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->stack($channels, $channel); + } + + /** + * Get a log channel instance. + * + * @param string|null $channel + * @return \Psr\Log\LoggerInterface + * @static + */ + public static function channel($channel = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->channel($channel); + } + + /** + * Get a log driver instance. + * + * @param string|null $driver + * @return \Psr\Log\LoggerInterface + * @static + */ + public static function driver($driver = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->driver($driver); + } + + /** + * Share context across channels and stacks. + * + * @param array $context + * @return \Illuminate\Log\LogManager + * @static + */ + public static function shareContext($context) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->shareContext($context); + } + + /** + * The context shared across channels and stacks. + * + * @return array + * @static + */ + public static function sharedContext() + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->sharedContext(); + } + + /** + * Flush the log context on all currently resolved channels. + * + * @param string[]|null $keys + * @return \Illuminate\Log\LogManager + * @static + */ + public static function withoutContext($keys = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->withoutContext($keys); + } + + /** + * Flush the shared context. + * + * @return \Illuminate\Log\LogManager + * @static + */ + public static function flushSharedContext() + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->flushSharedContext(); + } + + /** + * Get the default log driver name. + * + * @return string|null + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Set the default log driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->setDefaultDriver($name); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Log\LogManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Unset the given channel instance. + * + * @param string|null $driver + * @return void + * @static + */ + public static function forgetChannel($driver = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->forgetChannel($driver); + } + + /** + * Get all of the resolved log channels. + * + * @return array + * @static + */ + public static function getChannels() + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->getChannels(); + } + + /** + * System is unusable. + * + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function emergency($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->emergency($message, $context); + } + + /** + * Action must be taken immediately. + * + * Example: Entire website down, database unavailable, etc. This should + * trigger the SMS alerts and wake you up. + * + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function alert($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->alert($message, $context); + } + + /** + * Critical conditions. + * + * Example: Application component unavailable, unexpected exception. + * + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function critical($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->critical($message, $context); + } + + /** + * Runtime errors that do not require immediate action but should typically + * be logged and monitored. + * + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function error($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->error($message, $context); + } + + /** + * Exceptional occurrences that are not errors. + * + * Example: Use of deprecated APIs, poor use of an API, undesirable things + * that are not necessarily wrong. + * + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function warning($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->warning($message, $context); + } + + /** + * Normal but significant events. + * + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function notice($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->notice($message, $context); + } + + /** + * Interesting events. + * + * Example: User logs in, SQL logs. + * + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function info($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->info($message, $context); + } + + /** + * Detailed debug information. + * + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function debug($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->debug($message, $context); + } + + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string|\Stringable $message + * @param array $context + * @return void + * @static + */ + public static function log($level, $message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->log($level, $message, $context); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Log\LogManager + * @static + */ + public static function setApplication($app) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->setApplication($app); + } + + } + /** + * @method static void alwaysFrom(string $address, string|null $name = null) + * @method static void alwaysReplyTo(string $address, string|null $name = null) + * @method static void alwaysReturnPath(string $address) + * @method static void alwaysTo(string $address, string|null $name = null) + * @method static \Illuminate\Mail\SentMessage|null html(string $html, mixed $callback) + * @method static \Illuminate\Mail\SentMessage|null plain(string $view, array $data, mixed $callback) + * @method static string render(string|array $view, array $data = []) + * @method static mixed onQueue(\BackedEnum|string|null $queue, \Illuminate\Contracts\Mail\Mailable $view) + * @method static mixed queueOn(string $queue, \Illuminate\Contracts\Mail\Mailable $view) + * @method static mixed laterOn(string $queue, \DateTimeInterface|\DateInterval|int $delay, \Illuminate\Contracts\Mail\Mailable $view) + * @method static \Symfony\Component\Mailer\Transport\TransportInterface getSymfonyTransport() + * @method static \Illuminate\Contracts\View\Factory getViewFactory() + * @method static void setSymfonyTransport(\Symfony\Component\Mailer\Transport\TransportInterface $transport) + * @method static \Illuminate\Mail\Mailer setQueue(\Illuminate\Contracts\Queue\Factory $queue) + * @method static void macro(string $name, object|callable $macro) + * @method static void mixin(object $mixin, bool $replace = true) + * @method static bool hasMacro(string $name) + * @method static void flushMacros() + * @see \Illuminate\Mail\MailManager + * @see \Illuminate\Support\Testing\Fakes\MailFake + */ + class Mail { + /** + * Get a mailer instance by name. + * + * @param string|null $name + * @return \Illuminate\Contracts\Mail\Mailer + * @static + */ + public static function mailer($name = null) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->mailer($name); + } + + /** + * Get a mailer driver instance. + * + * @param string|null $driver + * @return \Illuminate\Mail\Mailer + * @static + */ + public static function driver($driver = null) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->driver($driver); + } + + /** + * Build a new mailer instance. + * + * @param array $config + * @return \Illuminate\Mail\Mailer + * @static + */ + public static function build($config) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->build($config); + } + + /** + * Create a new transport instance. + * + * @param array $config + * @return \Symfony\Component\Mailer\Transport\TransportInterface + * @throws \InvalidArgumentException + * @static + */ + public static function createSymfonyTransport($config) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->createSymfonyTransport($config); + } + + /** + * Get the default mail driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Set the default mail driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Mail\MailManager $instance */ + $instance->setDefaultDriver($name); + } + + /** + * Disconnect the given mailer and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Mail\MailManager $instance */ + $instance->purge($name); + } + + /** + * Register a custom transport creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Mail\MailManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Get the application instance used by the manager. + * + * @return \Illuminate\Contracts\Foundation\Application + * @static + */ + public static function getApplication() + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->getApplication(); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Mail\MailManager + * @static + */ + public static function setApplication($app) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->setApplication($app); + } + + /** + * Forget all of the resolved mailer instances. + * + * @return \Illuminate\Mail\MailManager + * @static + */ + public static function forgetMailers() + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->forgetMailers(); + } + + /** + * Assert if a mailable was sent based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|array|string|int|null $callback + * @return void + * @static + */ + public static function assertSent($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertSent($mailable, $callback); + } + + /** + * Assert if a mailable was sent a number of times. + * + * @param string $mailable + * @param int $times + * @return void + * @static + */ + public static function assertSentTimes($mailable, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertSentTimes($mailable, $times); + } + + /** + * Determine if a mailable was not sent or queued to be sent based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotOutgoing($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNotOutgoing($mailable, $callback); + } + + /** + * Determine if a mailable was not sent based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|array|string|null $callback + * @return void + * @static + */ + public static function assertNotSent($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNotSent($mailable, $callback); + } + + /** + * Assert that no mailables were sent or queued to be sent. + * + * @return void + * @static + */ + public static function assertNothingOutgoing() + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNothingOutgoing(); + } + + /** + * Assert that no mailables were sent. + * + * @return void + * @static + */ + public static function assertNothingSent() + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNothingSent(); + } + + /** + * Assert if a mailable was queued based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|array|string|int|null $callback + * @return void + * @static + */ + public static function assertQueued($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertQueued($mailable, $callback); + } + + /** + * Determine if a mailable was not queued based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|array|string|null $callback + * @return void + * @static + */ + public static function assertNotQueued($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNotQueued($mailable, $callback); + } + + /** + * Assert that no mailables were queued. + * + * @return void + * @static + */ + public static function assertNothingQueued() + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNothingQueued(); + } + + /** + * Assert the total number of mailables that were sent. + * + * @param int $count + * @return void + * @static + */ + public static function assertSentCount($count) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertSentCount($count); + } + + /** + * Assert the total number of mailables that were queued. + * + * @param int $count + * @return void + * @static + */ + public static function assertQueuedCount($count) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertQueuedCount($count); + } + + /** + * Assert the total number of mailables that were sent or queued. + * + * @param int $count + * @return void + * @static + */ + public static function assertOutgoingCount($count) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertOutgoingCount($count); + } + + /** + * Get all of the mailables matching a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function sent($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->sent($mailable, $callback); + } + + /** + * Determine if the given mailable has been sent. + * + * @param string $mailable + * @return bool + * @static + */ + public static function hasSent($mailable) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->hasSent($mailable); + } + + /** + * Get all of the queued mailables matching a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function queued($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->queued($mailable, $callback); + } + + /** + * Determine if the given mailable has been queued. + * + * @param string $mailable + * @return bool + * @static + */ + public static function hasQueued($mailable) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->hasQueued($mailable); + } + + /** + * Begin the process of mailing a mailable class instance. + * + * @param mixed $users + * @return \Illuminate\Mail\PendingMail + * @static + */ + public static function to($users) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->to($users); + } + + /** + * Begin the process of mailing a mailable class instance. + * + * @param mixed $users + * @return \Illuminate\Mail\PendingMail + * @static + */ + public static function cc($users) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->cc($users); + } + + /** + * Begin the process of mailing a mailable class instance. + * + * @param mixed $users + * @return \Illuminate\Mail\PendingMail + * @static + */ + public static function bcc($users) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->bcc($users); + } + + /** + * Send a new message with only a raw text part. + * + * @param string $text + * @param \Closure|string $callback + * @return void + * @static + */ + public static function raw($text, $callback) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->raw($text, $callback); + } + + /** + * Send a new message using a view. + * + * @param \Illuminate\Contracts\Mail\Mailable|string|array $view + * @param array $data + * @param \Closure|string|null $callback + * @return mixed|void + * @static + */ + public static function send($view, $data = [], $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->send($view, $data, $callback); + } + + /** + * Send a new message synchronously using a view. + * + * @param \Illuminate\Contracts\Mail\Mailable|string|array $mailable + * @param array $data + * @param \Closure|string|null $callback + * @return void + * @static + */ + public static function sendNow($mailable, $data = [], $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->sendNow($mailable, $data, $callback); + } + + /** + * Queue a new message for sending. + * + * @param \Illuminate\Contracts\Mail\Mailable|string|array $view + * @param string|null $queue + * @return mixed + * @static + */ + public static function queue($view, $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->queue($view, $queue); + } + + /** + * Queue a new e-mail message for sending after (n) seconds. + * + * @param \DateTimeInterface|\DateInterval|int $delay + * @param \Illuminate\Contracts\Mail\Mailable|string|array $view + * @param string|null $queue + * @return mixed + * @static + */ + public static function later($delay, $view, $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->later($delay, $view, $queue); + } + + } + /** + * @see \Illuminate\Notifications\ChannelManager + * @see \Illuminate\Support\Testing\Fakes\NotificationFake + */ + class Notification { + /** + * Send the given notification to the given notifiable entities. + * + * @param \Illuminate\Support\Collection|mixed $notifiables + * @param mixed $notification + * @return void + * @static + */ + public static function send($notifiables, $notification) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + $instance->send($notifiables, $notification); + } + + /** + * Send the given notification immediately. + * + * @param \Illuminate\Support\Collection|mixed $notifiables + * @param mixed $notification + * @param array|null $channels + * @return void + * @static + */ + public static function sendNow($notifiables, $notification, $channels = null) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + $instance->sendNow($notifiables, $notification, $channels); + } + + /** + * Get a channel instance. + * + * @param string|null $name + * @return mixed + * @static + */ + public static function channel($name = null) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->channel($name); + } + + /** + * Get the default channel driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Get the default channel driver name. + * + * @return string + * @static + */ + public static function deliversVia() + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->deliversVia(); + } + + /** + * Set the default channel driver name. + * + * @param string $channel + * @return void + * @static + */ + public static function deliverVia($channel) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + $instance->deliverVia($channel); + } + + /** + * Set the locale of notifications. + * + * @param string $locale + * @return \Illuminate\Notifications\ChannelManager + * @static + */ + public static function locale($locale) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->locale($locale); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Notifications\ChannelManager::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Notifications\ChannelManager::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Notifications\ChannelManager::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Notifications\ChannelManager::flushMacros(); + } + + /** + * Resolve the default connection name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveConnectionFromQueueRoute($queueable) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->resolveConnectionFromQueueRoute($queueable); + } + + /** + * Resolve the default queue name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveQueueFromQueueRoute($queueable) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->resolveQueueFromQueueRoute($queueable); + } + + /** + * Get a driver instance. + * + * @param string|null $driver + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function driver($driver = null) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->driver($driver); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Notifications\ChannelManager + * @static + */ + public static function extend($driver, $callback) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Get all of the created "drivers". + * + * @return array + * @static + */ + public static function getDrivers() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->getDrivers(); + } + + /** + * Get the container instance used by the manager. + * + * @return \Illuminate\Contracts\Container\Container + * @static + */ + public static function getContainer() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->getContainer(); + } + + /** + * Set the container instance used by the manager. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return \Illuminate\Notifications\ChannelManager + * @static + */ + public static function setContainer($container) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->setContainer($container); + } + + /** + * Forget all of the resolved driver instances. + * + * @return \Illuminate\Notifications\ChannelManager + * @static + */ + public static function forgetDrivers() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->forgetDrivers(); + } + + /** + * Assert if a notification was sent on-demand based on a truth-test callback. + * + * @param string|\Closure $notification + * @param callable|null $callback + * @return void + * @throws \Exception + * @static + */ + public static function assertSentOnDemand($notification, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertSentOnDemand($notification, $callback); + } + + /** + * Assert if a notification was sent based on a truth-test callback. + * + * @param mixed $notifiable + * @param string|\Closure $notification + * @param callable|null $callback + * @return void + * @throws \Exception + * @static + */ + public static function assertSentTo($notifiable, $notification, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertSentTo($notifiable, $notification, $callback); + } + + /** + * Assert if a notification was sent on-demand a number of times. + * + * @param string $notification + * @param int $times + * @return void + * @static + */ + public static function assertSentOnDemandTimes($notification, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertSentOnDemandTimes($notification, $times); + } + + /** + * Assert if a notification was sent a number of times. + * + * @param mixed $notifiable + * @param string $notification + * @param int $times + * @return void + * @static + */ + public static function assertSentToTimes($notifiable, $notification, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertSentToTimes($notifiable, $notification, $times); + } + + /** + * Determine if a notification was sent based on a truth-test callback. + * + * @param mixed $notifiable + * @param string|\Closure $notification + * @param callable|null $callback + * @return void + * @throws \Exception + * @static + */ + public static function assertNotSentTo($notifiable, $notification, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertNotSentTo($notifiable, $notification, $callback); + } + + /** + * Assert that no notifications were sent. + * + * @return void + * @static + */ + public static function assertNothingSent() + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertNothingSent(); + } + + /** + * Assert that no notifications were sent to the given notifiable. + * + * @param mixed $notifiable + * @return void + * @throws \Exception + * @static + */ + public static function assertNothingSentTo($notifiable) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertNothingSentTo($notifiable); + } + + /** + * Assert the total amount of times a notification was sent. + * + * @param string $notification + * @param int $expectedCount + * @return void + * @static + */ + public static function assertSentTimes($notification, $expectedCount) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertSentTimes($notification, $expectedCount); + } + + /** + * Assert the total count of notification that were sent. + * + * @param int $expectedCount + * @return void + * @static + */ + public static function assertCount($expectedCount) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertCount($expectedCount); + } + + /** + * Get all of the notifications matching a truth-test callback. + * + * @param mixed $notifiable + * @param string $notification + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function sent($notifiable, $notification, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + return $instance->sent($notifiable, $notification, $callback); + } + + /** + * Determine if there are more notifications left to inspect. + * + * @param mixed $notifiable + * @param string $notification + * @return bool + * @static + */ + public static function hasSent($notifiable, $notification) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + return $instance->hasSent($notifiable, $notification); + } + + /** + * Specify if notification should be serialized and restored when being "pushed" to the queue. + * + * @param bool $serializeAndRestore + * @return \Illuminate\Support\Testing\Fakes\NotificationFake + * @static + */ + public static function serializeAndRestore($serializeAndRestore = true) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + return $instance->serializeAndRestore($serializeAndRestore); + } + + /** + * Get the notifications that have been sent. + * + * @return array + * @static + */ + public static function sentNotifications() + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + return $instance->sentNotifications(); + } + + } + /** + * @method static string sendResetLink(array $credentials, \Closure|null $callback = null) + * @method static mixed reset(array $credentials, \Closure $callback) + * @method static \Illuminate\Contracts\Auth\CanResetPassword|null getUser(array $credentials) + * @method static string createToken(\Illuminate\Contracts\Auth\CanResetPassword $user) + * @method static void deleteToken(\Illuminate\Contracts\Auth\CanResetPassword $user) + * @method static bool tokenExists(\Illuminate\Contracts\Auth\CanResetPassword $user, string $token) + * @method static \Illuminate\Auth\Passwords\TokenRepositoryInterface getRepository() + * @method static \Illuminate\Support\Timebox getTimebox() + * @see \Illuminate\Auth\Passwords\PasswordBrokerManager + * @see \Illuminate\Auth\Passwords\PasswordBroker + */ + class Password { + /** + * Attempt to get the broker from the local cache. + * + * @param string|null $name + * @return \Illuminate\Contracts\Auth\PasswordBroker + * @static + */ + public static function broker($name = null) + { + /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */ + return $instance->broker($name); + } + + /** + * Get the default password broker name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Set the default password broker name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */ + $instance->setDefaultDriver($name); + } + + } + /** + * @method static \Illuminate\Process\PendingProcess command(array|string $command) + * @method static \Illuminate\Process\PendingProcess path(string $path) + * @method static \Illuminate\Process\PendingProcess timeout(\Carbon\CarbonInterval|int $timeout) + * @method static \Illuminate\Process\PendingProcess idleTimeout(\Carbon\CarbonInterval|int $timeout) + * @method static \Illuminate\Process\PendingProcess forever() + * @method static \Illuminate\Process\PendingProcess env(array $environment) + * @method static \Illuminate\Process\PendingProcess input(\Traversable|resource|string|int|float|bool|null $input) + * @method static \Illuminate\Process\PendingProcess quietly() + * @method static \Illuminate\Process\PendingProcess tty(bool $tty = true) + * @method static \Illuminate\Process\PendingProcess options(array $options) + * @method static \Illuminate\Contracts\Process\ProcessResult run(array|string|null $command = null, callable|null $output = null) + * @method static \Illuminate\Process\InvokedProcess start(array|string|null $command = null, callable|null $output = null) + * @method static bool supportsTty() + * @method static \Illuminate\Process\PendingProcess withFakeHandlers(array $fakeHandlers) + * @method static \Illuminate\Process\PendingProcess|mixed when(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null) + * @method static \Illuminate\Process\PendingProcess|mixed unless(\Closure|mixed|null $value = null, callable|null $callback = null, callable|null $default = null) + * @see \Illuminate\Process\PendingProcess + * @see \Illuminate\Process\Factory + */ + class Process { + /** + * Create a new fake process response for testing purposes. + * + * @param array|string $output + * @param array|string $errorOutput + * @param int $exitCode + * @return \Illuminate\Process\FakeProcessResult + * @static + */ + public static function result($output = '', $errorOutput = '', $exitCode = 0) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->result($output, $errorOutput, $exitCode); + } + + /** + * Begin describing a fake process lifecycle. + * + * @return \Illuminate\Process\FakeProcessDescription + * @static + */ + public static function describe() + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->describe(); + } + + /** + * Begin describing a fake process sequence. + * + * @param array $processes + * @return \Illuminate\Process\FakeProcessSequence + * @static + */ + public static function sequence($processes = []) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->sequence($processes); + } + + /** + * Indicate that the process factory should fake processes. + * + * @param \Closure|array|null $callback + * @return \Illuminate\Process\Factory + * @static + */ + public static function fake($callback = null) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->fake($callback); + } + + /** + * Determine if the process factory has fake process handlers and is recording processes. + * + * @return bool + * @static + */ + public static function isRecording() + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->isRecording(); + } + + /** + * Record the given process if processes should be recorded. + * + * @param \Illuminate\Process\PendingProcess $process + * @param \Illuminate\Contracts\Process\ProcessResult $result + * @return \Illuminate\Process\Factory + * @static + */ + public static function recordIfRecording($process, $result) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->recordIfRecording($process, $result); + } + + /** + * Record the given process. + * + * @param \Illuminate\Process\PendingProcess $process + * @param \Illuminate\Contracts\Process\ProcessResult $result + * @return \Illuminate\Process\Factory + * @static + */ + public static function record($process, $result) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->record($process, $result); + } + + /** + * Indicate that an exception should be thrown if any process is not faked. + * + * @param bool $prevent + * @return \Illuminate\Process\Factory + * @static + */ + public static function preventStrayProcesses($prevent = true) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->preventStrayProcesses($prevent); + } + + /** + * Determine if stray processes are being prevented. + * + * @return bool + * @static + */ + public static function preventingStrayProcesses() + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->preventingStrayProcesses(); + } + + /** + * Assert that a process was recorded matching a given truth test. + * + * @param \Closure|string $callback + * @return \Illuminate\Process\Factory + * @static + */ + public static function assertRan($callback) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->assertRan($callback); + } + + /** + * Assert that a process was recorded a given number of times matching a given truth test. + * + * @param \Closure|string $callback + * @param int $times + * @return \Illuminate\Process\Factory + * @static + */ + public static function assertRanTimes($callback, $times = 1) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->assertRanTimes($callback, $times); + } + + /** + * Assert that a process was not recorded matching a given truth test. + * + * @param \Closure|string $callback + * @return \Illuminate\Process\Factory + * @static + */ + public static function assertNotRan($callback) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->assertNotRan($callback); + } + + /** + * Assert that a process was not recorded matching a given truth test. + * + * @param \Closure|string $callback + * @return \Illuminate\Process\Factory + * @static + */ + public static function assertDidntRun($callback) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->assertDidntRun($callback); + } + + /** + * Assert that no processes were recorded. + * + * @return \Illuminate\Process\Factory + * @static + */ + public static function assertNothingRan() + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->assertNothingRan(); + } + + /** + * Start defining a pool of processes. + * + * @param callable $callback + * @return \Illuminate\Process\Pool + * @static + */ + public static function pool($callback) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->pool($callback); + } + + /** + * Start defining a series of piped processes. + * + * @param callable|array $callback + * @return \Illuminate\Contracts\Process\ProcessResult + * @static + */ + public static function pipe($callback, $output = null) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->pipe($callback, $output); + } + + /** + * Run a pool of processes and wait for them to finish executing. + * + * @param callable $callback + * @param callable|null $output + * @return \Illuminate\Process\ProcessPoolResults + * @static + */ + public static function concurrently($callback, $output = null) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->concurrently($callback, $output); + } + + /** + * Create a new pending process associated with this factory. + * + * @return \Illuminate\Process\PendingProcess + * @static + */ + public static function newPendingProcess() + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->newPendingProcess(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Process\Factory::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Process\Factory::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Process\Factory::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Process\Factory::flushMacros(); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Process\Factory $instance */ + return $instance->macroCall($method, $parameters); + } + + } + /** + * @see \Illuminate\Queue\QueueManager + * @see \Illuminate\Queue\Queue + * @see \Illuminate\Support\Testing\Fakes\QueueFake + */ + class Queue { + /** + * Register an event listener for the before job event. + * + * @param mixed $callback + * @return void + * @static + */ + public static function before($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->before($callback); + } + + /** + * Register an event listener for the after job event. + * + * @param mixed $callback + * @return void + * @static + */ + public static function after($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->after($callback); + } + + /** + * Register an event listener for the exception occurred job event. + * + * @param mixed $callback + * @return void + * @static + */ + public static function exceptionOccurred($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->exceptionOccurred($callback); + } + + /** + * Register an event listener for the daemon queue loop. + * + * @param mixed $callback + * @return void + * @static + */ + public static function looping($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->looping($callback); + } + + /** + * Register an event listener for the failed job event. + * + * @param mixed $callback + * @return void + * @static + */ + public static function failing($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->failing($callback); + } + + /** + * Register an event listener for the daemon queue starting. + * + * @param mixed $callback + * @return void + * @static + */ + public static function starting($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->starting($callback); + } + + /** + * Register an event listener for the daemon queue stopping. + * + * @param mixed $callback + * @return void + * @static + */ + public static function stopping($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->stopping($callback); + } + + /** + * Set the queue route for the given class. + * + * @param array|class-string $class + * @param string|null $queue + * @param string|null $connection + * @return void + * @static + */ + public static function route($class, $queue = null, $connection = null) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->route($class, $queue, $connection); + } + + /** + * Determine if the driver is connected. + * + * @param string|null $name + * @return bool + * @static + */ + public static function connected($name = null) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->connected($name); + } + + /** + * Resolve a queue connection instance. + * + * @param string|null $name + * @return \Illuminate\Contracts\Queue\Queue + * @static + */ + public static function connection($name = null) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->connection($name); + } + + /** + * Pause a queue by its connection and name. + * + * @param string $connection + * @param string $queue + * @return void + * @static + */ + public static function pause($connection, $queue) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->pause($connection, $queue); + } + + /** + * Pause a queue by its connection and name for a given amount of time. + * + * @param string $connection + * @param string $queue + * @param \DateTimeInterface|\DateInterval|int $ttl + * @return void + * @static + */ + public static function pauseFor($connection, $queue, $ttl) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->pauseFor($connection, $queue, $ttl); + } + + /** + * Resume a paused queue by its connection and name. + * + * @param string $connection + * @param string $queue + * @return void + * @static + */ + public static function resume($connection, $queue) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->resume($connection, $queue); + } + + /** + * Determine if a queue is paused. + * + * @param string $connection + * @param string $queue + * @return bool + * @static + */ + public static function isPaused($connection, $queue) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->isPaused($connection, $queue); + } + + /** + * Indicate that queue workers should not poll for restart or pause signals. + * + * This prevents the workers from hitting the application cache to determine if they need to pause or restart. + * + * @return void + * @static + */ + public static function withoutInterruptionPolling() + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->withoutInterruptionPolling(); + } + + /** + * Add a queue connection resolver. + * + * @param string $driver + * @param \Closure $resolver + * @return void + * @static + */ + public static function extend($driver, $resolver) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->extend($driver, $resolver); + } + + /** + * Add a queue connection resolver. + * + * @param string $driver + * @param \Closure $resolver + * @return void + * @static + */ + public static function addConnector($driver, $resolver) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->addConnector($driver, $resolver); + } + + /** + * Get the name of the default queue connection. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Set the name of the default queue connection. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->setDefaultDriver($name); + } + + /** + * Get the full name for the given connection. + * + * @param string|null $connection + * @return string + * @static + */ + public static function getName($connection = null) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->getName($connection); + } + + /** + * Get the application instance used by the manager. + * + * @return \Illuminate\Contracts\Foundation\Application + * @static + */ + public static function getApplication() + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->getApplication(); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Queue\QueueManager + * @static + */ + public static function setApplication($app) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->setApplication($app); + } + + /** + * Resolve the default connection name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveConnectionFromQueueRoute($queueable) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->resolveConnectionFromQueueRoute($queueable); + } + + /** + * Resolve the default queue name for a given queueable instance. + * + * @param object $queueable + * @return string|null + * @static + */ + public static function resolveQueueFromQueueRoute($queueable) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->resolveQueueFromQueueRoute($queueable); + } + + /** + * Specify the jobs that should be queued instead of faked. + * + * @param array|string $jobsToBeQueued + * @return \Illuminate\Support\Testing\Fakes\QueueFake + * @static + */ + public static function except($jobsToBeQueued) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->except($jobsToBeQueued); + } + + /** + * Assert if a job was pushed based on a truth-test callback. + * + * @param string|\Closure $job + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertPushed($job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushed($job, $callback); + } + + /** + * Assert if a job was pushed a number of times. + * + * @param string $job + * @param int $times + * @return void + * @static + */ + public static function assertPushedTimes($job, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushedTimes($job, $times); + } + + /** + * Assert if a job was pushed based on a truth-test callback. + * + * @param string $queue + * @param string|\Closure $job + * @param callable|null $callback + * @return void + * @static + */ + public static function assertPushedOn($queue, $job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushedOn($queue, $job, $callback); + } + + /** + * Assert if a job was pushed with chained jobs based on a truth-test callback. + * + * @param string $job + * @param array $expectedChain + * @param callable|null $callback + * @return void + * @static + */ + public static function assertPushedWithChain($job, $expectedChain = [], $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushedWithChain($job, $expectedChain, $callback); + } + + /** + * Assert if a job was pushed with an empty chain based on a truth-test callback. + * + * @param string $job + * @param callable|null $callback + * @return void + * @static + */ + public static function assertPushedWithoutChain($job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushedWithoutChain($job, $callback); + } + + /** + * Assert if a closure was pushed based on a truth-test callback. + * + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertClosurePushed($callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertClosurePushed($callback); + } + + /** + * Assert that a closure was not pushed based on a truth-test callback. + * + * @param callable|null $callback + * @return void + * @static + */ + public static function assertClosureNotPushed($callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertClosureNotPushed($callback); + } + + /** + * Determine if a job was pushed based on a truth-test callback. + * + * @param string|\Closure $job + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotPushed($job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertNotPushed($job, $callback); + } + + /** + * Assert the total count of jobs that were pushed. + * + * @param int $expectedCount + * @return void + * @static + */ + public static function assertCount($expectedCount) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertCount($expectedCount); + } + + /** + * Assert that no jobs were pushed. + * + * @return void + * @static + */ + public static function assertNothingPushed() + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertNothingPushed(); + } + + /** + * Get all of the jobs matching a truth-test callback. + * + * @param string $job + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function pushed($job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushed($job, $callback); + } + + /** + * Get all of the raw pushes matching a truth-test callback. + * + * @param null|\Closure(string, ?string, array): bool $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function pushedRaw($callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushedRaw($callback); + } + + /** + * Get all of the jobs by listener class, passing an optional truth-test callback. + * + * @param class-string $listenerClass + * @param (\Closure(mixed, \Illuminate\Events\CallQueuedListener, string|null, mixed): bool)|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function listenersPushed($listenerClass, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->listenersPushed($listenerClass, $callback); + } + + /** + * Determine if there are any stored jobs for a given class. + * + * @param string $job + * @return bool + * @static + */ + public static function hasPushed($job) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->hasPushed($job); + } + + /** + * Get the size of the queue. + * + * @param string|null $queue + * @return int + * @static + */ + public static function size($queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->size($queue); + } + + /** + * Get the number of pending jobs. + * + * @param string|null $queue + * @return int + * @static + */ + public static function pendingSize($queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pendingSize($queue); + } + + /** + * Get the number of delayed jobs. + * + * @param string|null $queue + * @return int + * @static + */ + public static function delayedSize($queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->delayedSize($queue); + } + + /** + * Get the number of reserved jobs. + * + * @param string|null $queue + * @return int + * @static + */ + public static function reservedSize($queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->reservedSize($queue); + } + + /** + * Get the creation timestamp of the oldest pending job, excluding delayed jobs. + * + * @param string|null $queue + * @return int|null + * @static + */ + public static function creationTimeOfOldestPendingJob($queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->creationTimeOfOldestPendingJob($queue); + } + + /** + * Push a new job onto the queue. + * + * @param string|object $job + * @param mixed $data + * @param string|null $queue + * @return mixed + * @static + */ + public static function push($job, $data = '', $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->push($job, $data, $queue); + } + + /** + * Determine if a job should be faked or actually dispatched. + * + * @param object $job + * @return bool + * @static + */ + public static function shouldFakeJob($job) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->shouldFakeJob($job); + } + + /** + * Push a raw payload onto the queue. + * + * @param string $payload + * @param string|null $queue + * @param array $options + * @return mixed + * @static + */ + public static function pushRaw($payload, $queue = null, $options = []) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushRaw($payload, $queue, $options); + } + + /** + * Push a new job onto the queue after (n) seconds. + * + * @param \DateTimeInterface|\DateInterval|int $delay + * @param string|object $job + * @param mixed $data + * @param string|null $queue + * @return mixed + * @static + */ + public static function later($delay, $job, $data = '', $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->later($delay, $job, $data, $queue); + } + + /** + * Push a new job onto the queue. + * + * @param string $queue + * @param string|object $job + * @param mixed $data + * @return mixed + * @static + */ + public static function pushOn($queue, $job, $data = '') + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushOn($queue, $job, $data); + } + + /** + * Push a new job onto a specific queue after (n) seconds. + * + * @param string $queue + * @param \DateTimeInterface|\DateInterval|int $delay + * @param string|object $job + * @param mixed $data + * @return mixed + * @static + */ + public static function laterOn($queue, $delay, $job, $data = '') + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->laterOn($queue, $delay, $job, $data); + } + + /** + * Pop the next job off of the queue. + * + * @param string|null $queue + * @return \Illuminate\Contracts\Queue\Job|null + * @static + */ + public static function pop($queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pop($queue); + } + + /** + * Push an array of jobs onto the queue. + * + * @param array $jobs + * @param mixed $data + * @param string|null $queue + * @return mixed + * @static + */ + public static function bulk($jobs, $data = '', $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->bulk($jobs, $data, $queue); + } + + /** + * Get the jobs that have been pushed. + * + * @return array + * @static + */ + public static function pushedJobs() + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushedJobs(); + } + + /** + * Get the payloads that were pushed raw. + * + * @return list + * @static + */ + public static function rawPushes() + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->rawPushes(); + } + + /** + * Specify if jobs should be serialized and restored when being "pushed" to the queue. + * + * @param bool $serializeAndRestore + * @return \Illuminate\Support\Testing\Fakes\QueueFake + * @static + */ + public static function serializeAndRestore($serializeAndRestore = true) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->serializeAndRestore($serializeAndRestore); + } + + /** + * Release the locks for all unique jobs that were pushed. + * + * @return void + * @static + */ + public static function releaseUniqueJobLocks() + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->releaseUniqueJobLocks(); + } + + /** + * Get the connection name for the queue. + * + * @return string + * @static + */ + public static function getConnectionName() + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->getConnectionName(); + } + + /** + * Set the connection name for the queue. + * + * @param string $name + * @return \Illuminate\Support\Testing\Fakes\QueueFake + * @static + */ + public static function setConnectionName($name) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->setConnectionName($name); + } + + /** + * Release a reserved job back onto the queue after (n) seconds. + * + * @param string $queue + * @param \Illuminate\Queue\Jobs\DatabaseJobRecord $job + * @param int $delay + * @return mixed + * @static + */ + public static function release($queue, $job, $delay) + { + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->release($queue, $job, $delay); + } + + /** + * Delete a reserved job from the queue. + * + * @param string $queue + * @param string $id + * @return void + * @throws \Throwable + * @static + */ + public static function deleteReserved($queue, $id) + { + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + $instance->deleteReserved($queue, $id); + } + + /** + * Delete a reserved job from the reserved queue and release it. + * + * @param string $queue + * @param \Illuminate\Queue\Jobs\DatabaseJob $job + * @param int $delay + * @return void + * @static + */ + public static function deleteAndRelease($queue, $job, $delay) + { + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + $instance->deleteAndRelease($queue, $job, $delay); + } + + /** + * Delete all of the jobs from the queue. + * + * @param string $queue + * @return int + * @static + */ + public static function clear($queue) + { + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->clear($queue); + } + + /** + * Get the queue or return the default. + * + * @param string|null $queue + * @return string + * @static + */ + public static function getQueue($queue) + { + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->getQueue($queue); + } + + /** + * Get the underlying database instance. + * + * @return \Illuminate\Database\Connection + * @static + */ + public static function getDatabase() + { + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->getDatabase(); + } + + /** + * Get the maximum number of attempts for an object-based queue handler. + * + * @param mixed $job + * @return mixed + * @static + */ + public static function getJobTries($job) + { + //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->getJobTries($job); + } + + /** + * Get the backoff for an object-based queue handler. + * + * @param mixed $job + * @return mixed + * @static + */ + public static function getJobBackoff($job) + { + //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->getJobBackoff($job); + } + + /** + * Get the expiration timestamp for an object-based queue handler. + * + * @param mixed $job + * @return mixed + * @static + */ + public static function getJobExpiration($job) + { + //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->getJobExpiration($job); + } + + /** + * Register a callback to be executed when creating job payloads. + * + * @param callable|null $callback + * @return void + * @static + */ + public static function createPayloadUsing($callback) + { + //Method inherited from \Illuminate\Queue\Queue + \Illuminate\Queue\DatabaseQueue::createPayloadUsing($callback); + } + + /** + * Get the queue configuration array. + * + * @return array + * @static + */ + public static function getConfig() + { + //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->getConfig(); + } + + /** + * Set the queue configuration array. + * + * @return \Illuminate\Queue\DatabaseQueue + * @static + */ + public static function setConfig($config) + { + //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->setConfig($config); + } + + /** + * Get the container instance being used by the connection. + * + * @return \Illuminate\Container\Container + * @static + */ + public static function getContainer() + { + //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + return $instance->getContainer(); + } + + /** + * Set the IoC container instance. + * + * @return void + * @static + */ + public static function setContainer($container) + { + //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\DatabaseQueue $instance */ + $instance->setContainer($container); + } + + } + /** + * @see \Illuminate\Cache\RateLimiter + */ + class RateLimiter { + /** + * Register a named rate limiter configuration. + * + * @param \UnitEnum|string $name + * @param \Closure $callback + * @return \Illuminate\Cache\RateLimiter + * @static + */ + public static function for($name, $callback) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->for($name, $callback); + } + + /** + * Get the given named rate limiter. + * + * @param \UnitEnum|string $name + * @return \Closure|null + * @static + */ + public static function limiter($name) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->limiter($name); + } + + /** + * Attempts to execute a callback if it's not limited. + * + * @param string $key + * @param int $maxAttempts + * @param \Closure $callback + * @param \DateTimeInterface|\DateInterval|int $decaySeconds + * @return mixed + * @static + */ + public static function attempt($key, $maxAttempts, $callback, $decaySeconds = 60) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->attempt($key, $maxAttempts, $callback, $decaySeconds); + } + + /** + * Determine if the given key has been "accessed" too many times. + * + * @param string $key + * @param int $maxAttempts + * @return bool + * @static + */ + public static function tooManyAttempts($key, $maxAttempts) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->tooManyAttempts($key, $maxAttempts); + } + + /** + * Increment (by 1) the counter for a given key for a given decay time. + * + * @param string $key + * @param \DateTimeInterface|\DateInterval|int $decaySeconds + * @return int + * @static + */ + public static function hit($key, $decaySeconds = 60) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->hit($key, $decaySeconds); + } + + /** + * Increment the counter for a given key for a given decay time by a given amount. + * + * @param string $key + * @param \DateTimeInterface|\DateInterval|int $decaySeconds + * @param int $amount + * @return int + * @static + */ + public static function increment($key, $decaySeconds = 60, $amount = 1) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->increment($key, $decaySeconds, $amount); + } + + /** + * Decrement the counter for a given key for a given decay time by a given amount. + * + * @param string $key + * @param \DateTimeInterface|\DateInterval|int $decaySeconds + * @param int $amount + * @return int + * @static + */ + public static function decrement($key, $decaySeconds = 60, $amount = 1) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->decrement($key, $decaySeconds, $amount); + } + + /** + * Get the number of attempts for the given key. + * + * @param string $key + * @return mixed + * @static + */ + public static function attempts($key) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->attempts($key); + } + + /** + * Reset the number of attempts for the given key. + * + * @param string $key + * @return bool + * @static + */ + public static function resetAttempts($key) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->resetAttempts($key); + } + + /** + * Get the number of retries left for the given key. + * + * @param string $key + * @param int $maxAttempts + * @return int + * @static + */ + public static function remaining($key, $maxAttempts) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->remaining($key, $maxAttempts); + } + + /** + * Get the number of retries left for the given key. + * + * @param string $key + * @param int $maxAttempts + * @return int + * @static + */ + public static function retriesLeft($key, $maxAttempts) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->retriesLeft($key, $maxAttempts); + } + + /** + * Clear the hits and lockout timer for the given key. + * + * @param string $key + * @return void + * @static + */ + public static function clear($key) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + $instance->clear($key); + } + + /** + * Get the number of seconds until the "key" is accessible again. + * + * @param string $key + * @return int + * @static + */ + public static function availableIn($key) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->availableIn($key); + } + + /** + * Clean the rate limiter key from unicode characters. + * + * @param string $key + * @return string + * @static + */ + public static function cleanRateLimiterKey($key) + { + /** @var \Illuminate\Cache\RateLimiter $instance */ + return $instance->cleanRateLimiterKey($key); + } + + } + /** + * @see \Illuminate\Routing\Redirector + */ + class Redirect { + /** + * Create a new redirect response to the previous location. + * + * @param int $status + * @param array $headers + * @param mixed $fallback + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function back($status = 302, $headers = [], $fallback = false) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->back($status, $headers, $fallback); + } + + /** + * Create a new redirect response to the current URI. + * + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function refresh($status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->refresh($status, $headers); + } + + /** + * Create a new redirect response, while putting the current URL in the session. + * + * @param string $path + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function guest($path, $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->guest($path, $status, $headers, $secure); + } + + /** + * Create a new redirect response to the previously intended location. + * + * @param mixed $default + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function intended($default = '/', $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->intended($default, $status, $headers, $secure); + } + + /** + * Create a new redirect response to the given path. + * + * @param string $path + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function to($path, $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->to($path, $status, $headers, $secure); + } + + /** + * Create a new redirect response to an external URL (no validation). + * + * @param string $path + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function away($path, $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->away($path, $status, $headers); + } + + /** + * Create a new redirect response to the given HTTPS path. + * + * @param string $path + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function secure($path, $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->secure($path, $status, $headers); + } + + /** + * Create a new redirect response to a named route. + * + * @param \BackedEnum|string $route + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function route($route, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->route($route, $parameters, $status, $headers); + } + + /** + * Create a new redirect response to a signed named route. + * + * @param \BackedEnum|string $route + * @param mixed $parameters + * @param \DateTimeInterface|\DateInterval|int|null $expiration + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function signedRoute($route, $parameters = [], $expiration = null, $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->signedRoute($route, $parameters, $expiration, $status, $headers); + } + + /** + * Create a new redirect response to a signed named route. + * + * @param \BackedEnum|string $route + * @param \DateTimeInterface|\DateInterval|int|null $expiration + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function temporarySignedRoute($route, $expiration, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->temporarySignedRoute($route, $expiration, $parameters, $status, $headers); + } + + /** + * Create a new redirect response to a controller action. + * + * @param string|array $action + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function action($action, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->action($action, $parameters, $status, $headers); + } + + /** + * Get the URL generator instance. + * + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function getUrlGenerator() + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->getUrlGenerator(); + } + + /** + * Set the active session store. + * + * @param \Illuminate\Session\Store $session + * @return void + * @static + */ + public static function setSession($session) + { + /** @var \Illuminate\Routing\Redirector $instance */ + $instance->setSession($session); + } + + /** + * Get the "intended" URL from the session. + * + * @return string|null + * @static + */ + public static function getIntendedUrl() + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->getIntendedUrl(); + } + + /** + * Set the "intended" URL in the session. + * + * @param string $url + * @return \Illuminate\Routing\Redirector + * @static + */ + public static function setIntendedUrl($url) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->setIntendedUrl($url); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Routing\Redirector::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Routing\Redirector::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Routing\Redirector::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Routing\Redirector::flushMacros(); + } + + } + /** + * @method static \BackedEnum|(\BackedEnum|null enum(string $key, string $enumClass, \BackedEnum|null $default = null) + * @see \Illuminate\Http\Request + */ + class Request { + /** + * Create a new Illuminate HTTP request from server variables. + * + * @return static + * @static + */ + public static function capture() + { + return \Illuminate\Http\Request::capture(); + } + + /** + * Return the Request instance. + * + * @return \Illuminate\Http\Request + * @static + */ + public static function instance() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->instance(); + } + + /** + * Get the request method. + * + * @return string + * @static + */ + public static function method() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->method(); + } + + /** + * Get a URI instance for the request. + * + * @return \Illuminate\Support\Uri + * @static + */ + public static function uri() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->uri(); + } + + /** + * Get the root URL for the application. + * + * @return string + * @static + */ + public static function root() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->root(); + } + + /** + * Get the URL (no query string) for the request. + * + * @return string + * @static + */ + public static function url() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->url(); + } + + /** + * Get the full URL for the request. + * + * @return string + * @static + */ + public static function fullUrl() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fullUrl(); + } + + /** + * Get the full URL for the request with the added query string parameters. + * + * @param array $query + * @return string + * @static + */ + public static function fullUrlWithQuery($query) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fullUrlWithQuery($query); + } + + /** + * Get the full URL for the request without the given query string parameters. + * + * @param array|string $keys + * @return string + * @static + */ + public static function fullUrlWithoutQuery($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fullUrlWithoutQuery($keys); + } + + /** + * Get the current path info for the request. + * + * @return string + * @static + */ + public static function path() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->path(); + } + + /** + * Get the current decoded path info for the request. + * + * @return string + * @static + */ + public static function decodedPath() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->decodedPath(); + } + + /** + * Get a segment from the URI (1 based index). + * + * @param int $index + * @param string|null $default + * @return string|null + * @static + */ + public static function segment($index, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->segment($index, $default); + } + + /** + * Get all of the segments for the request path. + * + * @return array + * @static + */ + public static function segments() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->segments(); + } + + /** + * Determine if the current request URI matches a pattern. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function is(...$patterns) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->is(...$patterns); + } + + /** + * Determine if the route name matches a given pattern. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function routeIs(...$patterns) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->routeIs(...$patterns); + } + + /** + * Determine if the current request URL and query string match a pattern. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function fullUrlIs(...$patterns) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fullUrlIs(...$patterns); + } + + /** + * Get the host name. + * + * @return string + * @static + */ + public static function host() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->host(); + } + + /** + * Get the HTTP host being requested. + * + * @return string + * @static + */ + public static function httpHost() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->httpHost(); + } + + /** + * Get the scheme and HTTP host. + * + * @return string + * @static + */ + public static function schemeAndHttpHost() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->schemeAndHttpHost(); + } + + /** + * Determine if the request is the result of an AJAX call. + * + * @return bool + * @static + */ + public static function ajax() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->ajax(); + } + + /** + * Determine if the request is the result of a PJAX call. + * + * @return bool + * @static + */ + public static function pjax() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->pjax(); + } + + /** + * Determine if the request is the result of a prefetch call. + * + * @return bool + * @static + */ + public static function prefetch() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->prefetch(); + } + + /** + * Determine if the request is over HTTPS. + * + * @return bool + * @static + */ + public static function secure() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->secure(); + } + + /** + * Get the client IP address. + * + * @return string|null + * @static + */ + public static function ip() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->ip(); + } + + /** + * Get the client IP addresses. + * + * @return array + * @static + */ + public static function ips() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->ips(); + } + + /** + * Get the client user agent. + * + * @return string|null + * @static + */ + public static function userAgent() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->userAgent(); + } + + /** + * Gets a list of content types acceptable by the client browser in preferable order. + * + * @return string[] + * @static + */ + public static function getAcceptableContentTypes() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->getAcceptableContentTypes(); + } + + /** + * Merge new input into the current request's input array. + * + * @param array $input + * @return \Illuminate\Http\Request + * @static + */ + public static function merge($input) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->merge($input); + } + + /** + * Merge new input into the request's input, but only when that key is missing from the request. + * + * @param array $input + * @return \Illuminate\Http\Request + * @static + */ + public static function mergeIfMissing($input) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->mergeIfMissing($input); + } + + /** + * Replace the input values for the current request. + * + * @param array $input + * @return \Illuminate\Http\Request + * @static + */ + public static function replace($input) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->replace($input); + } + + /** + * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel. + * + * Instead, you may use the "input" method. + * + * @param string $key + * @param mixed $default + * @return mixed + * @deprecated use ->input() instead + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->get($key, $default); + } + + /** + * Get the JSON payload for the request. + * + * @param string|null $key + * @param mixed $default + * @return ($key is null ? \Symfony\Component\HttpFoundation\InputBag : mixed) + * @static + */ + public static function json($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->json($key, $default); + } + + /** + * Create a new request instance from the given Laravel request. + * + * @param \Illuminate\Http\Request $from + * @param \Illuminate\Http\Request|null $to + * @return static + * @static + */ + public static function createFrom($from, $to = null) + { + return \Illuminate\Http\Request::createFrom($from, $to); + } + + /** + * Create an Illuminate request from a Symfony instance. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @return static + * @static + */ + public static function createFromBase($request) + { + return \Illuminate\Http\Request::createFromBase($request); + } + + /** + * Clones a request and overrides some of its parameters. + * + * @return static + * @param array|null $query The GET parameters + * @param array|null $request The POST parameters + * @param array|null $attributes The request attributes (parameters parsed from the PATH_INFO, ...) + * @param array|null $cookies The COOKIE parameters + * @param array|null $files The FILES parameters + * @param array|null $server The SERVER parameters + * @static + */ + public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->duplicate($query, $request, $attributes, $cookies, $files, $server); + } + + /** + * Whether the request contains a Session object. + * + * This method does not give any information about the state of the session object, + * like whether the session is started or not. It is just a way to check if this Request + * is associated with a Session instance. + * + * @param bool $skipIfUninitialized When true, ignores factories injected by `setSessionFactory` + * @static + */ + public static function hasSession($skipIfUninitialized = false) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasSession($skipIfUninitialized); + } + + /** + * Gets the Session. + * + * @throws \Symfony\Component\HttpFoundation\Exception\SessionNotFoundException + * @throws SessionNotFoundException When session is not set properly + * @static + */ + public static function getSession() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->getSession(); + } + + /** + * Get the session associated with the request. + * + * @return \Illuminate\Contracts\Session\Session + * @throws \RuntimeException + * @static + */ + public static function session() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->session(); + } + + /** + * Set the session instance on the request. + * + * @param \Illuminate\Contracts\Session\Session $session + * @return void + * @static + */ + public static function setLaravelSession($session) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->setLaravelSession($session); + } + + /** + * Set the locale for the request instance. + * + * @param string $locale + * @return void + * @static + */ + public static function setRequestLocale($locale) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->setRequestLocale($locale); + } + + /** + * Set the default locale for the request instance. + * + * @param string $locale + * @return void + * @static + */ + public static function setDefaultRequestLocale($locale) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->setDefaultRequestLocale($locale); + } + + /** + * Get the user making the request. + * + * @param string|null $guard + * @return mixed + * @static + */ + public static function user($guard = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->user($guard); + } + + /** + * Get the route handling the request. + * + * @param string|null $param + * @param mixed $default + * @return ($param is null ? \Illuminate\Routing\Route : object|string|null) + * @static + */ + public static function route($param = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->route($param, $default); + } + + /** + * Get a unique fingerprint for the request / route / IP address. + * + * @return string + * @throws \RuntimeException + * @static + */ + public static function fingerprint() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fingerprint(); + } + + /** + * Set the JSON payload for the request. + * + * @param \Symfony\Component\HttpFoundation\InputBag $json + * @return \Illuminate\Http\Request + * @static + */ + public static function setJson($json) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->setJson($json); + } + + /** + * Get the user resolver callback. + * + * @return \Closure + * @static + */ + public static function getUserResolver() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUserResolver(); + } + + /** + * Set the user resolver callback. + * + * @param \Closure $callback + * @return \Illuminate\Http\Request + * @static + */ + public static function setUserResolver($callback) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->setUserResolver($callback); + } + + /** + * Get the route resolver callback. + * + * @return \Closure + * @static + */ + public static function getRouteResolver() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRouteResolver(); + } + + /** + * Set the route resolver callback. + * + * @param \Closure $callback + * @return \Illuminate\Http\Request + * @static + */ + public static function setRouteResolver($callback) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->setRouteResolver($callback); + } + + /** + * Get all of the input and files for the request. + * + * @return array + * @static + */ + public static function toArray() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->toArray(); + } + + /** + * Determine if the given offset exists. + * + * @param string $offset + * @return bool + * @static + */ + public static function offsetExists($offset) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->offsetExists($offset); + } + + /** + * Get the value at the given offset. + * + * @param string $offset + * @return mixed + * @static + */ + public static function offsetGet($offset) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->offsetGet($offset); + } + + /** + * Set the value at the given offset. + * + * @param string $offset + * @param mixed $value + * @return void + * @static + */ + public static function offsetSet($offset, $value) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->offsetSet($offset, $value); + } + + /** + * Remove the value at the given offset. + * + * @param string $offset + * @return void + * @static + */ + public static function offsetUnset($offset) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->offsetUnset($offset); + } + + /** + * Filter the given array of rules into an array of rules that are included in precognitive headers. + * + * @param array $rules + * @return array + * @static + */ + public static function filterPrecognitiveRules($rules) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->filterPrecognitiveRules($rules); + } + + /** + * Determine if the request is attempting to be precognitive. + * + * @return bool + * @static + */ + public static function isAttemptingPrecognition() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->isAttemptingPrecognition(); + } + + /** + * Determine if the request is precognitive. + * + * @return bool + * @static + */ + public static function isPrecognitive() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->isPrecognitive(); + } + + /** + * Determine if the request is sending JSON. + * + * @return bool + * @static + */ + public static function isJson() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->isJson(); + } + + /** + * Determine if the current request probably expects a JSON response. + * + * @return bool + * @static + */ + public static function expectsJson() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->expectsJson(); + } + + /** + * Determine if the current request is asking for JSON. + * + * @return bool + * @static + */ + public static function wantsJson() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->wantsJson(); + } + + /** + * Determine if the current request is asking for Markdown. + * + * @return bool + * @static + */ + public static function wantsMarkdown() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->wantsMarkdown(); + } + + /** + * Determines whether the current requests accepts a given content type. + * + * @param string|array $contentTypes + * @return bool + * @static + */ + public static function accepts($contentTypes) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->accepts($contentTypes); + } + + /** + * Return the most suitable content type from the given array based on content negotiation. + * + * @param string|array $contentTypes + * @return string|null + * @static + */ + public static function prefers($contentTypes) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->prefers($contentTypes); + } + + /** + * Determine if the current request accepts any content type. + * + * @return bool + * @static + */ + public static function acceptsAnyContentType() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->acceptsAnyContentType(); + } + + /** + * Determines whether a request accepts JSON. + * + * @return bool + * @static + */ + public static function acceptsJson() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->acceptsJson(); + } + + /** + * Determines whether a request accepts Markdown. + * + * @return bool + * @static + */ + public static function acceptsMarkdown() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->acceptsMarkdown(); + } + + /** + * Determines whether a request accepts HTML. + * + * @return bool + * @static + */ + public static function acceptsHtml() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->acceptsHtml(); + } + + /** + * Determine if the given content types match. + * + * @param string $actual + * @param string $type + * @return bool + * @static + */ + public static function matchesType($actual, $type) + { + return \Illuminate\Http\Request::matchesType($actual, $type); + } + + /** + * Get the data format expected in the response. + * + * @param string $default + * @return string + * @static + */ + public static function format($default = 'html') + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->format($default); + } + + /** + * Retrieve an old input item. + * + * @param string|null $key + * @param \Illuminate\Database\Eloquent\Model|string|array|null $default + * @return string|array|null + * @static + */ + public static function old($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->old($key, $default); + } + + /** + * Flash the input for the current request to the session. + * + * @return void + * @static + */ + public static function flash() + { + /** @var \Illuminate\Http\Request $instance */ + $instance->flash(); + } + + /** + * Flash only some of the input to the session. + * + * @param mixed $keys + * @return void + * @static + */ + public static function flashOnly($keys) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->flashOnly($keys); + } + + /** + * Flash only some of the input to the session. + * + * @param mixed $keys + * @return void + * @static + */ + public static function flashExcept($keys) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->flashExcept($keys); + } + + /** + * Flush all of the old input from the session. + * + * @return void + * @static + */ + public static function flush() + { + /** @var \Illuminate\Http\Request $instance */ + $instance->flush(); + } + + /** + * Retrieve a server variable from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function server($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->server($key, $default); + } + + /** + * Determine if a header is set on the request. + * + * @param string $key + * @return bool + * @static + */ + public static function hasHeader($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasHeader($key); + } + + /** + * Retrieve a header from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function header($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->header($key, $default); + } + + /** + * Get the bearer token from the request headers. + * + * @return string|null + * @static + */ + public static function bearerToken() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->bearerToken(); + } + + /** + * Get the keys for all of the input and files. + * + * @return array + * @static + */ + public static function keys() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->keys(); + } + + /** + * Get all of the input and files for the request. + * + * @param mixed $keys + * @return array + * @static + */ + public static function all($keys = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->all($keys); + } + + /** + * Retrieve an input item from the request. + * + * @param string|null $key + * @param mixed $default + * @return mixed + * @static + */ + public static function input($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->input($key, $default); + } + + /** + * Retrieve input from the request as a Fluent object instance. + * + * @param array|string|null $key + * @param array $default + * @return \Illuminate\Support\Fluent + * @static + */ + public static function fluent($key = null, $default = []) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fluent($key, $default); + } + + /** + * Retrieve a query string item from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function query($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->query($key, $default); + } + + /** + * Retrieve a request payload item from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function post($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->post($key, $default); + } + + /** + * Determine if a cookie is set on the request. + * + * @param string $key + * @return bool + * @static + */ + public static function hasCookie($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasCookie($key); + } + + /** + * Retrieve a cookie from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function cookie($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->cookie($key, $default); + } + + /** + * Get an array of all of the files on the request. + * + * @return array + * @static + */ + public static function allFiles() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->allFiles(); + } + + /** + * Determine if the uploaded data contains a file. + * + * @param string $key + * @return bool + * @static + */ + public static function hasFile($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasFile($key); + } + + /** + * Retrieve a file from the request. + * + * @param string|null $key + * @param mixed $default + * @return ($key is null ? array : \Illuminate\Http\UploadedFile|\Illuminate\Http\UploadedFile[]|null) + * @static + */ + public static function file($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->file($key, $default); + } + + /** + * Dump the items. + * + * @param mixed $keys + * @return \Illuminate\Http\Request + * @static + */ + public static function dump($keys = []) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->dump($keys); + } + + /** + * Dump the given arguments and terminate execution. + * + * @param mixed $args + * @return never + * @static + */ + public static function dd(...$args) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->dd(...$args); + } + + /** + * Determine if the data contains a given key. + * + * @param string|array $key + * @return bool + * @static + */ + public static function exists($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->exists($key); + } + + /** + * Determine if the data contains a given key. + * + * @param string|array $key + * @return bool + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->has($key); + } + + /** + * Determine if the instance contains any of the given keys. + * + * @param string|array $keys + * @return bool + * @static + */ + public static function hasAny($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasAny($keys); + } + + /** + * Apply the callback if the instance contains the given key. + * + * @param string $key + * @param callable $callback + * @param callable|null $default + * @return $this|mixed + * @static + */ + public static function whenHas($key, $callback, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->whenHas($key, $callback, $default); + } + + /** + * Determine if the instance contains a non-empty value for the given key. + * + * @param string|array $key + * @return bool + * @static + */ + public static function filled($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->filled($key); + } + + /** + * Determine if the instance contains an empty value for the given key. + * + * @param string|array $key + * @return bool + * @static + */ + public static function isNotFilled($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->isNotFilled($key); + } + + /** + * Determine if the instance contains a non-empty value for any of the given keys. + * + * @param string|array $keys + * @return bool + * @static + */ + public static function anyFilled($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->anyFilled($keys); + } + + /** + * Apply the callback if the instance contains a non-empty value for the given key. + * + * @param string $key + * @param callable $callback + * @param callable|null $default + * @return $this|mixed + * @static + */ + public static function whenFilled($key, $callback, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->whenFilled($key, $callback, $default); + } + + /** + * Determine if the instance is missing a given key. + * + * @param string|array $key + * @return bool + * @static + */ + public static function missing($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->missing($key); + } + + /** + * Apply the callback if the instance is missing the given key. + * + * @param string $key + * @param callable $callback + * @param callable|null $default + * @return $this|mixed + * @static + */ + public static function whenMissing($key, $callback, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->whenMissing($key, $callback, $default); + } + + /** + * Retrieve data from the instance as a Stringable instance. + * + * @param string $key + * @param mixed $default + * @return \Illuminate\Support\Stringable + * @static + */ + public static function str($key, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->str($key, $default); + } + + /** + * Retrieve data from the instance as a Stringable instance. + * + * @param string $key + * @param mixed $default + * @return \Illuminate\Support\Stringable + * @static + */ + public static function string($key, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->string($key, $default); + } + + /** + * Retrieve data as a boolean value. + * + * Returns true when value is "1", "true", "on", and "yes". Otherwise, returns false. + * + * @param string|null $key + * @param bool $default + * @return bool + * @static + */ + public static function boolean($key = null, $default = false) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->boolean($key, $default); + } + + /** + * Retrieve data as an integer value. + * + * @param string $key + * @param int $default + * @return int + * @static + */ + public static function integer($key, $default = 0) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->integer($key, $default); + } + + /** + * Retrieve data as a float value. + * + * @param string $key + * @param float $default + * @return float + * @static + */ + public static function float($key, $default = 0.0) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->float($key, $default); + } + + /** + * Retrieve data clamped between min and max values. + * + * @param string $key + * @param int|float $min + * @param int|float $max + * @param int|float $default + * @return float|int + * @static + */ + public static function clamp($key, $min, $max, $default = 0) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->clamp($key, $min, $max, $default); + } + + /** + * Retrieve data from the instance as a Carbon instance. + * + * @param string $key + * @param string|null $format + * @param \UnitEnum|string|null $tz + * @return \Illuminate\Support\Carbon|null + * @throws \Carbon\Exceptions\InvalidFormatException + * @static + */ + public static function date($key, $format = null, $tz = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->date($key, $format, $tz); + } + + /** + * Retrieve data from the instance as a CarbonInterval instance. + * + * @param string $key + * @param \Carbon\Unit|string|null $unit + * @return \Carbon\CarbonInterval|null + * @static + */ + public static function interval($key, $unit = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->interval($key, $unit); + } + + /** + * Retrieve data from the instance as an enum. + * + * @template TEnum of \BackedEnum + * @template TDefault of TEnum|null + * @param string $key + * @param class-string $enumClass + * @param TDefault $default + * @return TEnum|TDefault + * @static + */ + public static function enum($key, $enumClass, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->enum($key, $enumClass, $default); + } + + /** + * Retrieve data from the instance as an array of enums. + * + * @template TEnum of \BackedEnum + * @param string $key + * @param class-string $enumClass + * @return TEnum[] + * @static + */ + public static function enums($key, $enumClass) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->enums($key, $enumClass); + } + + /** + * Retrieve data from the instance as an array. + * + * @param array|string|null $key + * @return array + * @static + */ + public static function array($key = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->array($key); + } + + /** + * Retrieve data from the instance as a collection. + * + * @param array|string|null $key + * @return \Illuminate\Support\Collection + * @static + */ + public static function collect($key = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->collect($key); + } + + /** + * Get a subset containing the provided keys with values from the instance data. + * + * @param mixed $keys + * @return array + * @static + */ + public static function only($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->only($keys); + } + + /** + * Get all of the data except for a specified array of items. + * + * @param mixed $keys + * @return array + * @static + */ + public static function except($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->except($keys); + } + + /** + * Apply the callback if the given "value" is (or resolves to) truthy. + * + * @template TWhenParameter + * @template TWhenReturnType + * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default + * @return $this|TWhenReturnType + * @static + */ + public static function when($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->when($value, $callback, $default); + } + + /** + * Apply the callback if the given "value" is (or resolves to) falsy. + * + * @template TUnlessParameter + * @template TUnlessReturnType + * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default + * @return $this|TUnlessReturnType + * @static + */ + public static function unless($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->unless($value, $callback, $default); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Http\Request::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Http\Request::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Http\Request::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Http\Request::flushMacros(); + } + + /** + * Sets the parameters for this request. + * + * This method also re-initializes all properties. + * + * @param array $query The GET parameters + * @param array $request The POST parameters + * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) + * @param array $cookies The COOKIE parameters + * @param array $files The FILES parameters + * @param array $server The SERVER parameters + * @param string|resource|null $content The raw body data + * @static + */ + public static function initialize($query = [], $request = [], $attributes = [], $cookies = [], $files = [], $server = [], $content = null) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->initialize($query, $request, $attributes, $cookies, $files, $server, $content); + } + + /** + * Creates a new request with values from PHP's super globals. + * + * @static + */ + public static function createFromGlobals() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::createFromGlobals(); + } + + /** + * Creates a Request based on a given URI and configuration. + * + * The information contained in the URI always take precedence + * over the other information (server and parameters). + * + * @param string $uri The URI + * @param string $method The HTTP method + * @param array $parameters The query (GET) or request (POST) parameters + * @param array $cookies The request cookies ($_COOKIE) + * @param array $files The request files ($_FILES) + * @param array $server The server parameters ($_SERVER) + * @param string|resource|null $content The raw body data + * @throws BadRequestException When the URI is invalid + * @static + */ + public static function create($uri, $method = 'GET', $parameters = [], $cookies = [], $files = [], $server = [], $content = null) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::create($uri, $method, $parameters, $cookies, $files, $server, $content); + } + + /** + * Sets a callable able to create a Request instance. + * + * This is mainly useful when you need to override the Request class + * to keep BC with an existing system. It should not be used for any + * other purpose. + * + * @static + */ + public static function setFactory($callable) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::setFactory($callable); + } + + /** + * Overrides the PHP global variables according to this request instance. + * + * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE. + * $_FILES is never overridden, see rfc1867 + * + * @static + */ + public static function overrideGlobals() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->overrideGlobals(); + } + + /** + * Sets a list of trusted proxies. + * + * You should only list the reverse proxies that you manage directly. + * + * @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR'] and 'PRIVATE_SUBNETS' by IpUtils::PRIVATE_SUBNETS + * @param int-mask-of $trustedHeaderSet A bit field to set which headers to trust from your proxies + * @static + */ + public static function setTrustedProxies($proxies, $trustedHeaderSet) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::setTrustedProxies($proxies, $trustedHeaderSet); + } + + /** + * Gets the list of trusted proxies. + * + * @return string[] + * @static + */ + public static function getTrustedProxies() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getTrustedProxies(); + } + + /** + * Gets the set of trusted headers from trusted proxies. + * + * @return int A bit field of Request::HEADER_* that defines which headers are trusted from your proxies + * @static + */ + public static function getTrustedHeaderSet() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getTrustedHeaderSet(); + } + + /** + * Sets a list of trusted host patterns. + * + * You should only list the hosts you manage using regexs. + * + * @param array $hostPatterns A list of trusted host patterns + * @static + */ + public static function setTrustedHosts($hostPatterns) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::setTrustedHosts($hostPatterns); + } + + /** + * Gets the list of trusted host patterns. + * + * @return string[] + * @static + */ + public static function getTrustedHosts() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getTrustedHosts(); + } + + /** + * Normalizes a query string. + * + * It builds a normalized query string, where keys/value pairs are alphabetized, + * have consistent escaping and unneeded delimiters are removed. + * + * @static + */ + public static function normalizeQueryString($qs) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::normalizeQueryString($qs); + } + + /** + * Enables support for the _method request parameter to determine the intended HTTP method. + * + * Be warned that enabling this feature might lead to CSRF issues in your code. + * Check that you are using CSRF tokens when required. + * If the HTTP method parameter override is enabled, an html-form with method "POST" can be altered + * and used to send a "PUT" or "DELETE" request via the _method request parameter. + * If these methods are not protected against CSRF, this presents a possible vulnerability. + * + * The HTTP method can only be overridden when the real HTTP method is POST. + * + * @static + */ + public static function enableHttpMethodParameterOverride() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::enableHttpMethodParameterOverride(); + } + + /** + * Checks whether support for the _method request parameter is enabled. + * + * @static + */ + public static function getHttpMethodParameterOverride() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getHttpMethodParameterOverride(); + } + + /** + * Sets the list of HTTP methods that can be overridden. + * + * Set to null to allow all methods to be overridden (default). Set to an + * empty array to disallow overrides entirely. Otherwise, provide the list + * of uppercased method names that are allowed. + * + * @param \Symfony\Component\HttpFoundation\uppercase-string[]|null $methods + * @static + */ + public static function setAllowedHttpMethodOverride($methods) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::setAllowedHttpMethodOverride($methods); + } + + /** + * Gets the list of HTTP methods that can be overridden. + * + * @return \Symfony\Component\HttpFoundation\uppercase-string[]|null + * @static + */ + public static function getAllowedHttpMethodOverride() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getAllowedHttpMethodOverride(); + } + + /** + * Whether the request contains a Session which was started in one of the + * previous requests. + * + * @static + */ + public static function hasPreviousSession() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasPreviousSession(); + } + + /** + * @static + */ + public static function setSession($session) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setSession($session); + } + + /** + * @internal + * @param callable(): SessionInterface $factory + * @static + */ + public static function setSessionFactory($factory) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setSessionFactory($factory); + } + + /** + * Returns the client IP addresses. + * + * In the returned array the most trusted IP address is first, and the + * least trusted one last. The "real" client IP address is the last one, + * but this is also the least trusted one. Trusted proxies are stripped. + * + * Use this method carefully; you should use getClientIp() instead. + * + * @see getClientIp() + * @static + */ + public static function getClientIps() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getClientIps(); + } + + /** + * Returns the client IP address. + * + * This method can read the client IP address from the "X-Forwarded-For" header + * when trusted proxies were set via "setTrustedProxies()". The "X-Forwarded-For" + * header value is a comma+space separated list of IP addresses, the left-most + * being the original client, and each successive proxy that passed the request + * adding the IP address where it received the request from. + * + * If your reverse proxy uses a different header name than "X-Forwarded-For", + * ("Client-Ip" for instance), configure it via the $trustedHeaderSet + * argument of the Request::setTrustedProxies() method instead. + * + * @see getClientIps() + * @see https://wikipedia.org/wiki/X-Forwarded-For + * @static + */ + public static function getClientIp() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getClientIp(); + } + + /** + * Returns current script name. + * + * @static + */ + public static function getScriptName() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getScriptName(); + } + + /** + * Returns the path being requested relative to the executed script. + * + * The path info always starts with a /. + * + * Suppose this request is instantiated from /mysite on localhost: + * + * * http://localhost/mysite returns '/' + * * http://localhost/mysite/about returns '/about' + * * http://localhost/mysite/enco%20ded returns '/enco%20ded' + * * http://localhost/mysite/about?var=1 returns '/about' + * + * @return string The raw path (i.e. not urldecoded) + * @static + */ + public static function getPathInfo() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPathInfo(); + } + + /** + * Returns the root path from which this request is executed. + * + * Suppose that an index.php file instantiates this request object: + * + * * http://localhost/index.php returns an empty string + * * http://localhost/index.php/page returns an empty string + * * http://localhost/web/index.php returns '/web' + * * http://localhost/we%20b/index.php returns '/we%20b' + * + * @return string The raw path (i.e. not urldecoded) + * @static + */ + public static function getBasePath() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getBasePath(); + } + + /** + * Returns the root URL from which this request is executed. + * + * The base URL never ends with a /. + * + * This is similar to getBasePath(), except that it also includes the + * script filename (e.g. index.php) if one exists. + * + * @return string The raw URL (i.e. not urldecoded) + * @static + */ + public static function getBaseUrl() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getBaseUrl(); + } + + /** + * Gets the request's scheme. + * + * @static + */ + public static function getScheme() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getScheme(); + } + + /** + * Returns the port on which the request is made. + * + * This method can read the client port from the "X-Forwarded-Port" header + * when trusted proxies were set via "setTrustedProxies()". + * + * The "X-Forwarded-Port" header must contain the client port. + * + * @return int|string|null Can be a string if fetched from the server bag + * @static + */ + public static function getPort() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPort(); + } + + /** + * Returns the user. + * + * @static + */ + public static function getUser() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUser(); + } + + /** + * Returns the password. + * + * @static + */ + public static function getPassword() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPassword(); + } + + /** + * Gets the user info. + * + * @return string|null A user name if any and, optionally, scheme-specific information about how to gain authorization to access the server + * @static + */ + public static function getUserInfo() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUserInfo(); + } + + /** + * Returns the HTTP host being requested. + * + * The port name will be appended to the host if it's non-standard. + * + * @static + */ + public static function getHttpHost() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getHttpHost(); + } + + /** + * Returns the requested URI (path and query string). + * + * @return string The raw URI (i.e. not URI decoded) + * @static + */ + public static function getRequestUri() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRequestUri(); + } + + /** + * Gets the scheme and HTTP host. + * + * If the URL was called with basic authentication, the user + * and the password are not added to the generated string. + * + * @static + */ + public static function getSchemeAndHttpHost() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getSchemeAndHttpHost(); + } + + /** + * Generates a normalized URI (URL) for the Request. + * + * @see getQueryString() + * @static + */ + public static function getUri() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUri(); + } + + /** + * Generates a normalized URI for the given path. + * + * @param string $path A path to use instead of the current one + * @static + */ + public static function getUriForPath($path) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUriForPath($path); + } + + /** + * Returns the path as relative reference from the current Request path. + * + * Only the URIs path component (no schema, host etc.) is relevant and must be given. + * Both paths must be absolute and not contain relative parts. + * Relative URLs from one resource to another are useful when generating self-contained downloadable document archives. + * Furthermore, they can be used to reduce the link size in documents. + * + * Example target paths, given a base path of "/a/b/c/d": + * - "/a/b/c/d" -> "" + * - "/a/b/c/" -> "./" + * - "/a/b/" -> "../" + * - "/a/b/c/other" -> "other" + * - "/a/x/y" -> "../../x/y" + * + * @static + */ + public static function getRelativeUriForPath($path) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRelativeUriForPath($path); + } + + /** + * Generates the normalized query string for the Request. + * + * It builds a normalized query string, where keys/value pairs are alphabetized + * and have consistent escaping. + * + * @static + */ + public static function getQueryString() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getQueryString(); + } + + /** + * Checks whether the request is secure or not. + * + * This method can read the client protocol from the "X-Forwarded-Proto" header + * when trusted proxies were set via "setTrustedProxies()". + * + * The "X-Forwarded-Proto" header must contain the protocol: "https" or "http". + * + * @static + */ + public static function isSecure() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isSecure(); + } + + /** + * Returns the host name. + * + * This method can read the client host name from the "X-Forwarded-Host" header + * when trusted proxies were set via "setTrustedProxies()". + * + * The "X-Forwarded-Host" header must contain the client host name. + * + * @throws SuspiciousOperationException when the host name is invalid or not trusted + * @static + */ + public static function getHost() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getHost(); + } + + /** + * Sets the request method. + * + * @static + */ + public static function setMethod($method) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setMethod($method); + } + + /** + * Gets the request "intended" method. + * + * If the X-HTTP-Method-Override header is set, and if the method is a POST, + * then it is used to determine the "real" intended HTTP method. + * + * The _method request parameter can also be used to determine the HTTP method, + * but only if enableHttpMethodParameterOverride() has been called. + * + * The method is always an uppercased string. + * + * @see getRealMethod() + * @static + */ + public static function getMethod() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getMethod(); + } + + /** + * Gets the "real" request method. + * + * @see getMethod() + * @static + */ + public static function getRealMethod() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRealMethod(); + } + + /** + * Gets the mime type associated with the format. + * + * @static + */ + public static function getMimeType($format) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getMimeType($format); + } + + /** + * Gets the mime types associated with the format. + * + * @return string[] + * @static + */ + public static function getMimeTypes($format) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getMimeTypes($format); + } + + /** + * Gets the format associated with the mime type. + * + * Resolution order: + * 1) Exact match on the full MIME type (e.g. "application/json"). + * 2) Match on the canonical MIME type (i.e. before the first ";" parameter). + * 3) If the type is "application/*+suffix", use the structured syntax suffix + * mapping (e.g. "application/foo+json" → "json"), when available. + * 4) If $subtypeFallback is true and no match was found: + * - return the MIME subtype (without "x-" prefix), provided it does not + * contain a "+" (e.g. "application/x-yaml" → "yaml", "text/csv" → "csv"). + * + * @param string|null $mimeType The mime type to check + * @param bool $subtypeFallback Whether to fall back to the subtype if no exact match is found + * @static + */ + public static function getFormat($mimeType, $subtypeFallback = false) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getFormat($mimeType, $subtypeFallback); + } + + /** + * Associates a format with mime types. + * + * @param string|string[] $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type) + * @static + */ + public static function setFormat($format, $mimeTypes) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setFormat($format, $mimeTypes); + } + + /** + * Gets the request format. + * + * Here is the process to determine the format: + * + * * format defined by the user (with setRequestFormat()) + * * _format request attribute + * * $default + * + * @see getPreferredFormat + * @static + */ + public static function getRequestFormat($default = 'html') + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRequestFormat($default); + } + + /** + * Sets the request format. + * + * @static + */ + public static function setRequestFormat($format) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setRequestFormat($format); + } + + /** + * Gets the usual name of the format associated with the request's media type (provided in the Content-Type header). + * + * @see Request::$formats + * @static + */ + public static function getContentTypeFormat() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getContentTypeFormat(); + } + + /** + * Sets the default locale. + * + * @static + */ + public static function setDefaultLocale($locale) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setDefaultLocale($locale); + } + + /** + * Get the default locale. + * + * @static + */ + public static function getDefaultLocale() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getDefaultLocale(); + } + + /** + * Sets the locale. + * + * @static + */ + public static function setLocale($locale) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setLocale($locale); + } + + /** + * Get the locale. + * + * @static + */ + public static function getLocale() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getLocale(); + } + + /** + * Checks if the request method is of specified type. + * + * @param string $method Uppercase request method (GET, POST etc) + * @static + */ + public static function isMethod($method) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isMethod($method); + } + + /** + * Checks whether or not the method is safe. + * + * @see https://tools.ietf.org/html/rfc7231#section-4.2.1 + * @static + */ + public static function isMethodSafe() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isMethodSafe(); + } + + /** + * Checks whether or not the method is idempotent. + * + * @static + */ + public static function isMethodIdempotent() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isMethodIdempotent(); + } + + /** + * Checks whether the method is cacheable or not. + * + * @see https://tools.ietf.org/html/rfc7231#section-4.2.3 + * @static + */ + public static function isMethodCacheable() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isMethodCacheable(); + } + + /** + * Returns the protocol version. + * + * If the application is behind a proxy, the protocol version used in the + * requests between the client and the proxy and between the proxy and the + * server might be different. This returns the former (from the "Via" header) + * if the proxy is trusted (see "setTrustedProxies()"), otherwise it returns + * the latter (from the "SERVER_PROTOCOL" server parameter). + * + * @static + */ + public static function getProtocolVersion() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getProtocolVersion(); + } + + /** + * Returns the request body content. + * + * @param bool $asResource If true, a resource will be returned + * @return string|resource + * @psalm-return ($asResource is true ? resource : string) + * @static + */ + public static function getContent($asResource = false) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getContent($asResource); + } + + /** + * Gets the decoded form or json request body. + * + * @throws JsonException When the body cannot be decoded to an array + * @static + */ + public static function getPayload() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPayload(); + } + + /** + * Gets the Etags. + * + * @static + */ + public static function getETags() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getETags(); + } + + /** + * @static + */ + public static function isNoCache() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isNoCache(); + } + + /** + * Gets the preferred format for the response by inspecting, in the following order: + * * the request format set using setRequestFormat; + * * the values of the Accept HTTP header. + * + * Note that if you use this method, you should send the "Vary: Accept" header + * in the response to prevent any issues with intermediary HTTP caches. + * + * @static + */ + public static function getPreferredFormat($default = 'html') + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPreferredFormat($default); + } + + /** + * Returns the preferred language. + * + * @param string[] $locales An array of ordered available locales + * @static + */ + public static function getPreferredLanguage($locales = null) + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPreferredLanguage($locales); + } + + /** + * Gets a list of languages acceptable by the client browser ordered in the user browser preferences. + * + * @return string[] + * @static + */ + public static function getLanguages() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getLanguages(); + } + + /** + * Gets a list of charsets acceptable by the client browser in preferable order. + * + * @return string[] + * @static + */ + public static function getCharsets() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getCharsets(); + } + + /** + * Gets a list of encodings acceptable by the client browser in preferable order. + * + * @return string[] + * @static + */ + public static function getEncodings() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getEncodings(); + } + + /** + * Returns true if the request is an XMLHttpRequest. + * + * It works if your JavaScript library sets an X-Requested-With HTTP header. + * It is known to work with common JavaScript frameworks: + * + * @see https://wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript + * @static + */ + public static function isXmlHttpRequest() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isXmlHttpRequest(); + } + + /** + * Checks whether the client browser prefers safe content or not according to RFC8674. + * + * @see https://tools.ietf.org/html/rfc8674 + * @static + */ + public static function preferSafeContent() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->preferSafeContent(); + } + + /** + * Indicates whether this request originated from a trusted proxy. + * + * This can be useful to determine whether or not to trust the + * contents of a proxy-specific header. + * + * @static + */ + public static function isFromTrustedProxy() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isFromTrustedProxy(); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param array $rules + * @param mixed $params + * @static + */ + public static function validate($rules, ...$params) + { + return \Illuminate\Http\Request::validate($rules, ...$params); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param string $errorBag + * @param array $rules + * @param mixed $params + * @static + */ + public static function validateWithBag($errorBag, $rules, ...$params) + { + return \Illuminate\Http\Request::validateWithBag($errorBag, $rules, ...$params); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $absolute + * @static + */ + public static function hasValidSignature($absolute = true) + { + return \Illuminate\Http\Request::hasValidSignature($absolute); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @static + */ + public static function hasValidRelativeSignature() + { + return \Illuminate\Http\Request::hasValidRelativeSignature(); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $ignoreQuery + * @param mixed $absolute + * @static + */ + public static function hasValidSignatureWhileIgnoring($ignoreQuery = [], $absolute = true) + { + return \Illuminate\Http\Request::hasValidSignatureWhileIgnoring($ignoreQuery, $absolute); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $ignoreQuery + * @static + */ + public static function hasValidRelativeSignatureWhileIgnoring($ignoreQuery = []) + { + return \Illuminate\Http\Request::hasValidRelativeSignatureWhileIgnoring($ignoreQuery); + } + + } + /** + * @see \Illuminate\Routing\ResponseFactory + */ + class Response { + /** + * Create a new response instance. + * + * @param mixed $content + * @param int $status + * @param array $headers + * @return \Illuminate\Http\Response + * @static + */ + public static function make($content = '', $status = 200, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->make($content, $status, $headers); + } + + /** + * Create a new "no content" response. + * + * @param int $status + * @param array $headers + * @return \Illuminate\Http\Response + * @static + */ + public static function noContent($status = 204, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->noContent($status, $headers); + } + + /** + * Create a new response for a given view. + * + * @param string|array $view + * @param array $data + * @param int $status + * @param array $headers + * @return \Illuminate\Http\Response + * @static + */ + public static function view($view, $data = [], $status = 200, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->view($view, $data, $status, $headers); + } + + /** + * Create a new JSON response instance. + * + * @param mixed $data + * @param int $status + * @param array $headers + * @param int $options + * @return \Illuminate\Http\JsonResponse + * @static + */ + public static function json($data = [], $status = 200, $headers = [], $options = 0) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->json($data, $status, $headers, $options); + } + + /** + * Create a new JSONP response instance. + * + * @param string $callback + * @param mixed $data + * @param int $status + * @param array $headers + * @param int $options + * @return \Illuminate\Http\JsonResponse + * @static + */ + public static function jsonp($callback, $data = [], $status = 200, $headers = [], $options = 0) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->jsonp($callback, $data, $status, $headers, $options); + } + + /** + * Create a new event stream response. + * + * @param \Closure $callback + * @param array $headers + * @param \Illuminate\Http\StreamedEvent|string|null $endStreamWith + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function eventStream($callback, $headers = [], $endStreamWith = '') + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->eventStream($callback, $headers, $endStreamWith); + } + + /** + * Create a new streamed response instance. + * + * @param callable|null $callback + * @param int $status + * @param array $headers + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function stream($callback, $status = 200, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->stream($callback, $status, $headers); + } + + /** + * Create a new streamed JSON response instance. + * + * @param array $data + * @param int $status + * @param array $headers + * @param int $encodingOptions + * @return \Symfony\Component\HttpFoundation\StreamedJsonResponse + * @static + */ + public static function streamJson($data, $status = 200, $headers = [], $encodingOptions = 15) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->streamJson($data, $status, $headers, $encodingOptions); + } + + /** + * Create a new streamed response instance as a file download. + * + * @param callable $callback + * @param string|null $name + * @param array $headers + * @param string|null $disposition + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @throws \Illuminate\Routing\Exceptions\StreamedResponseException + * @static + */ + public static function streamDownload($callback, $name = null, $headers = [], $disposition = 'attachment') + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->streamDownload($callback, $name, $headers, $disposition); + } + + /** + * Create a new file download response. + * + * @param \SplFileInfo|string $file + * @param string|null $name + * @param array $headers + * @param string|null $disposition + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + * @static + */ + public static function download($file, $name = null, $headers = [], $disposition = 'attachment') + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->download($file, $name, $headers, $disposition); + } + + /** + * Return the raw contents of a binary file. + * + * @param \SplFileInfo|string $file + * @param array $headers + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + * @static + */ + public static function file($file, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->file($file, $headers); + } + + /** + * Create a new redirect response to the given path. + * + * @param string $path + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectTo($path, $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectTo($path, $status, $headers, $secure); + } + + /** + * Create a new redirect response to a named route. + * + * @param \BackedEnum|string $route + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectToRoute($route, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectToRoute($route, $parameters, $status, $headers); + } + + /** + * Create a new redirect response to a controller action. + * + * @param array|string $action + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectToAction($action, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectToAction($action, $parameters, $status, $headers); + } + + /** + * Create a new redirect response, while putting the current URL in the session. + * + * @param string $path + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectGuest($path, $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectGuest($path, $status, $headers, $secure); + } + + /** + * Create a new redirect response to the previously intended location. + * + * @param string $default + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectToIntended($default, $status, $headers, $secure); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Routing\ResponseFactory::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Routing\ResponseFactory::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Routing\ResponseFactory::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Routing\ResponseFactory::flushMacros(); + } + + } + /** + * @method static \Illuminate\Routing\RouteRegistrar attribute(string $key, mixed $value) + * @method static \Illuminate\Routing\RouteRegistrar whereAlpha(array|string $parameters) + * @method static \Illuminate\Routing\RouteRegistrar whereAlphaNumeric(array|string $parameters) + * @method static \Illuminate\Routing\RouteRegistrar whereNumber(array|string $parameters) + * @method static \Illuminate\Routing\RouteRegistrar whereUlid(array|string $parameters) + * @method static \Illuminate\Routing\RouteRegistrar whereUuid(array|string $parameters) + * @method static \Illuminate\Routing\RouteRegistrar whereIn(array|string $parameters, array $values) + * @method static \Illuminate\Routing\RouteRegistrar as(string $value) + * @method static \Illuminate\Routing\RouteRegistrar can(\UnitEnum|string $ability, array|string $models = []) + * @method static \Illuminate\Routing\RouteRegistrar controller(string $controller) + * @method static \Illuminate\Routing\RouteRegistrar domain(\BackedEnum|string $value) + * @method static \Illuminate\Routing\RouteRegistrar middleware(array|string|null $middleware) + * @method static \Illuminate\Routing\RouteRegistrar missing(\Closure $missing) + * @method static \Illuminate\Routing\RouteRegistrar name(\BackedEnum|string $value) + * @method static \Illuminate\Routing\RouteRegistrar namespace(string|null $value) + * @method static \Illuminate\Routing\RouteRegistrar prefix(string $prefix) + * @method static \Illuminate\Routing\RouteRegistrar scopeBindings() + * @method static \Illuminate\Routing\RouteRegistrar where(array $where) + * @method static \Illuminate\Routing\RouteRegistrar withoutMiddleware(array|string $middleware) + * @method static \Illuminate\Routing\RouteRegistrar withoutScopedBindings() + * @see \Illuminate\Routing\Router + */ + class Route { + /** + * Register a new GET route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function get($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->get($uri, $action); + } + + /** + * Register a new POST route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function post($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->post($uri, $action); + } + + /** + * Register a new PUT route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function put($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->put($uri, $action); + } + + /** + * Register a new PATCH route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function patch($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->patch($uri, $action); + } + + /** + * Register a new DELETE route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function delete($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->delete($uri, $action); + } + + /** + * Register a new OPTIONS route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function options($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->options($uri, $action); + } + + /** + * Register a new route responding to all verbs. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function any($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->any($uri, $action); + } + + /** + * Register a new fallback route with the router. + * + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function fallback($action) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->fallback($action); + } + + /** + * Create a redirect from one URI to another. + * + * @param string $uri + * @param string $destination + * @param int $status + * @return \Illuminate\Routing\Route + * @static + */ + public static function redirect($uri, $destination, $status = 302) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->redirect($uri, $destination, $status); + } + + /** + * Create a permanent redirect from one URI to another. + * + * @param string $uri + * @param string $destination + * @return \Illuminate\Routing\Route + * @static + */ + public static function permanentRedirect($uri, $destination) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->permanentRedirect($uri, $destination); + } + + /** + * Register a new route that returns a view. + * + * @param string $uri + * @param string $view + * @param array $data + * @param int|array $status + * @param array $headers + * @return \Illuminate\Routing\Route + * @static + */ + public static function view($uri, $view, $data = [], $status = 200, $headers = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->view($uri, $view, $data, $status, $headers); + } + + /** + * Register a new route with the given verbs. + * + * @param array|string $methods + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function match($methods, $uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->match($methods, $uri, $action); + } + + /** + * Register an array of resource controllers. + * + * @param array $resources + * @param array $options + * @return void + * @static + */ + public static function resources($resources, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->resources($resources, $options); + } + + /** + * Register an array of resource controllers that can be soft deleted. + * + * @param array $resources + * @param array $options + * @return void + * @static + */ + public static function softDeletableResources($resources, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->softDeletableResources($resources, $options); + } + + /** + * Route a resource to a controller. + * + * @param string $name + * @param string $controller + * @param array $options + * @return \Illuminate\Routing\PendingResourceRegistration + * @static + */ + public static function resource($name, $controller, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->resource($name, $controller, $options); + } + + /** + * Register an array of API resource controllers. + * + * @param array $resources + * @param array $options + * @return void + * @static + */ + public static function apiResources($resources, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->apiResources($resources, $options); + } + + /** + * Route an API resource to a controller. + * + * @param string $name + * @param string $controller + * @param array $options + * @return \Illuminate\Routing\PendingResourceRegistration + * @static + */ + public static function apiResource($name, $controller, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->apiResource($name, $controller, $options); + } + + /** + * Register an array of singleton resource controllers. + * + * @param array $singletons + * @param array $options + * @return void + * @static + */ + public static function singletons($singletons, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->singletons($singletons, $options); + } + + /** + * Route a singleton resource to a controller. + * + * @param string $name + * @param string $controller + * @param array $options + * @return \Illuminate\Routing\PendingSingletonResourceRegistration + * @static + */ + public static function singleton($name, $controller, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->singleton($name, $controller, $options); + } + + /** + * Register an array of API singleton resource controllers. + * + * @param array $singletons + * @param array $options + * @return void + * @static + */ + public static function apiSingletons($singletons, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->apiSingletons($singletons, $options); + } + + /** + * Route an API singleton resource to a controller. + * + * @param string $name + * @param string $controller + * @param array $options + * @return \Illuminate\Routing\PendingSingletonResourceRegistration + * @static + */ + public static function apiSingleton($name, $controller, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->apiSingleton($name, $controller, $options); + } + + /** + * Create a route group with shared attributes. + * + * @param array $attributes + * @param \Closure|array|string $routes + * @return \Illuminate\Routing\Router + * @static + */ + public static function group($attributes, $routes) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->group($attributes, $routes); + } + + /** + * Merge the given array with the last group stack. + * + * @param array $new + * @param bool $prependExistingPrefix + * @return array + * @static + */ + public static function mergeWithLastGroup($new, $prependExistingPrefix = true) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->mergeWithLastGroup($new, $prependExistingPrefix); + } + + /** + * Get the prefix from the last group on the stack. + * + * @return string + * @static + */ + public static function getLastGroupPrefix() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getLastGroupPrefix(); + } + + /** + * Add a route to the underlying route collection. + * + * @param array|string $methods + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function addRoute($methods, $uri, $action) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->addRoute($methods, $uri, $action); + } + + /** + * Create a new Route object. + * + * @param array|string $methods + * @param string $uri + * @param mixed $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function newRoute($methods, $uri, $action) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->newRoute($methods, $uri, $action); + } + + /** + * Return the response returned by the given route. + * + * @param string $name + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function respondWithRoute($name) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->respondWithRoute($name); + } + + /** + * Dispatch the request to the application. + * + * @param \Illuminate\Http\Request $request + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function dispatch($request) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->dispatch($request); + } + + /** + * Dispatch the request to a route and return the response. + * + * @param \Illuminate\Http\Request $request + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function dispatchToRoute($request) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->dispatchToRoute($request); + } + + /** + * Gather the middleware for the given route with resolved class names. + * + * @param \Illuminate\Routing\Route $route + * @return array + * @static + */ + public static function gatherRouteMiddleware($route) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->gatherRouteMiddleware($route); + } + + /** + * Resolve a flat array of middleware classes from the provided array. + * + * @param array $middleware + * @param array $excluded + * @return array + * @static + */ + public static function resolveMiddleware($middleware, $excluded = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->resolveMiddleware($middleware, $excluded); + } + + /** + * Create a response instance from the given value. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @param mixed $response + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function prepareResponse($request, $response) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->prepareResponse($request, $response); + } + + /** + * Static version of prepareResponse. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @param mixed $response + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function toResponse($request, $response) + { + return \Illuminate\Routing\Router::toResponse($request, $response); + } + + /** + * Substitute the route bindings onto the route. + * + * @param \Illuminate\Routing\Route $route + * @return \Illuminate\Routing\Route + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException<\Illuminate\Database\Eloquent\Model> + * @throws \Illuminate\Routing\Exceptions\BackedEnumCaseNotFoundException + * @static + */ + public static function substituteBindings($route) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->substituteBindings($route); + } + + /** + * Substitute the implicit route bindings for the given route. + * + * @param \Illuminate\Routing\Route $route + * @return void + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException<\Illuminate\Database\Eloquent\Model> + * @throws \Illuminate\Routing\Exceptions\BackedEnumCaseNotFoundException + * @static + */ + public static function substituteImplicitBindings($route) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->substituteImplicitBindings($route); + } + + /** + * Register a callback to run after implicit bindings are substituted. + * + * @param callable $callback + * @return \Illuminate\Routing\Router + * @static + */ + public static function substituteImplicitBindingsUsing($callback) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->substituteImplicitBindingsUsing($callback); + } + + /** + * Register a route matched event listener. + * + * @param string|callable $callback + * @return void + * @static + */ + public static function matched($callback) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->matched($callback); + } + + /** + * Get all of the defined middleware short-hand names. + * + * @return array + * @static + */ + public static function getMiddleware() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getMiddleware(); + } + + /** + * Register a short-hand name for a middleware. + * + * @param string $name + * @param string $class + * @return \Illuminate\Routing\Router + * @static + */ + public static function aliasMiddleware($name, $class) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->aliasMiddleware($name, $class); + } + + /** + * Check if a middlewareGroup with the given name exists. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMiddlewareGroup($name) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->hasMiddlewareGroup($name); + } + + /** + * Get all of the defined middleware groups. + * + * @return array + * @static + */ + public static function getMiddlewareGroups() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getMiddlewareGroups(); + } + + /** + * Register a group of middleware. + * + * @param string $name + * @param array $middleware + * @return \Illuminate\Routing\Router + * @static + */ + public static function middlewareGroup($name, $middleware) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->middlewareGroup($name, $middleware); + } + + /** + * Add a middleware to the beginning of a middleware group. + * + * If the middleware is already in the group, it will not be added again. + * + * @param string $group + * @param string $middleware + * @return \Illuminate\Routing\Router + * @static + */ + public static function prependMiddlewareToGroup($group, $middleware) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->prependMiddlewareToGroup($group, $middleware); + } + + /** + * Add a middleware to the end of a middleware group. + * + * If the middleware is already in the group, it will not be added again. + * + * @param string $group + * @param string $middleware + * @return \Illuminate\Routing\Router + * @static + */ + public static function pushMiddlewareToGroup($group, $middleware) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->pushMiddlewareToGroup($group, $middleware); + } + + /** + * Remove the given middleware from the specified group. + * + * @param string $group + * @param string $middleware + * @return \Illuminate\Routing\Router + * @static + */ + public static function removeMiddlewareFromGroup($group, $middleware) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->removeMiddlewareFromGroup($group, $middleware); + } + + /** + * Flush the router's middleware groups. + * + * @return \Illuminate\Routing\Router + * @static + */ + public static function flushMiddlewareGroups() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->flushMiddlewareGroups(); + } + + /** + * Add a new route parameter binder. + * + * @param string $key + * @param string|callable $binder + * @return void + * @static + */ + public static function bind($key, $binder) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->bind($key, $binder); + } + + /** + * Register a model binder for a wildcard. + * + * @param string $key + * @param string $class + * @param \Closure|null $callback + * @return void + * @static + */ + public static function model($key, $class, $callback = null) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->model($key, $class, $callback); + } + + /** + * Get the binding callback for a given binding. + * + * @param string $key + * @return \Closure|null + * @static + */ + public static function getBindingCallback($key) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getBindingCallback($key); + } + + /** + * Get the global "where" patterns. + * + * @return array + * @static + */ + public static function getPatterns() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getPatterns(); + } + + /** + * Set a global where pattern on all routes. + * + * @param string $key + * @param string $pattern + * @return void + * @static + */ + public static function pattern($key, $pattern) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->pattern($key, $pattern); + } + + /** + * Set a group of global where patterns on all routes. + * + * @param array $patterns + * @return void + * @static + */ + public static function patterns($patterns) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->patterns($patterns); + } + + /** + * Determine if the router currently has a group stack. + * + * @return bool + * @static + */ + public static function hasGroupStack() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->hasGroupStack(); + } + + /** + * Get the current group stack for the router. + * + * @return array + * @static + */ + public static function getGroupStack() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getGroupStack(); + } + + /** + * Get a route parameter for the current route. + * + * @param string $key + * @param string|null $default + * @return mixed + * @static + */ + public static function input($key, $default = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->input($key, $default); + } + + /** + * Get the request currently being dispatched. + * + * @return \Illuminate\Http\Request + * @static + */ + public static function getCurrentRequest() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getCurrentRequest(); + } + + /** + * Get the currently dispatched route instance. + * + * @return \Illuminate\Routing\Route|null + * @static + */ + public static function getCurrentRoute() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getCurrentRoute(); + } + + /** + * Get the currently dispatched route instance. + * + * @return \Illuminate\Routing\Route|null + * @static + */ + public static function current() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->current(); + } + + /** + * Check if a route with the given name exists. + * + * @param string|array $name + * @return bool + * @static + */ + public static function has($name) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->has($name); + } + + /** + * Get the current route name. + * + * @return string|null + * @static + */ + public static function currentRouteName() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->currentRouteName(); + } + + /** + * Alias for the "currentRouteNamed" method. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function is(...$patterns) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->is(...$patterns); + } + + /** + * Determine if the current route matches a pattern. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function currentRouteNamed(...$patterns) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->currentRouteNamed(...$patterns); + } + + /** + * Get the current route action. + * + * @return string|null + * @static + */ + public static function currentRouteAction() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->currentRouteAction(); + } + + /** + * Alias for the "currentRouteUses" method. + * + * @param array|string $patterns + * @return bool + * @static + */ + public static function uses(...$patterns) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->uses(...$patterns); + } + + /** + * Determine if the current route action matches a given action. + * + * @param string $action + * @return bool + * @static + */ + public static function currentRouteUses($action) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->currentRouteUses($action); + } + + /** + * Set the unmapped global resource parameters to singular. + * + * @param bool $singular + * @return void + * @static + */ + public static function singularResourceParameters($singular = true) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->singularResourceParameters($singular); + } + + /** + * Set the global resource parameter mapping. + * + * @param array $parameters + * @return void + * @static + */ + public static function resourceParameters($parameters = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->resourceParameters($parameters); + } + + /** + * Get or set the verbs used in the resource URIs. + * + * @param array $verbs + * @return array|null + * @static + */ + public static function resourceVerbs($verbs = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->resourceVerbs($verbs); + } + + /** + * Get the underlying route collection. + * + * @return \Illuminate\Routing\RouteCollectionInterface + * @static + */ + public static function getRoutes() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getRoutes(); + } + + /** + * Set the route collection instance. + * + * @param \Illuminate\Routing\RouteCollection $routes + * @return void + * @static + */ + public static function setRoutes($routes) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->setRoutes($routes); + } + + /** + * Set the compiled route collection instance. + * + * @param array $routes + * @return void + * @static + */ + public static function setCompiledRoutes($routes) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->setCompiledRoutes($routes); + } + + /** + * Remove any duplicate middleware from the given array. + * + * @param array $middleware + * @return array + * @static + */ + public static function uniqueMiddleware($middleware) + { + return \Illuminate\Routing\Router::uniqueMiddleware($middleware); + } + + /** + * Set the container instance used by the router. + * + * @param \Illuminate\Container\Container $container + * @return \Illuminate\Routing\Router + * @static + */ + public static function setContainer($container) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->setContainer($container); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Routing\Router::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Routing\Router::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Routing\Router::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Routing\Router::flushMacros(); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->macroCall($method, $parameters); + } + + /** + * Call the given Closure with this instance then return the instance. + * + * @param (callable($this): mixed)|null $callback + * @return ($callback is null ? \Illuminate\Support\HigherOrderTapProxy : $this) + * @static + */ + public static function tap($callback = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->tap($callback); + } + + } + /** + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes withoutOverlapping(int $expiresAt = 1440) + * @method static void mergeAttributes(\Illuminate\Console\Scheduling\Event $event) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes user(string $user) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes environments(mixed $environments) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes evenInMaintenanceMode() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes evenWhenPaused() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes onOneServer() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes runInBackground() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes when(\Closure|bool $callback) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes skip(\Closure|bool $callback) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes name(string $description) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes description(string $description) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes cron(string $expression) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes between(string $startTime, string $endTime) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes unlessBetween(string $startTime, string $endTime) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everySecond() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyTwoSeconds() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyFiveSeconds() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyTenSeconds() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyFifteenSeconds() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyTwentySeconds() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyThirtySeconds() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyMinute() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyTwoMinutes() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyThreeMinutes() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyFourMinutes() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyFiveMinutes() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyTenMinutes() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyFifteenMinutes() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyThirtyMinutes() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes hourly() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes hourlyAt(array|string|int|int[] $offset) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyOddHour(array|string|int $offset = 0) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyTwoHours(array|string|int $offset = 0) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyThreeHours(array|string|int $offset = 0) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everyFourHours(array|string|int $offset = 0) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes everySixHours(array|string|int $offset = 0) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes daily() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes at(string $time) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes dailyAt(string $time) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes twiceDaily(int $first = 1, int $second = 13) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes twiceDailyAt(int $first = 1, int $second = 13, int $offset = 0) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes weekdays() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes weekends() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes mondays() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes tuesdays() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes wednesdays() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes thursdays() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes fridays() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes saturdays() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes sundays() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes weekly() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes weeklyOn(mixed $dayOfWeek, string $time = '0:0') + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes monthly() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes monthlyOn(int $dayOfMonth = 1, string $time = '0:0') + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes twiceMonthly(int $first = 1, int $second = 16, string $time = '0:0') + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes lastDayOfMonth(string $time = '0:0') + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes daysOfMonth(array|int ...$days) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes quarterly() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes quarterlyOn(int $dayOfQuarter = 1, string $time = '0:0') + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes yearly() + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes yearlyOn(int $month = 1, int|string $dayOfMonth = 1, string $time = '0:0') + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes days(mixed $days) + * @method static \Illuminate\Console\Scheduling\PendingEventAttributes timezone(\UnitEnum|\DateTimeZone|string $timezone) + * @see \Illuminate\Console\Scheduling\Schedule + */ + class Schedule { + /** + * Add a new callback event to the schedule. + * + * @param string|callable $callback + * @param array $parameters + * @return \Illuminate\Console\Scheduling\CallbackEvent + * @static + */ + public static function call($callback, $parameters = []) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->call($callback, $parameters); + } + + /** + * Add a new Artisan command event to the schedule. + * + * @param \Symfony\Component\Console\Command\Command|string $command + * @param array $parameters + * @return \Illuminate\Console\Scheduling\Event + * @static + */ + public static function command($command, $parameters = []) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->command($command, $parameters); + } + + /** + * Add a new job callback event to the schedule. + * + * @param object|string $job + * @param \UnitEnum|string|null $queue + * @param \UnitEnum|string|null $connection + * @return \Illuminate\Console\Scheduling\CallbackEvent + * @static + */ + public static function job($job, $queue = null, $connection = null) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->job($job, $queue, $connection); + } + + /** + * Add a new command event to the schedule. + * + * @param string $command + * @param array $parameters + * @return \Illuminate\Console\Scheduling\Event + * @static + */ + public static function exec($command, $parameters = []) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->exec($command, $parameters); + } + + /** + * Create new schedule group. + * + * @param \Closure $events + * @return void + * @throws \RuntimeException + * @static + */ + public static function group($events) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + $instance->group($events); + } + + /** + * Compile array input for a command. + * + * @param string|int $key + * @param array $value + * @return string + * @static + */ + public static function compileArrayInput($key, $value) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->compileArrayInput($key, $value); + } + + /** + * Determine if the server is allowed to run this event. + * + * @param \Illuminate\Console\Scheduling\Event $event + * @param \DateTimeInterface $time + * @return bool + * @static + */ + public static function serverShouldRun($event, $time) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->serverShouldRun($event, $time); + } + + /** + * Get all of the events on the schedule that are due. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Support\Collection + * @static + */ + public static function dueEvents($app) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->dueEvents($app); + } + + /** + * Get all of the events on the schedule. + * + * @return \Illuminate\Console\Scheduling\Event[] + * @static + */ + public static function events() + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->events(); + } + + /** + * Specify the cache store that should be used to store mutexes. + * + * @param \UnitEnum|string $store + * @return \Illuminate\Console\Scheduling\Schedule + * @static + */ + public static function useCache($store) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->useCache($store); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Console\Scheduling\Schedule::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Console\Scheduling\Schedule::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Console\Scheduling\Schedule::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Console\Scheduling\Schedule::flushMacros(); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Console\Scheduling\Schedule $instance */ + return $instance->macroCall($method, $parameters); + } + + } + /** + * @see \Illuminate\Database\Schema\Builder + */ + class Schema { + /** + * Drop all tables from the database. + * + * @return void + * @static + */ + public static function dropAllTables() + { + //Method inherited from \Illuminate\Database\Schema\MySqlBuilder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->dropAllTables(); + } + + /** + * Drop all views from the database. + * + * @return void + * @static + */ + public static function dropAllViews() + { + //Method inherited from \Illuminate\Database\Schema\MySqlBuilder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->dropAllViews(); + } + + /** + * Get the names of current schemas for the connection. + * + * @return string[]|null + * @static + */ + public static function getCurrentSchemaListing() + { + //Method inherited from \Illuminate\Database\Schema\MySqlBuilder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getCurrentSchemaListing(); + } + + /** + * Set the default string length for migrations. + * + * @param non-negative-int $length + * @return void + * @static + */ + public static function defaultStringLength($length) + { + //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MariaDbBuilder::defaultStringLength($length); + } + + /** + * Set the default time precision for migrations. + * + * @static + */ + public static function defaultTimePrecision($precision) + { + //Method inherited from \Illuminate\Database\Schema\Builder + return \Illuminate\Database\Schema\MariaDbBuilder::defaultTimePrecision($precision); + } + + /** + * Set the default morph key type for migrations. + * + * @param string $type + * @return void + * @throws \InvalidArgumentException + * @static + */ + public static function defaultMorphKeyType($type) + { + //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MariaDbBuilder::defaultMorphKeyType($type); + } + + /** + * Set the default morph key type for migrations to UUIDs. + * + * @return void + * @static + */ + public static function morphUsingUuids() + { + //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MariaDbBuilder::morphUsingUuids(); + } + + /** + * Set the default morph key type for migrations to ULIDs. + * + * @return void + * @static + */ + public static function morphUsingUlids() + { + //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MariaDbBuilder::morphUsingUlids(); + } + + /** + * Create a database in the schema. + * + * @param string $name + * @return bool + * @static + */ + public static function createDatabase($name) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->createDatabase($name); + } + + /** + * Drop a database from the schema if the database exists. + * + * @param string $name + * @return bool + * @static + */ + public static function dropDatabaseIfExists($name) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->dropDatabaseIfExists($name); + } + + /** + * Get the schemas that belong to the connection. + * + * @return \Illuminate\Database\Schema\list + * @static + */ + public static function getSchemas() + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getSchemas(); + } + + /** + * Determine if the given table exists. + * + * @param string $table + * @return bool + * @static + */ + public static function hasTable($table) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->hasTable($table); + } + + /** + * Determine if the given view exists. + * + * @param string $view + * @return bool + * @static + */ + public static function hasView($view) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->hasView($view); + } + + /** + * Get the tables that belong to the connection. + * + * @param string|string[]|null $schema + * @return \Illuminate\Database\Schema\list + * @static + */ + public static function getTables($schema = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getTables($schema); + } + + /** + * Get the names of the tables that belong to the connection. + * + * @param string|string[]|null $schema + * @param bool $schemaQualified + * @return list + * @static + */ + public static function getTableListing($schema = null, $schemaQualified = true) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getTableListing($schema, $schemaQualified); + } + + /** + * Get the views that belong to the connection. + * + * @param string|string[]|null $schema + * @return \Illuminate\Database\Schema\list + * @static + */ + public static function getViews($schema = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getViews($schema); + } + + /** + * Get the user-defined types that belong to the connection. + * + * @param string|string[]|null $schema + * @return \Illuminate\Database\Schema\list + * @static + */ + public static function getTypes($schema = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getTypes($schema); + } + + /** + * Determine if the given table has a given column. + * + * @param string $table + * @param string $column + * @return bool + * @static + */ + public static function hasColumn($table, $column) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->hasColumn($table, $column); + } + + /** + * Determine if the given table has given columns. + * + * @param string $table + * @param array $columns + * @return bool + * @static + */ + public static function hasColumns($table, $columns) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->hasColumns($table, $columns); + } + + /** + * Execute a table builder callback if the given table has a given column. + * + * @param string $table + * @param string $column + * @param \Closure $callback + * @return void + * @static + */ + public static function whenTableHasColumn($table, $column, $callback) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->whenTableHasColumn($table, $column, $callback); + } + + /** + * Execute a table builder callback if the given table doesn't have a given column. + * + * @param string $table + * @param string $column + * @param \Closure $callback + * @return void + * @static + */ + public static function whenTableDoesntHaveColumn($table, $column, $callback) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->whenTableDoesntHaveColumn($table, $column, $callback); + } + + /** + * Execute a table builder callback if the given table has a given index. + * + * @param string $table + * @param string|array $index + * @param \Closure $callback + * @param string|null $type + * @return void + * @static + */ + public static function whenTableHasIndex($table, $index, $callback, $type = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->whenTableHasIndex($table, $index, $callback, $type); + } + + /** + * Execute a table builder callback if the given table doesn't have a given index. + * + * @param string $table + * @param string|array $index + * @param \Closure $callback + * @param string|null $type + * @return void + * @static + */ + public static function whenTableDoesntHaveIndex($table, $index, $callback, $type = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->whenTableDoesntHaveIndex($table, $index, $callback, $type); + } + + /** + * Get the data type for the given column name. + * + * @param string $table + * @param string $column + * @param bool $fullDefinition + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function getColumnType($table, $column, $fullDefinition = false) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getColumnType($table, $column, $fullDefinition); + } + + /** + * Get the column listing for a given table. + * + * @param string $table + * @return list + * @static + */ + public static function getColumnListing($table) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getColumnListing($table); + } + + /** + * Get the columns for a given table. + * + * @param string $table + * @return \Illuminate\Database\Schema\list + * @static + */ + public static function getColumns($table) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getColumns($table); + } + + /** + * Get the indexes for a given table. + * + * @param string $table + * @return \Illuminate\Database\Schema\list, type: string, unique: bool, primary: bool}> + * @static + */ + public static function getIndexes($table) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getIndexes($table); + } + + /** + * Get the names of the indexes for a given table. + * + * @param string $table + * @return list + * @static + */ + public static function getIndexListing($table) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getIndexListing($table); + } + + /** + * Determine if the given table has a given index. + * + * @param string $table + * @param string|array $index + * @param string|null $type + * @return bool + * @static + */ + public static function hasIndex($table, $index, $type = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->hasIndex($table, $index, $type); + } + + /** + * Get the foreign keys for a given table. + * + * @param string $table + * @return array + * @static + */ + public static function getForeignKeys($table) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getForeignKeys($table); + } + + /** + * Modify a table on the schema. + * + * @param string $table + * @param \Closure $callback + * @return void + * @static + */ + public static function table($table, $callback) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->table($table, $callback); + } + + /** + * Create a new table on the schema. + * + * @param string $table + * @param \Closure $callback + * @return void + * @static + */ + public static function create($table, $callback) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->create($table, $callback); + } + + /** + * Drop a table from the schema. + * + * @param string $table + * @return void + * @static + */ + public static function drop($table) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->drop($table); + } + + /** + * Drop a table from the schema if it exists. + * + * @param string $table + * @return void + * @static + */ + public static function dropIfExists($table) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->dropIfExists($table); + } + + /** + * Drop columns from a table schema. + * + * @param string $table + * @param string|array $columns + * @return void + * @static + */ + public static function dropColumns($table, $columns) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->dropColumns($table, $columns); + } + + /** + * Drop all types from the database. + * + * @return void + * @throws \LogicException + * @static + */ + public static function dropAllTypes() + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->dropAllTypes(); + } + + /** + * Rename a table on the schema. + * + * @param string $from + * @param string $to + * @return void + * @static + */ + public static function rename($from, $to) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->rename($from, $to); + } + + /** + * Enable foreign key constraints. + * + * @return bool + * @static + */ + public static function enableForeignKeyConstraints() + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->enableForeignKeyConstraints(); + } + + /** + * Disable foreign key constraints. + * + * @return bool + * @static + */ + public static function disableForeignKeyConstraints() + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->disableForeignKeyConstraints(); + } + + /** + * Disable foreign key constraints during the execution of a callback. + * + * @template TReturn + * @param (\Closure(): TReturn) $callback + * @return TReturn + * @static + */ + public static function withoutForeignKeyConstraints($callback) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->withoutForeignKeyConstraints($callback); + } + + /** + * Create the vector extension on the schema if it does not exist. + * + * @param string|null $schema + * @return void + * @static + */ + public static function ensureVectorExtensionExists($schema = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->ensureVectorExtensionExists($schema); + } + + /** + * Create a new extension on the schema if it does not exist. + * + * @param string $name + * @param string|null $schema + * @return void + * @throws \RuntimeException + * @static + */ + public static function ensureExtensionExists($name, $schema = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->ensureExtensionExists($name, $schema); + } + + /** + * Get the default schema name for the connection. + * + * @return string|null + * @static + */ + public static function getCurrentSchemaName() + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getCurrentSchemaName(); + } + + /** + * Parse the given database object reference and extract the schema and table. + * + * @param string $reference + * @param string|bool|null $withDefaultSchema + * @return array{string|null, string} + * @throws \InvalidArgumentException + * @static + */ + public static function parseSchemaAndTable($reference, $withDefaultSchema = null) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->parseSchemaAndTable($reference, $withDefaultSchema); + } + + /** + * Get the database connection instance. + * + * @return \Illuminate\Database\Connection + * @static + */ + public static function getConnection() + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + return $instance->getConnection(); + } + + /** + * Set the Schema Blueprint resolver callback. + * + * @param \Closure(\Illuminate\Database\Connection, string, \Closure|null): \Illuminate\Database\Schema\Blueprint $resolver + * @return void + * @static + */ + public static function blueprintResolver($resolver) + { + //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MariaDbBuilder $instance */ + $instance->blueprintResolver($resolver); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MariaDbBuilder::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MariaDbBuilder::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + //Method inherited from \Illuminate\Database\Schema\Builder + return \Illuminate\Database\Schema\MariaDbBuilder::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MariaDbBuilder::flushMacros(); + } + + } + /** + * @see \Illuminate\Session\SessionManager + */ + class Session { + /** + * Determine if requests for the same session should wait for each to finish before executing. + * + * @return bool + * @static + */ + public static function shouldBlock() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->shouldBlock(); + } + + /** + * Get the name of the cache store / driver that should be used to acquire session locks. + * + * @return string|null + * @static + */ + public static function blockDriver() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->blockDriver(); + } + + /** + * Get the maximum number of seconds the session lock should be held for. + * + * @return int + * @static + */ + public static function defaultRouteBlockLockSeconds() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->defaultRouteBlockLockSeconds(); + } + + /** + * Get the maximum number of seconds to wait while attempting to acquire a route block session lock. + * + * @return int + * @static + */ + public static function defaultRouteBlockWaitSeconds() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->defaultRouteBlockWaitSeconds(); + } + + /** + * Get the session configuration. + * + * @return array + * @static + */ + public static function getSessionConfig() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->getSessionConfig(); + } + + /** + * Get the default session driver name. + * + * @return string|null + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Set the default session driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Session\SessionManager $instance */ + $instance->setDefaultDriver($name); + } + + /** + * Get a driver instance. + * + * @param string|null $driver + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function driver($driver = null) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->driver($driver); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Session\SessionManager + * @static + */ + public static function extend($driver, $callback) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Get all of the created "drivers". + * + * @return array + * @static + */ + public static function getDrivers() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->getDrivers(); + } + + /** + * Get the container instance used by the manager. + * + * @return \Illuminate\Contracts\Container\Container + * @static + */ + public static function getContainer() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->getContainer(); + } + + /** + * Set the container instance used by the manager. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return \Illuminate\Session\SessionManager + * @static + */ + public static function setContainer($container) + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->setContainer($container); + } + + /** + * Forget all of the resolved driver instances. + * + * @return \Illuminate\Session\SessionManager + * @static + */ + public static function forgetDrivers() + { + //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->forgetDrivers(); + } + + /** + * Start the session, reading the data from a handler. + * + * @return bool + * @static + */ + public static function start() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->start(); + } + + /** + * Save the session data to storage. + * + * @return void + * @static + */ + public static function save() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->save(); + } + + /** + * Age the flash data for the session. + * + * @return void + * @static + */ + public static function ageFlashData() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->ageFlashData(); + } + + /** + * Get all of the session data. + * + * @return array + * @static + */ + public static function all() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->all(); + } + + /** + * Get a subset of the session data. + * + * @param array $keys + * @return array + * @static + */ + public static function only($keys) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->only($keys); + } + + /** + * Get all the session data except for a specified array of items. + * + * @param array $keys + * @return array + * @static + */ + public static function except($keys) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->except($keys); + } + + /** + * Checks if a key exists. + * + * @param \UnitEnum|string|array $key + * @return bool + * @static + */ + public static function exists($key) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->exists($key); + } + + /** + * Determine if the given key is missing from the session data. + * + * @param \UnitEnum|string|array $key + * @return bool + * @static + */ + public static function missing($key) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->missing($key); + } + + /** + * Determine if a key is present and not null. + * + * @param \UnitEnum|string|array $key + * @return bool + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->has($key); + } + + /** + * Determine if any of the given keys are present and not null. + * + * @param \UnitEnum|string|array $key + * @return bool + * @static + */ + public static function hasAny($key) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->hasAny($key); + } + + /** + * Get an item from the session. + * + * @param \UnitEnum|string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->get($key, $default); + } + + /** + * Get the value of a given key and then forget it. + * + * @param \UnitEnum|string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function pull($key, $default = null) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->pull($key, $default); + } + + /** + * Determine if the session contains old input. + * + * @param string|null $key + * @return bool + * @static + */ + public static function hasOldInput($key = null) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->hasOldInput($key); + } + + /** + * Get the requested item from the flashed input array. + * + * @param string|null $key + * @param mixed $default + * @return mixed + * @static + */ + public static function getOldInput($key = null, $default = null) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->getOldInput($key, $default); + } + + /** + * Replace the given session attributes entirely. + * + * @param array $attributes + * @return void + * @static + */ + public static function replace($attributes) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->replace($attributes); + } + + /** + * Put a key / value pair or array of key / value pairs in the session. + * + * @param \UnitEnum|string|array $key + * @param mixed $value + * @return void + * @static + */ + public static function put($key, $value = null) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->put($key, $value); + } + + /** + * Get an item from the session, or store the default value. + * + * @param \UnitEnum|string $key + * @param \Closure $callback + * @return mixed + * @static + */ + public static function remember($key, $callback) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->remember($key, $callback); + } + + /** + * Push a value onto a session array. + * + * @param \UnitEnum|string $key + * @param mixed $value + * @return void + * @static + */ + public static function push($key, $value) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->push($key, $value); + } + + /** + * Increment the value of an item in the session. + * + * @param \UnitEnum|string $key + * @param int $amount + * @return mixed + * @static + */ + public static function increment($key, $amount = 1) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->increment($key, $amount); + } + + /** + * Decrement the value of an item in the session. + * + * @param \UnitEnum|string $key + * @param int $amount + * @return int + * @static + */ + public static function decrement($key, $amount = 1) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->decrement($key, $amount); + } + + /** + * Flash a key / value pair to the session. + * + * @param \UnitEnum|string $key + * @param mixed $value + * @return void + * @static + */ + public static function flash($key, $value = true) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->flash($key, $value); + } + + /** + * Flash a key / value pair to the session for immediate use. + * + * @param \UnitEnum|string $key + * @param mixed $value + * @return void + * @static + */ + public static function now($key, $value) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->now($key, $value); + } + + /** + * Reflash all of the session flash data. + * + * @return void + * @static + */ + public static function reflash() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->reflash(); + } + + /** + * Reflash a subset of the current flash data. + * + * @param mixed $keys + * @return void + * @static + */ + public static function keep($keys = null) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->keep($keys); + } + + /** + * Flash an input array to the session. + * + * @param array $value + * @return void + * @static + */ + public static function flashInput($value) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->flashInput($value); + } + + /** + * Get the session cache instance. + * + * @return \Illuminate\Contracts\Cache\Repository + * @static + */ + public static function cache() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->cache(); + } + + /** + * Remove an item from the session, returning its value. + * + * @param \UnitEnum|string $key + * @return mixed + * @static + */ + public static function remove($key) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->remove($key); + } + + /** + * Remove one or many items from the session. + * + * @param \UnitEnum|string|array $keys + * @return void + * @static + */ + public static function forget($keys) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->forget($keys); + } + + /** + * Remove all of the items from the session. + * + * @return void + * @static + */ + public static function flush() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->flush(); + } + + /** + * Flush the session data and regenerate the ID. + * + * @return bool + * @static + */ + public static function invalidate() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->invalidate(); + } + + /** + * Generate a new session identifier. + * + * @param bool $destroy + * @return bool + * @static + */ + public static function regenerate($destroy = false) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->regenerate($destroy); + } + + /** + * Generate a new session ID for the session. + * + * @param bool $destroy + * @return bool + * @static + */ + public static function migrate($destroy = false) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->migrate($destroy); + } + + /** + * Determine if the session has been started. + * + * @return bool + * @static + */ + public static function isStarted() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->isStarted(); + } + + /** + * Get the name of the session. + * + * @return string + * @static + */ + public static function getName() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->getName(); + } + + /** + * Set the name of the session. + * + * @param string $name + * @return void + * @static + */ + public static function setName($name) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setName($name); + } + + /** + * Get the current session ID. + * + * @return string + * @static + */ + public static function id() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->id(); + } + + /** + * Get the current session ID. + * + * @return string + * @static + */ + public static function getId() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->getId(); + } + + /** + * Set the session ID. + * + * @param string|null $id + * @return void + * @static + */ + public static function setId($id) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setId($id); + } + + /** + * Determine if this is a valid session ID. + * + * @param string|null $id + * @return bool + * @static + */ + public static function isValidId($id) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->isValidId($id); + } + + /** + * Set the existence of the session on the handler if applicable. + * + * @param bool $value + * @return void + * @static + */ + public static function setExists($value) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setExists($value); + } + + /** + * Get the CSRF token value. + * + * @return string + * @static + */ + public static function token() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->token(); + } + + /** + * Regenerate the CSRF token value. + * + * @return void + * @static + */ + public static function regenerateToken() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->regenerateToken(); + } + + /** + * Determine if the previous URI is available. + * + * @return bool + * @static + */ + public static function hasPreviousUri() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->hasPreviousUri(); + } + + /** + * Get the previous URL from the session as a URI instance. + * + * @return \Illuminate\Support\Uri + * @throws \RuntimeException + * @static + */ + public static function previousUri() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->previousUri(); + } + + /** + * Get the previous URL from the session. + * + * @return string|null + * @static + */ + public static function previousUrl() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->previousUrl(); + } + + /** + * Set the "previous" URL in the session. + * + * @param string $url + * @return void + * @static + */ + public static function setPreviousUrl($url) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setPreviousUrl($url); + } + + /** + * Get the previous route name from the session. + * + * @return string|null + * @static + */ + public static function previousRoute() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->previousRoute(); + } + + /** + * Set the "previous" route name in the session. + * + * @param string|null $route + * @return void + * @static + */ + public static function setPreviousRoute($route) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setPreviousRoute($route); + } + + /** + * Specify that the user has confirmed their password. + * + * @return void + * @static + */ + public static function passwordConfirmed() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->passwordConfirmed(); + } + + /** + * Get the underlying session handler implementation. + * + * @return \SessionHandlerInterface + * @static + */ + public static function getHandler() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->getHandler(); + } + + /** + * Set the underlying session handler implementation. + * + * @param \SessionHandlerInterface $handler + * @return \SessionHandlerInterface + * @static + */ + public static function setHandler($handler) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->setHandler($handler); + } + + /** + * Determine if the session handler needs a request. + * + * @return bool + * @static + */ + public static function handlerNeedsRequest() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->handlerNeedsRequest(); + } + + /** + * Set the request on the handler instance. + * + * @param \Illuminate\Http\Request $request + * @return void + * @static + */ + public static function setRequestOnHandler($request) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setRequestOnHandler($request); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Session\Store::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Session\Store::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Session\Store::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Session\Store::flushMacros(); + } + + } + /** + * @method static bool has(string $location) + * @method static string read(string $location) + * @method static \League\Flysystem\DirectoryListing listContents(string $location, bool $deep = false) + * @method static int fileSize(string $path) + * @method static string visibility(string $path) + * @method static void write(string $location, string $contents, array $config = []) + * @method static void createDirectory(string $location, array $config = []) + * @see \Illuminate\Filesystem\FilesystemManager + */ + class Storage { + /** + * Get a filesystem instance. + * + * @param string|null $name + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function drive($name = null) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->drive($name); + } + + /** + * Get a filesystem instance. + * + * @param \UnitEnum|string|null $name + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function disk($name = null) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->disk($name); + } + + /** + * Get a default cloud filesystem instance. + * + * @return \Illuminate\Contracts\Filesystem\Cloud + * @static + */ + public static function cloud() + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->cloud(); + } + + /** + * Build an on-demand disk. + * + * @param string|array $config + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function build($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->build($config); + } + + /** + * Create an instance of the local driver. + * + * @param array $config + * @param string $name + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function createLocalDriver($config, $name = 'local') + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createLocalDriver($config, $name); + } + + /** + * Create an instance of the ftp driver. + * + * @param array $config + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function createFtpDriver($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createFtpDriver($config); + } + + /** + * Create an instance of the sftp driver. + * + * @param array $config + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function createSftpDriver($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createSftpDriver($config); + } + + /** + * Create an instance of the Amazon S3 driver. + * + * @param array $config + * @return \Illuminate\Contracts\Filesystem\Cloud + * @static + */ + public static function createS3Driver($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createS3Driver($config); + } + + /** + * Create a scoped driver. + * + * @param array $config + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @throws \InvalidArgumentException + * @static + */ + public static function createScopedDriver($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createScopedDriver($config); + } + + /** + * Set the given disk instance. + * + * @param string $name + * @param mixed $disk + * @return \Illuminate\Filesystem\FilesystemManager + * @static + */ + public static function set($name, $disk) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->set($name, $disk); + } + + /** + * Get the default driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->getDefaultDriver(); + } + + /** + * Get the default cloud driver name. + * + * @return string + * @static + */ + public static function getDefaultCloudDriver() + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->getDefaultCloudDriver(); + } + + /** + * Unset the given disk instances. + * + * @param array|string $disk + * @return \Illuminate\Filesystem\FilesystemManager + * @static + */ + public static function forgetDisk($disk) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->forgetDisk($disk); + } + + /** + * Disconnect the given disk and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + $instance->purge($name); + } + + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @param-closure-this $this $callback + * @return \Illuminate\Filesystem\FilesystemManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->extend($driver, $callback); + } + + /** + * Set the application instance used by the manager. + * + * @param \Illuminate\Contracts\Foundation\Application $app + * @return \Illuminate\Filesystem\FilesystemManager + * @static + */ + public static function setApplication($app) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->setApplication($app); + } + + /** + * Determine if temporary URLs can be generated. + * + * @return bool + * @static + */ + public static function providesTemporaryUrls() + { + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->providesTemporaryUrls(); + } + + /** + * Determine if temporary upload URLs can be generated. + * + * @return bool + * @static + */ + public static function providesTemporaryUploadUrls() + { + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->providesTemporaryUploadUrls(); + } + + /** + * Get a temporary URL for the file at the given path. + * + * @param string $path + * @param \DateTimeInterface $expiration + * @param array $options + * @return string + * @throws \RuntimeException + * @static + */ + public static function temporaryUrl($path, $expiration, $options = []) + { + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->temporaryUrl($path, $expiration, $options); + } + + /** + * Get a temporary upload URL for the file at the given path. + * + * @param string $path + * @param \DateTimeInterface $expiration + * @param array $options + * @return array + * @throws \RuntimeException + * @static + */ + public static function temporaryUploadUrl($path, $expiration, $options = []) + { + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->temporaryUploadUrl($path, $expiration, $options); + } + + /** + * Specify the name of the disk the adapter is managing. + * + * @param string $disk + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function diskName($disk) + { + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->diskName($disk); + } + + /** + * Indicate that signed URLs should serve the corresponding files. + * + * @param bool $serve + * @param \Closure|null $urlGeneratorResolver + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function shouldServeSignedUrls($serve = true, $urlGeneratorResolver = null) + { + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->shouldServeSignedUrls($serve, $urlGeneratorResolver); + } + + /** + * Apply the callback if the given "value" is (or resolves to) truthy. + * + * @template TWhenParameter + * @template TWhenReturnType + * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default + * @return $this|TWhenReturnType + * @static + */ + public static function when($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->when($value, $callback, $default); + } + + /** + * Apply the callback if the given "value" is (or resolves to) falsy. + * + * @template TUnlessParameter + * @template TUnlessReturnType + * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default + * @return $this|TUnlessReturnType + * @static + */ + public static function unless($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->unless($value, $callback, $default); + } + + /** + * Assert that the given file or directory exists. + * + * @param string|array $path + * @param string|null $content + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function assertExists($path, $content = null) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->assertExists($path, $content); + } + + /** + * Assert that the number of files in path equals the expected count. + * + * @param string $path + * @param int $count + * @param bool $recursive + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function assertCount($path, $count, $recursive = false) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->assertCount($path, $count, $recursive); + } + + /** + * Assert that the given file or directory does not exist. + * + * @param string|array $path + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function assertMissing($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->assertMissing($path); + } + + /** + * Assert that the given directory is empty. + * + * @param string $path + * @return \Illuminate\Filesystem\LocalFilesystemAdapter + * @static + */ + public static function assertDirectoryEmpty($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->assertDirectoryEmpty($path); + } + + /** + * Determine if a file or directory exists. + * + * @param string $path + * @return bool + * @static + */ + public static function exists($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->exists($path); + } + + /** + * Determine if a file or directory is missing. + * + * @param string $path + * @return bool + * @static + */ + public static function missing($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->missing($path); + } + + /** + * Determine if a file exists. + * + * @param string $path + * @return bool + * @static + */ + public static function fileExists($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->fileExists($path); + } + + /** + * Determine if a file is missing. + * + * @param string $path + * @return bool + * @static + */ + public static function fileMissing($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->fileMissing($path); + } + + /** + * Determine if a directory exists. + * + * @param string $path + * @return bool + * @static + */ + public static function directoryExists($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->directoryExists($path); + } + + /** + * Determine if a directory is missing. + * + * @param string $path + * @return bool + * @static + */ + public static function directoryMissing($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->directoryMissing($path); + } + + /** + * Get the full path to the file that exists at the given relative path. + * + * @param string $path + * @return string + * @static + */ + public static function path($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->path($path); + } + + /** + * Get the contents of a file. + * + * @param string $path + * @return string|null + * @static + */ + public static function get($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->get($path); + } + + /** + * Get the contents of a file as decoded JSON. + * + * @param string $path + * @param int $flags + * @return array|null + * @static + */ + public static function json($path, $flags = 0) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->json($path, $flags); + } + + /** + * Create a streamed response for a given file. + * + * @param string $path + * @param string|null $name + * @param array $headers + * @param string|null $disposition + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function response($path, $name = null, $headers = [], $disposition = 'inline') + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->response($path, $name, $headers, $disposition); + } + + /** + * Create a streamed download response for a given file. + * + * @param \Illuminate\Http\Request $request + * @param string $path + * @param string|null $name + * @param array $headers + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function serve($request, $path, $name = null, $headers = []) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->serve($request, $path, $name, $headers); + } + + /** + * Create a streamed download response for a given file. + * + * @param string $path + * @param string|null $name + * @param array $headers + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function download($path, $name = null, $headers = []) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->download($path, $name, $headers); + } + + /** + * Write the contents of a file. + * + * @param string $path + * @param \Psr\Http\Message\StreamInterface|\Illuminate\Http\File|\Illuminate\Http\UploadedFile|string|resource $contents + * @param mixed $options + * @return string|bool + * @static + */ + public static function put($path, $contents, $options = []) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->put($path, $contents, $options); + } + + /** + * Store the uploaded file on the disk. + * + * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string $path + * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string|array|null $file + * @param mixed $options + * @return string|false + * @static + */ + public static function putFile($path, $file = null, $options = []) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->putFile($path, $file, $options); + } + + /** + * Store the uploaded file on the disk with a given name. + * + * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string $path + * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string|array|null $file + * @param string|array|null $name + * @param mixed $options + * @return string|false + * @static + */ + public static function putFileAs($path, $file, $name = null, $options = []) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->putFileAs($path, $file, $name, $options); + } + + /** + * Get the visibility for the given path. + * + * @param string $path + * @return string + * @static + */ + public static function getVisibility($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->getVisibility($path); + } + + /** + * Set the visibility for the given path. + * + * @param string $path + * @param string $visibility + * @return bool + * @static + */ + public static function setVisibility($path, $visibility) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->setVisibility($path, $visibility); + } + + /** + * Prepend to a file. + * + * @param string $path + * @param string $data + * @param string $separator + * @return bool + * @static + */ + public static function prepend($path, $data, $separator = ' +') + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->prepend($path, $data, $separator); + } + + /** + * Append to a file. + * + * @param string $path + * @param string $data + * @param string $separator + * @return bool + * @static + */ + public static function append($path, $data, $separator = ' +') + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->append($path, $data, $separator); + } + + /** + * Delete the file at a given path. + * + * @param string|array $paths + * @return bool + * @static + */ + public static function delete($paths) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->delete($paths); + } + + /** + * Copy a file to a new location. + * + * @param string $from + * @param string $to + * @return bool + * @static + */ + public static function copy($from, $to) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->copy($from, $to); + } + + /** + * Move a file to a new location. + * + * @param string $from + * @param string $to + * @return bool + * @static + */ + public static function move($from, $to) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->move($from, $to); + } + + /** + * Get the file size of a given file. + * + * @param string $path + * @return int + * @static + */ + public static function size($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->size($path); + } + + /** + * Get the checksum for a file. + * + * @return string|false + * @throws UnableToProvideChecksum + * @static + */ + public static function checksum($path, $options = []) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->checksum($path, $options); + } + + /** + * Get the mime-type of a given file. + * + * @param string $path + * @return string|false + * @static + */ + public static function mimeType($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->mimeType($path); + } + + /** + * Get the file's last modification time. + * + * @param string $path + * @return int + * @static + */ + public static function lastModified($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->lastModified($path); + } + + /** + * Get a resource to read the file. + * + * @param string $path + * @return resource|null The path resource or null on failure. + * @static + */ + public static function readStream($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->readStream($path); + } + + /** + * Write a new file using a stream. + * + * @param string $path + * @param resource $resource + * @param array $options + * @return bool + * @static + */ + public static function writeStream($path, $resource, $options = []) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->writeStream($path, $resource, $options); + } + + /** + * Get the URL for the file at the given path. + * + * @param string $path + * @return string + * @throws \RuntimeException + * @static + */ + public static function url($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->url($path); + } + + /** + * Get an array of all files in a directory. + * + * @param string|null $directory + * @param bool $recursive + * @return array + * @static + */ + public static function files($directory = null, $recursive = false) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->files($directory, $recursive); + } + + /** + * Get all of the files from the given directory (recursive). + * + * @param string|null $directory + * @return array + * @static + */ + public static function allFiles($directory = null) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->allFiles($directory); + } + + /** + * Get all of the directories within a given directory. + * + * @param string|null $directory + * @param bool $recursive + * @return array + * @static + */ + public static function directories($directory = null, $recursive = false) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->directories($directory, $recursive); + } + + /** + * Get all the directories within a given directory (recursive). + * + * @param string|null $directory + * @return array + * @static + */ + public static function allDirectories($directory = null) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->allDirectories($directory); + } + + /** + * Create a directory. + * + * @param string $path + * @return bool + * @static + */ + public static function makeDirectory($path) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->makeDirectory($path); + } + + /** + * Recursively delete a directory. + * + * @param string $directory + * @return bool + * @static + */ + public static function deleteDirectory($directory) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->deleteDirectory($directory); + } + + /** + * Get the Flysystem driver. + * + * @return \League\Flysystem\FilesystemOperator + * @static + */ + public static function getDriver() + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->getDriver(); + } + + /** + * Get the Flysystem adapter. + * + * @return \League\Flysystem\FilesystemAdapter + * @static + */ + public static function getAdapter() + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->getAdapter(); + } + + /** + * Get the configuration values. + * + * @return array + * @static + */ + public static function getConfig() + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->getConfig(); + } + + /** + * Define a custom callback that generates file download responses. + * + * @param \Closure $callback + * @return void + * @static + */ + public static function serveUsing($callback) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + $instance->serveUsing($callback); + } + + /** + * Define a custom temporary URL builder callback. + * + * @param \Closure $callback + * @return void + * @static + */ + public static function buildTemporaryUrlsUsing($callback) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + $instance->buildTemporaryUrlsUsing($callback); + } + + /** + * Define a custom temporary upload URL builder callback. + * + * @param \Closure $callback + * @return void + * @static + */ + public static function buildTemporaryUploadUrlsUsing($callback) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + $instance->buildTemporaryUploadUrlsUsing($callback); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + \Illuminate\Filesystem\LocalFilesystemAdapter::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + \Illuminate\Filesystem\LocalFilesystemAdapter::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + return \Illuminate\Filesystem\LocalFilesystemAdapter::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + \Illuminate\Filesystem\LocalFilesystemAdapter::flushMacros(); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + //Method inherited from \Illuminate\Filesystem\FilesystemAdapter + /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */ + return $instance->macroCall($method, $parameters); + } + + } + /** + * @see \Illuminate\Routing\UrlGenerator + */ + class URL { + /** + * Get the full URL for the current request. + * + * @return string + * @static + */ + public static function full() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->full(); + } + + /** + * Get the current URL for the request. + * + * @return string + * @static + */ + public static function current() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->current(); + } + + /** + * Get the URL for the previous request. + * + * @param mixed $fallback + * @return string + * @static + */ + public static function previous($fallback = false) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->previous($fallback); + } + + /** + * Get the previous path info for the request. + * + * @param mixed $fallback + * @return string + * @static + */ + public static function previousPath($fallback = false) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->previousPath($fallback); + } + + /** + * Generate an absolute URL to the given path. + * + * @param string $path + * @param mixed $extra + * @param bool|null $secure + * @return string + * @static + */ + public static function to($path, $extra = [], $secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->to($path, $extra, $secure); + } + + /** + * Generate an absolute URL with the given query parameters. + * + * @param string $path + * @param array $query + * @param mixed $extra + * @param bool|null $secure + * @return string + * @static + */ + public static function query($path, $query = [], $extra = [], $secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->query($path, $query, $extra, $secure); + } + + /** + * Generate a secure, absolute URL to the given path. + * + * @param string $path + * @param array $parameters + * @return string + * @static + */ + public static function secure($path, $parameters = []) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->secure($path, $parameters); + } + + /** + * Generate the URL to an application asset. + * + * @param string $path + * @param bool|null $secure + * @return string + * @static + */ + public static function asset($path, $secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->asset($path, $secure); + } + + /** + * Generate the URL to a secure asset. + * + * @param string $path + * @return string + * @static + */ + public static function secureAsset($path) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->secureAsset($path); + } + + /** + * Generate the URL to an asset from a custom root domain such as CDN, etc. + * + * @param string $root + * @param string $path + * @param bool|null $secure + * @return string + * @static + */ + public static function assetFrom($root, $path, $secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->assetFrom($root, $path, $secure); + } + + /** + * Get the default scheme for a raw URL. + * + * @param bool|null $secure + * @return string + * @static + */ + public static function formatScheme($secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatScheme($secure); + } + + /** + * Create a signed route URL for a named route. + * + * @param \BackedEnum|string $name + * @param mixed $parameters + * @param \DateTimeInterface|\DateInterval|int|null $expiration + * @param bool $absolute + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function signedRoute($name, $parameters = [], $expiration = null, $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->signedRoute($name, $parameters, $expiration, $absolute); + } + + /** + * Create a temporary signed route URL for a named route. + * + * @param \BackedEnum|string $name + * @param \DateTimeInterface|\DateInterval|int $expiration + * @param array $parameters + * @param bool $absolute + * @return string + * @static + */ + public static function temporarySignedRoute($name, $expiration, $parameters = [], $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->temporarySignedRoute($name, $expiration, $parameters, $absolute); + } + + /** + * Determine if the given request has a valid signature. + * + * @param \Illuminate\Http\Request $request + * @param bool $absolute + * @param \Closure|array $ignoreQuery + * @return bool + * @static + */ + public static function hasValidSignature($request, $absolute = true, $ignoreQuery = []) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->hasValidSignature($request, $absolute, $ignoreQuery); + } + + /** + * Determine if the given request has a valid signature for a relative URL. + * + * @param \Illuminate\Http\Request $request + * @param \Closure|array $ignoreQuery + * @return bool + * @static + */ + public static function hasValidRelativeSignature($request, $ignoreQuery = []) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->hasValidRelativeSignature($request, $ignoreQuery); + } + + /** + * Determine if the signature from the given request matches the URL. + * + * @param \Illuminate\Http\Request $request + * @param bool $absolute + * @param \Closure|array $ignoreQuery + * @return bool + * @static + */ + public static function hasCorrectSignature($request, $absolute = true, $ignoreQuery = []) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->hasCorrectSignature($request, $absolute, $ignoreQuery); + } + + /** + * Determine if the expires timestamp from the given request is not from the past. + * + * @param \Illuminate\Http\Request $request + * @return bool + * @static + */ + public static function signatureHasNotExpired($request) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->signatureHasNotExpired($request); + } + + /** + * Get the URL to a named route. + * + * @param \BackedEnum|string $name + * @param mixed $parameters + * @param bool $absolute + * @return string + * @throws \Symfony\Component\Routing\Exception\RouteNotFoundException|\InvalidArgumentException + * @static + */ + public static function route($name, $parameters = [], $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->route($name, $parameters, $absolute); + } + + /** + * Get the URL for a given route instance. + * + * @param \Illuminate\Routing\Route $route + * @param mixed $parameters + * @param bool $absolute + * @return string + * @throws \Illuminate\Routing\Exceptions\UrlGenerationException + * @static + */ + public static function toRoute($route, $parameters, $absolute) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->toRoute($route, $parameters, $absolute); + } + + /** + * Get the URL to a controller action. + * + * @param string|array $action + * @param mixed $parameters + * @param bool $absolute + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function action($action, $parameters = [], $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->action($action, $parameters, $absolute); + } + + /** + * Format the array of URL parameters. + * + * @param mixed $parameters + * @return array + * @static + */ + public static function formatParameters($parameters) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatParameters($parameters); + } + + /** + * Get the base URL for the request. + * + * @param string $scheme + * @param string|null $root + * @return string + * @static + */ + public static function formatRoot($scheme, $root = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatRoot($scheme, $root); + } + + /** + * Format the given URL segments into a single URL. + * + * @param string $root + * @param string $path + * @param \Illuminate\Routing\Route|null $route + * @return string + * @static + */ + public static function format($root, $path, $route = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->format($root, $path, $route); + } + + /** + * Determine if the given path is a valid URL. + * + * @param string $path + * @return bool + * @static + */ + public static function isValidUrl($path) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->isValidUrl($path); + } + + /** + * Set the default named parameters used by the URL generator. + * + * @param array $defaults + * @return void + * @static + */ + public static function defaults($defaults) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->defaults($defaults); + } + + /** + * Get the default named parameters used by the URL generator. + * + * @return array + * @static + */ + public static function getDefaultParameters() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->getDefaultParameters(); + } + + /** + * Force the scheme for URLs. + * + * @param string|null $scheme + * @return void + * @static + */ + public static function forceScheme($scheme) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->forceScheme($scheme); + } + + /** + * Force the use of the HTTPS scheme for all generated URLs. + * + * @param bool $force + * @return void + * @static + */ + public static function forceHttps($force = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->forceHttps($force); + } + + /** + * Set the URL origin for all generated URLs. + * + * @param string|null $root + * @return void + * @static + */ + public static function useOrigin($root) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->useOrigin($root); + } + + /** + * Set the forced root URL. + * + * @param string|null $root + * @return void + * @deprecated Use useOrigin + * @static + */ + public static function forceRootUrl($root) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->forceRootUrl($root); + } + + /** + * Set the URL origin for all generated asset URLs. + * + * @param string|null $root + * @return void + * @static + */ + public static function useAssetOrigin($root) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->useAssetOrigin($root); + } + + /** + * Set a callback to be used to format the host of generated URLs. + * + * @param \Closure $callback + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function formatHostUsing($callback) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatHostUsing($callback); + } + + /** + * Set a callback to be used to format the path of generated URLs. + * + * @param \Closure $callback + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function formatPathUsing($callback) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatPathUsing($callback); + } + + /** + * Get the path formatter being used by the URL generator. + * + * @return \Closure + * @static + */ + public static function pathFormatter() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->pathFormatter(); + } + + /** + * Get the request instance. + * + * @return \Illuminate\Http\Request + * @static + */ + public static function getRequest() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->getRequest(); + } + + /** + * Set the current request instance. + * + * @param \Illuminate\Http\Request $request + * @return void + * @static + */ + public static function setRequest($request) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->setRequest($request); + } + + /** + * Set the route collection. + * + * @param \Illuminate\Routing\RouteCollectionInterface $routes + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function setRoutes($routes) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->setRoutes($routes); + } + + /** + * Set the session resolver for the generator. + * + * @param callable $sessionResolver + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function setSessionResolver($sessionResolver) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->setSessionResolver($sessionResolver); + } + + /** + * Set the encryption key resolver. + * + * @param callable $keyResolver + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function setKeyResolver($keyResolver) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->setKeyResolver($keyResolver); + } + + /** + * Clone a new instance of the URL generator with a different encryption key resolver. + * + * @param callable $keyResolver + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function withKeyResolver($keyResolver) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->withKeyResolver($keyResolver); + } + + /** + * Set the callback that should be used to attempt to resolve missing named routes. + * + * @param callable $missingNamedRouteResolver + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function resolveMissingNamedRoutesUsing($missingNamedRouteResolver) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->resolveMissingNamedRoutesUsing($missingNamedRouteResolver); + } + + /** + * Get the root controller namespace. + * + * @return string + * @static + */ + public static function getRootControllerNamespace() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->getRootControllerNamespace(); + } + + /** + * Set the root controller namespace. + * + * @param string $rootNamespace + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function setRootControllerNamespace($rootNamespace) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->setRootControllerNamespace($rootNamespace); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Routing\UrlGenerator::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Routing\UrlGenerator::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Routing\UrlGenerator::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Routing\UrlGenerator::flushMacros(); + } + + } + /** + * @see \Illuminate\Validation\Factory + */ + class Validator { + /** + * Create a new Validator instance. + * + * @param array $data + * @param array $rules + * @param array $messages + * @param array $attributes + * @return \Illuminate\Validation\Validator + * @static + */ + public static function make($data, $rules, $messages = [], $attributes = []) + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->make($data, $rules, $messages, $attributes); + } + + /** + * Validate the given data against the provided rules. + * + * @param array $data + * @param array $rules + * @param array $messages + * @param array $attributes + * @return array + * @throws \Illuminate\Validation\ValidationException + * @static + */ + public static function validate($data, $rules, $messages = [], $attributes = []) + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->validate($data, $rules, $messages, $attributes); + } + + /** + * Register a custom validator extension. + * + * @param string $rule + * @param \Closure|string $extension + * @param string|null $message + * @return void + * @static + */ + public static function extend($rule, $extension, $message = null) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->extend($rule, $extension, $message); + } + + /** + * Register a custom implicit validator extension. + * + * @param string $rule + * @param \Closure|string $extension + * @param string|null $message + * @return void + * @static + */ + public static function extendImplicit($rule, $extension, $message = null) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->extendImplicit($rule, $extension, $message); + } + + /** + * Register a custom dependent validator extension. + * + * @param string $rule + * @param \Closure|string $extension + * @param string|null $message + * @return void + * @static + */ + public static function extendDependent($rule, $extension, $message = null) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->extendDependent($rule, $extension, $message); + } + + /** + * Register a custom validator message replacer. + * + * @param string $rule + * @param \Closure|string $replacer + * @return void + * @static + */ + public static function replacer($rule, $replacer) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->replacer($rule, $replacer); + } + + /** + * Indicate that unvalidated array keys should be included in validated data when the parent array is validated. + * + * @return void + * @static + */ + public static function includeUnvalidatedArrayKeys() + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->includeUnvalidatedArrayKeys(); + } + + /** + * Indicate that unvalidated array keys should be excluded from the validated data, even if the parent array was validated. + * + * @return void + * @static + */ + public static function excludeUnvalidatedArrayKeys() + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->excludeUnvalidatedArrayKeys(); + } + + /** + * Set the Validator instance resolver. + * + * @param \Closure $resolver + * @return void + * @static + */ + public static function resolver($resolver) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->resolver($resolver); + } + + /** + * Get the Translator implementation. + * + * @return \Illuminate\Contracts\Translation\Translator + * @static + */ + public static function getTranslator() + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->getTranslator(); + } + + /** + * Get the Presence Verifier implementation. + * + * @return \Illuminate\Validation\PresenceVerifierInterface + * @static + */ + public static function getPresenceVerifier() + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->getPresenceVerifier(); + } + + /** + * Set the Presence Verifier implementation. + * + * @param \Illuminate\Validation\PresenceVerifierInterface $presenceVerifier + * @return void + * @static + */ + public static function setPresenceVerifier($presenceVerifier) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->setPresenceVerifier($presenceVerifier); + } + + /** + * Get the container instance used by the validation factory. + * + * @return \Illuminate\Contracts\Container\Container|null + * @static + */ + public static function getContainer() + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->getContainer(); + } + + /** + * Set the container instance used by the validation factory. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return \Illuminate\Validation\Factory + * @static + */ + public static function setContainer($container) + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->setContainer($container); + } + + } + /** + * @see \Illuminate\View\Factory + */ + class View { + /** + * Get the evaluated view contents for the given view. + * + * @param string $path + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return \Illuminate\Contracts\View\View + * @static + */ + public static function file($path, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->file($path, $data, $mergeData); + } + + /** + * Get the evaluated view contents for the given view. + * + * @param string $view + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return \Illuminate\Contracts\View\View + * @static + */ + public static function make($view, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->make($view, $data, $mergeData); + } + + /** + * Get the first view that actually exists from the given list. + * + * @param array $views + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return \Illuminate\Contracts\View\View + * @throws \InvalidArgumentException + * @static + */ + public static function first($views, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->first($views, $data, $mergeData); + } + + /** + * Get the rendered content of the view based on a given condition. + * + * @param bool $condition + * @param string $view + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return string + * @static + */ + public static function renderWhen($condition, $view, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderWhen($condition, $view, $data, $mergeData); + } + + /** + * Get the rendered content of the view based on the negation of a given condition. + * + * @param bool $condition + * @param string $view + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return string + * @static + */ + public static function renderUnless($condition, $view, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderUnless($condition, $view, $data, $mergeData); + } + + /** + * Get the rendered contents of a partial from a loop. + * + * @param string $view + * @param array $data + * @param string $iterator + * @param string $empty + * @return string + * @static + */ + public static function renderEach($view, $data, $iterator, $empty = 'raw|') + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderEach($view, $data, $iterator, $empty); + } + + /** + * Determine if a given view exists. + * + * @param string $view + * @return bool + * @static + */ + public static function exists($view) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->exists($view); + } + + /** + * Get the appropriate view engine for the given path. + * + * @param string $path + * @return \Illuminate\Contracts\View\Engine + * @throws \InvalidArgumentException + * @static + */ + public static function getEngineFromPath($path) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getEngineFromPath($path); + } + + /** + * Add a piece of shared data to the environment. + * + * @param array|string $key + * @param mixed $value + * @return mixed + * @static + */ + public static function share($key, $value = null) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->share($key, $value); + } + + /** + * Increment the rendering counter. + * + * @return void + * @static + */ + public static function incrementRender() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->incrementRender(); + } + + /** + * Decrement the rendering counter. + * + * @return void + * @static + */ + public static function decrementRender() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->decrementRender(); + } + + /** + * Check if there are no active render operations. + * + * @return bool + * @static + */ + public static function doneRendering() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->doneRendering(); + } + + /** + * Determine if the given once token has been rendered. + * + * @param string $id + * @return bool + * @static + */ + public static function hasRenderedOnce($id) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->hasRenderedOnce($id); + } + + /** + * Mark the given once token as having been rendered. + * + * @param string $id + * @return void + * @static + */ + public static function markAsRenderedOnce($id) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->markAsRenderedOnce($id); + } + + /** + * Add a location to the array of view locations. + * + * @param string $location + * @return void + * @static + */ + public static function addLocation($location) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->addLocation($location); + } + + /** + * Prepend a location to the array of view locations. + * + * @param string $location + * @return void + * @static + */ + public static function prependLocation($location) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->prependLocation($location); + } + + /** + * Add a new namespace to the loader. + * + * @param string $namespace + * @param string|array $hints + * @return \Illuminate\View\Factory + * @static + */ + public static function addNamespace($namespace, $hints) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->addNamespace($namespace, $hints); + } + + /** + * Prepend a new namespace to the loader. + * + * @param string $namespace + * @param string|array $hints + * @return \Illuminate\View\Factory + * @static + */ + public static function prependNamespace($namespace, $hints) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->prependNamespace($namespace, $hints); + } + + /** + * Replace the namespace hints for the given namespace. + * + * @param string $namespace + * @param string|array $hints + * @return \Illuminate\View\Factory + * @static + */ + public static function replaceNamespace($namespace, $hints) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->replaceNamespace($namespace, $hints); + } + + /** + * Register a valid view extension and its engine. + * + * @param string $extension + * @param string $engine + * @param \Closure|null $resolver + * @return void + * @static + */ + public static function addExtension($extension, $engine, $resolver = null) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->addExtension($extension, $engine, $resolver); + } + + /** + * Flush all of the factory state like sections and stacks. + * + * @return void + * @static + */ + public static function flushState() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushState(); + } + + /** + * Flush all of the section contents if done rendering. + * + * @return void + * @static + */ + public static function flushStateIfDoneRendering() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushStateIfDoneRendering(); + } + + /** + * Get the extension to engine bindings. + * + * @return array + * @static + */ + public static function getExtensions() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getExtensions(); + } + + /** + * Get the engine resolver instance. + * + * @return \Illuminate\View\Engines\EngineResolver + * @static + */ + public static function getEngineResolver() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getEngineResolver(); + } + + /** + * Get the view finder instance. + * + * @return \Illuminate\View\ViewFinderInterface + * @static + */ + public static function getFinder() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getFinder(); + } + + /** + * Set the view finder instance. + * + * @param \Illuminate\View\ViewFinderInterface $finder + * @return void + * @static + */ + public static function setFinder($finder) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->setFinder($finder); + } + + /** + * Flush the cache of views located by the finder. + * + * @return void + * @static + */ + public static function flushFinderCache() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushFinderCache(); + } + + /** + * Get the event dispatcher instance. + * + * @return \Illuminate\Contracts\Events\Dispatcher + * @static + */ + public static function getDispatcher() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getDispatcher(); + } + + /** + * Set the event dispatcher instance. + * + * @param \Illuminate\Contracts\Events\Dispatcher $events + * @return void + * @static + */ + public static function setDispatcher($events) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->setDispatcher($events); + } + + /** + * Get the IoC container instance. + * + * @return \Illuminate\Contracts\Container\Container + * @static + */ + public static function getContainer() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getContainer(); + } + + /** + * Set the IoC container instance. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return void + * @static + */ + public static function setContainer($container) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->setContainer($container); + } + + /** + * Get an item from the shared data. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function shared($key, $default = null) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->shared($key, $default); + } + + /** + * Get all of the shared data for the environment. + * + * @return array + * @static + */ + public static function getShared() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getShared(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\View\Factory::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\View\Factory::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\View\Factory::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\View\Factory::flushMacros(); + } + + /** + * Start a component rendering process. + * + * @param \Illuminate\Contracts\View\View|\Illuminate\Contracts\Support\Htmlable|\Closure|string $view + * @param array $data + * @return void + * @static + */ + public static function startComponent($view, $data = []) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startComponent($view, $data); + } + + /** + * Get the first view that actually exists from the given list, and start a component. + * + * @param array $names + * @param array $data + * @return void + * @static + */ + public static function startComponentFirst($names, $data = []) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startComponentFirst($names, $data); + } + + /** + * Render the current component. + * + * @return string + * @static + */ + public static function renderComponent() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderComponent(); + } + + /** + * Get an item from the component data that exists above the current component. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function getConsumableComponentData($key, $default = null) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getConsumableComponentData($key, $default); + } + + /** + * Start the slot rendering process. + * + * @param string $name + * @param string|null $content + * @param array $attributes + * @return void + * @static + */ + public static function slot($name, $content = null, $attributes = []) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->slot($name, $content, $attributes); + } + + /** + * Save the slot content for rendering. + * + * @return void + * @static + */ + public static function endSlot() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->endSlot(); + } + + /** + * Register a view creator event. + * + * @param array|string $views + * @param \Closure|string $callback + * @return array + * @static + */ + public static function creator($views, $callback) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->creator($views, $callback); + } + + /** + * Register multiple view composers via an array. + * + * @param array $composers + * @return array + * @static + */ + public static function composers($composers) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->composers($composers); + } + + /** + * Register a view composer event. + * + * @param array|string $views + * @param \Closure|string $callback + * @return array + * @static + */ + public static function composer($views, $callback) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->composer($views, $callback); + } + + /** + * Call the composer for a given view. + * + * @param \Illuminate\Contracts\View\View $view + * @return void + * @static + */ + public static function callComposer($view) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->callComposer($view); + } + + /** + * Call the creator for a given view. + * + * @param \Illuminate\Contracts\View\View $view + * @return void + * @static + */ + public static function callCreator($view) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->callCreator($view); + } + + /** + * Start injecting content into a fragment. + * + * @param string $fragment + * @return void + * @static + */ + public static function startFragment($fragment) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startFragment($fragment); + } + + /** + * Stop injecting content into a fragment. + * + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function stopFragment() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->stopFragment(); + } + + /** + * Get the contents of a fragment. + * + * @param string $name + * @param string|null $default + * @return mixed + * @static + */ + public static function getFragment($name, $default = null) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getFragment($name, $default); + } + + /** + * Get the entire array of rendered fragments. + * + * @return array + * @static + */ + public static function getFragments() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getFragments(); + } + + /** + * Flush all of the fragments. + * + * @return void + * @static + */ + public static function flushFragments() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushFragments(); + } + + /** + * Start injecting content into a section. + * + * @param string $section + * @param string|null $content + * @return void + * @static + */ + public static function startSection($section, $content = null) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startSection($section, $content); + } + + /** + * Inject inline content into a section. + * + * @param string $section + * @param string $content + * @return void + * @static + */ + public static function inject($section, $content) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->inject($section, $content); + } + + /** + * Stop injecting content into a section and return its contents. + * + * @return string + * @static + */ + public static function yieldSection() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->yieldSection(); + } + + /** + * Stop injecting content into a section. + * + * @param bool $overwrite + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function stopSection($overwrite = false) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->stopSection($overwrite); + } + + /** + * Stop injecting content into a section and append it. + * + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function appendSection() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->appendSection(); + } + + /** + * Get the string contents of a section. + * + * @param string $section + * @param string $default + * @return string + * @static + */ + public static function yieldContent($section, $default = '') + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->yieldContent($section, $default); + } + + /** + * Get the parent placeholder for the current request. + * + * @param string $section + * @return string + * @static + */ + public static function parentPlaceholder($section = '') + { + return \Illuminate\View\Factory::parentPlaceholder($section); + } + + /** + * Check if section exists. + * + * @param string $name + * @return bool + * @static + */ + public static function hasSection($name) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->hasSection($name); + } + + /** + * Check if section does not exist. + * + * @param string $name + * @return bool + * @static + */ + public static function sectionMissing($name) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->sectionMissing($name); + } + + /** + * Get the contents of a section. + * + * @param string $name + * @param string|null $default + * @return mixed + * @static + */ + public static function getSection($name, $default = null) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getSection($name, $default); + } + + /** + * Get the entire array of sections. + * + * @return array + * @static + */ + public static function getSections() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getSections(); + } + + /** + * Flush all of the sections. + * + * @return void + * @static + */ + public static function flushSections() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushSections(); + } + + /** + * Add new loop to the stack. + * + * @param \Countable|array $data + * @return void + * @static + */ + public static function addLoop($data) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->addLoop($data); + } + + /** + * Increment the top loop's indices. + * + * @return void + * @static + */ + public static function incrementLoopIndices() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->incrementLoopIndices(); + } + + /** + * Pop a loop from the top of the loop stack. + * + * @return void + * @static + */ + public static function popLoop() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->popLoop(); + } + + /** + * Get an instance of the last loop in the stack. + * + * @return \stdClass|null + * @static + */ + public static function getLastLoop() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getLastLoop(); + } + + /** + * Get the entire loop stack. + * + * @return array + * @static + */ + public static function getLoopStack() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getLoopStack(); + } + + /** + * Start injecting content into a push section. + * + * @param string $section + * @param string $content + * @return void + * @static + */ + public static function startPush($section, $content = '') + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startPush($section, $content); + } + + /** + * Stop injecting content into a push section. + * + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function stopPush() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->stopPush(); + } + + /** + * Start prepending content into a push section. + * + * @param string $section + * @param string $content + * @return void + * @static + */ + public static function startPrepend($section, $content = '') + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startPrepend($section, $content); + } + + /** + * Stop prepending content into a push section. + * + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function stopPrepend() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->stopPrepend(); + } + + /** + * Get the string contents of a push section. + * + * @param string $section + * @param string $default + * @return string + * @static + */ + public static function yieldPushContent($section, $default = '') + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->yieldPushContent($section, $default); + } + + /** + * Determine if the stack has any content in it. + * + * @static + */ + public static function isStackEmpty($section) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->isStackEmpty($section); + } + + /** + * Flush all of the stacks. + * + * @return void + * @static + */ + public static function flushStacks() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushStacks(); + } + + /** + * Start a translation block. + * + * @param array $replacements + * @return void + * @static + */ + public static function startTranslation($replacements = []) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startTranslation($replacements); + } + + /** + * Render the current translation. + * + * @return string + * @static + */ + public static function renderTranslation() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderTranslation(); + } + + } + /** + * @see \Illuminate\Foundation\Vite + */ + class Vite { + /** + * Get the preloaded assets. + * + * @return array + * @static + */ + public static function preloadedAssets() + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->preloadedAssets(); + } + + /** + * Get the Content Security Policy nonce applied to all generated tags. + * + * @return string|null + * @static + */ + public static function cspNonce() + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->cspNonce(); + } + + /** + * Generate or set a Content Security Policy nonce to apply to all generated tags. + * + * @param string|null $nonce + * @return string + * @static + */ + public static function useCspNonce($nonce = null) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useCspNonce($nonce); + } + + /** + * Use the given key to detect integrity hashes in the manifest. + * + * @param string|false $key + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function useIntegrityKey($key) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useIntegrityKey($key); + } + + /** + * Set the Vite entry points. + * + * @param array $entryPoints + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function withEntryPoints($entryPoints) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->withEntryPoints($entryPoints); + } + + /** + * Merge additional Vite entry points with the current set. + * + * @param array $entryPoints + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function mergeEntryPoints($entryPoints) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->mergeEntryPoints($entryPoints); + } + + /** + * Set the filename for the manifest file. + * + * @param string $filename + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function useManifestFilename($filename) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useManifestFilename($filename); + } + + /** + * Resolve asset paths using the provided resolver. + * + * @param callable|null $resolver + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function createAssetPathsUsing($resolver) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->createAssetPathsUsing($resolver); + } + + /** + * Get the Vite "hot" file path. + * + * @return string + * @static + */ + public static function hotFile() + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->hotFile(); + } + + /** + * Set the Vite "hot" file path. + * + * @param string $path + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function useHotFile($path) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useHotFile($path); + } + + /** + * Set the Vite build directory. + * + * @param string $path + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function useBuildDirectory($path) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useBuildDirectory($path); + } + + /** + * Use the given callback to resolve attributes for script tags. + * + * @param (callable(string, string, ?array, ?array): array)|array $attributes + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function useScriptTagAttributes($attributes) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useScriptTagAttributes($attributes); + } + + /** + * Use the given callback to resolve attributes for style tags. + * + * @param (callable(string, string, ?array, ?array): array)|array $attributes + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function useStyleTagAttributes($attributes) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useStyleTagAttributes($attributes); + } + + /** + * Use the given callback to resolve attributes for preload tags. + * + * @param (callable(string, string, ?array, ?array): (array|false))|array|false $attributes + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function usePreloadTagAttributes($attributes) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->usePreloadTagAttributes($attributes); + } + + /** + * Eagerly prefetch assets. + * + * @param int|null $concurrency + * @param string $event + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function prefetch($concurrency = null, $event = 'load') + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->prefetch($concurrency, $event); + } + + /** + * Use the "waterfall" prefetching strategy. + * + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function useWaterfallPrefetching($concurrency = null) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useWaterfallPrefetching($concurrency); + } + + /** + * Use the "aggressive" prefetching strategy. + * + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function useAggressivePrefetching() + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->useAggressivePrefetching(); + } + + /** + * Set the prefetching strategy. + * + * @param 'waterfall'|'aggressive'|null $strategy + * @param array $config + * @return \Illuminate\Foundation\Vite + * @static + */ + public static function usePrefetchStrategy($strategy, $config = []) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->usePrefetchStrategy($strategy, $config); + } + + /** + * Generate React refresh runtime script. + * + * @return \Illuminate\Support\HtmlString|void + * @static + */ + public static function reactRefresh() + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->reactRefresh(); + } + + /** + * Get the URL for an asset. + * + * @param string $asset + * @param string|null $buildDirectory + * @return string + * @static + */ + public static function asset($asset, $buildDirectory = null) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->asset($asset, $buildDirectory); + } + + /** + * Get the content of a given asset. + * + * @param string $asset + * @param string|null $buildDirectory + * @return string + * @throws \Illuminate\Foundation\ViteException + * @static + */ + public static function content($asset, $buildDirectory = null) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->content($asset, $buildDirectory); + } + + /** + * Get a unique hash representing the current manifest, or null if there is no manifest. + * + * @param string|null $buildDirectory + * @return string|null + * @static + */ + public static function manifestHash($buildDirectory = null) + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->manifestHash($buildDirectory); + } + + /** + * Determine if the HMR server is running. + * + * @return bool + * @static + */ + public static function isRunningHot() + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->isRunningHot(); + } + + /** + * Get the Vite tag content as a string of HTML. + * + * @return string + * @static + */ + public static function toHtml() + { + /** @var \Illuminate\Foundation\Vite $instance */ + return $instance->toHtml(); + } + + /** + * Flush state. + * + * @return void + * @static + */ + public static function flush() + { + /** @var \Illuminate\Foundation\Vite $instance */ + $instance->flush(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Foundation\Vite::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Foundation\Vite::mixin($mixin, $replace); + } + + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Foundation\Vite::hasMacro($name); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Foundation\Vite::flushMacros(); + } + + } + } + +namespace Illuminate\Http { + /** + */ + class Request extends \Symfony\Component\HttpFoundation\Request { + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param array $rules + * @param mixed $params + * @static + */ + public static function validate($rules, ...$params) + { + return \Illuminate\Http\Request::validate($rules, ...$params); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param string $errorBag + * @param array $rules + * @param mixed $params + * @static + */ + public static function validateWithBag($errorBag, $rules, ...$params) + { + return \Illuminate\Http\Request::validateWithBag($errorBag, $rules, ...$params); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $absolute + * @static + */ + public static function hasValidSignature($absolute = true) + { + return \Illuminate\Http\Request::hasValidSignature($absolute); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @static + */ + public static function hasValidRelativeSignature() + { + return \Illuminate\Http\Request::hasValidRelativeSignature(); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $ignoreQuery + * @param mixed $absolute + * @static + */ + public static function hasValidSignatureWhileIgnoring($ignoreQuery = [], $absolute = true) + { + return \Illuminate\Http\Request::hasValidSignatureWhileIgnoring($ignoreQuery, $absolute); + } + + /** + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $ignoreQuery + * @static + */ + public static function hasValidRelativeSignatureWhileIgnoring($ignoreQuery = []) + { + return \Illuminate\Http\Request::hasValidRelativeSignatureWhileIgnoring($ignoreQuery); + } + + } + } + + +namespace { + class App extends \Illuminate\Support\Facades\App {} + class Arr extends \Illuminate\Support\Arr {} + class Artisan extends \Illuminate\Support\Facades\Artisan {} + class Auth extends \Illuminate\Support\Facades\Auth {} + class Benchmark extends \Illuminate\Support\Benchmark {} + class Blade extends \Illuminate\Support\Facades\Blade {} + class Broadcast extends \Illuminate\Support\Facades\Broadcast {} + class Bus extends \Illuminate\Support\Facades\Bus {} + class Cache extends \Illuminate\Support\Facades\Cache {} + class Concurrency extends \Illuminate\Support\Facades\Concurrency {} + class Config extends \Illuminate\Support\Facades\Config {} + class Context extends \Illuminate\Support\Facades\Context {} + class Cookie extends \Illuminate\Support\Facades\Cookie {} + class Crypt extends \Illuminate\Support\Facades\Crypt {} + class Date extends \Illuminate\Support\Facades\Date {} + class DB extends \Illuminate\Support\Facades\DB {} + + /** + * @template TCollection of static + * @template TModel of static + * @template TValue of static + * @template TValue of static + */ + class Eloquent extends \Illuminate\Database\Eloquent\Model { /** + * Create and return an un-saved model instance. + * + * @param array $attributes + * @return TModel + * @static + */ + public static function make($attributes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->make($attributes); + } + + /** + * Register a new global scope. + * + * @param string $identifier + * @param \Illuminate\Database\Eloquent\Scope|\Closure $scope + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withGlobalScope($identifier, $scope) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withGlobalScope($identifier, $scope); + } + + /** + * Remove a registered global scope. + * + * @param \Illuminate\Database\Eloquent\Scope|string $scope + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withoutGlobalScope($scope) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withoutGlobalScope($scope); + } + + /** + * Remove all or passed registered global scopes. + * + * @param array|null $scopes + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withoutGlobalScopes($scopes = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withoutGlobalScopes($scopes); + } + + /** + * Remove all global scopes except the given scopes. + * + * @param array $scopes + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withoutGlobalScopesExcept($scopes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withoutGlobalScopesExcept($scopes); + } + + /** + * Get an array of global scopes that were removed from the query. + * + * @return array + * @static + */ + public static function removedScopes() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->removedScopes(); + } + + /** + * Add a where clause on the primary key to the query. + * + * @param mixed $id + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereKey($id) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereKey($id); + } + + /** + * Add a where clause on the primary key to the query. + * + * @param mixed $id + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereKeyNot($id) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereKeyNot($id); + } + + /** + * Add a basic where clause to the query. + * + * @param (\Closure(static): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function where($column, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->where($column, $operator, $value, $boolean); + } + + /** + * Add a basic where clause to the query, and return the first result. + * + * @param (\Closure(static): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return TModel|null + * @static + */ + public static function firstWhere($column, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstWhere($column, $operator, $value, $boolean); + } + + /** + * Add an "or where" clause to the query. + * + * @param (\Closure(static): mixed)|array|string|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhere($column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhere($column, $operator, $value); + } + + /** + * Add a basic "where not" clause to the query. + * + * @param (\Closure(static): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNot($column, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereNot($column, $operator, $value, $boolean); + } + + /** + * Add an "or where not" clause to the query. + * + * @param (\Closure(static): mixed)|array|string|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNot($column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereNot($column, $operator, $value); + } + + /** + * Add an "order by" clause for a timestamp to the query. + * + * @param string|\Illuminate\Contracts\Database\Query\Expression $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function latest($column = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->latest($column); + } + + /** + * Add an "order by" clause for a timestamp to the query. + * + * @param string|\Illuminate\Contracts\Database\Query\Expression $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function oldest($column = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->oldest($column); + } + + /** + * Create a collection of models from plain arrays. + * + * @param array $items + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function hydrate($items) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->hydrate($items); + } + + /** + * Insert into the database after merging the model's default attributes, setting timestamps, and casting values. + * + * @param array> $values + * @return bool + * @static + */ + public static function fillAndInsert($values) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->fillAndInsert($values); + } + + /** + * Insert (ignoring errors) into the database after merging the model's default attributes, setting timestamps, and casting values. + * + * @param array> $values + * @return int + * @static + */ + public static function fillAndInsertOrIgnore($values) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->fillAndInsertOrIgnore($values); + } + + /** + * Insert a record into the database and get its ID after merging the model's default attributes, setting timestamps, and casting values. + * + * @param array $values + * @return int + * @static + */ + public static function fillAndInsertGetId($values) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->fillAndInsertGetId($values); + } + + /** + * Enrich the given values by merging in the model's default attributes, adding timestamps, and casting values. + * + * @param array> $values + * @return array> + * @static + */ + public static function fillForInsert($values) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->fillForInsert($values); + } + + /** + * Create a collection of models from a raw query. + * + * @param string $query + * @param array $bindings + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function fromQuery($query, $bindings = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->fromQuery($query, $bindings); + } + + /** + * Find a model by its primary key. + * + * @param mixed $id + * @param array|string $columns + * @return ($id is (\Illuminate\Contracts\Support\Arrayable|array) ? \Illuminate\Database\Eloquent\Collection : TModel|null) + * @static + */ + public static function find($id, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->find($id, $columns); + } + + /** + * Find a sole model by its primary key. + * + * @param mixed $id + * @param array|string $columns + * @return TModel + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @throws \Illuminate\Database\MultipleRecordsFoundException + * @static + */ + public static function findSole($id, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->findSole($id, $columns); + } + + /** + * Find multiple models by their primary keys. + * + * @param \Illuminate\Contracts\Support\Arrayable|array $ids + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function findMany($ids, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->findMany($ids, $columns); + } + + /** + * Find a model by its primary key or throw an exception. + * + * @param mixed $id + * @param array|string $columns + * @return ($id is (\Illuminate\Contracts\Support\Arrayable|array) ? \Illuminate\Database\Eloquent\Collection : TModel) + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @static + */ + public static function findOrFail($id, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->findOrFail($id, $columns); + } + + /** + * Find a model by its primary key or return fresh model instance. + * + * @param mixed $id + * @param array|string $columns + * @return ($id is (\Illuminate\Contracts\Support\Arrayable|array) ? \Illuminate\Database\Eloquent\Collection : TModel) + * @static + */ + public static function findOrNew($id, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->findOrNew($id, $columns); + } + + /** + * Find a model by its primary key or call a callback. + * + * @template TValue + * @param mixed $id + * @param (\Closure(): TValue)|list|string $columns + * @param (\Closure(): TValue)|null $callback + * @return ( $id is (\Illuminate\Contracts\Support\Arrayable|array) + * ? \Illuminate\Database\Eloquent\Collection + * : TModel|TValue + * ) + * @static + */ + public static function findOr($id, $columns = [], $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->findOr($id, $columns, $callback); + } + + /** + * Get the first record matching the attributes or instantiate it. + * + * @param array $attributes + * @param array $values + * @return TModel + * @static + */ + public static function firstOrNew($attributes = [], $values = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstOrNew($attributes, $values); + } + + /** + * Get the first record matching the attributes. If the record is not found, create it. + * + * @param array $attributes + * @param (\Closure(): array)|array $values + * @return TModel + * @static + */ + public static function firstOrCreate($attributes = [], $values = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstOrCreate($attributes, $values); + } + + /** + * Attempt to create the record. If a unique constraint violation occurs, attempt to find the matching record. + * + * @param array $attributes + * @param (\Closure(): array)|array $values + * @return TModel + * @throws \Illuminate\Database\UniqueConstraintViolationException + * @static + */ + public static function createOrFirst($attributes = [], $values = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->createOrFirst($attributes, $values); + } + + /** + * Create or update a record matching the attributes, and fill it with values. + * + * @param array $attributes + * @param array $values + * @return TModel + * @static + */ + public static function updateOrCreate($attributes, $values = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->updateOrCreate($attributes, $values); + } + + /** + * Create a record matching the attributes, or increment the existing record. + * + * @param array $attributes + * @param string $column + * @param int|float $default + * @param int|float $step + * @param array $extra + * @return TModel + * @static + */ + public static function incrementOrCreate($attributes, $column = 'count', $default = 1, $step = 1, $extra = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->incrementOrCreate($attributes, $column, $default, $step, $extra); + } + + /** + * Execute the query and get the first result or throw an exception. + * + * @param array|string $columns + * @return TModel + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @static + */ + public static function firstOrFail($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstOrFail($columns); + } + + /** + * Execute the query and get the first result or call a callback. + * + * @template TValue + * @param (\Closure(): TValue)|list $columns + * @param (\Closure(): TValue)|null $callback + * @return TModel|TValue + * @static + */ + public static function firstOr($columns = [], $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstOr($columns, $callback); + } + + /** + * Execute the query and get the first result if it's the sole matching record. + * + * @param array|string $columns + * @return TModel + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @throws \Illuminate\Database\MultipleRecordsFoundException + * @static + */ + public static function sole($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->sole($columns); + } + + /** + * Get a single column's value from the first result of a query. + * + * @param string|\Illuminate\Contracts\Database\Query\Expression $column + * @return mixed + * @static + */ + public static function value($column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->value($column); + } + + /** + * Get a single column's value from the first result of a query if it's the sole matching record. + * + * @param string|\Illuminate\Contracts\Database\Query\Expression $column + * @return mixed + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @throws \Illuminate\Database\MultipleRecordsFoundException + * @static + */ + public static function soleValue($column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->soleValue($column); + } + + /** + * Get a single column's value from the first result of the query or throw an exception. + * + * @param string|\Illuminate\Contracts\Database\Query\Expression $column + * @return mixed + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @static + */ + public static function valueOrFail($column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->valueOrFail($column); + } + + /** + * Execute the query as a "select" statement. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function get($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->get($columns); + } + + /** + * Get the hydrated models without eager loading. + * + * @param array|string $columns + * @return array + * @static + */ + public static function getModels($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getModels($columns); + } + + /** + * Eager load the relationships for the models. + * + * @param array $models + * @return array + * @static + */ + public static function eagerLoadRelations($models) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->eagerLoadRelations($models); + } + + /** + * Register a closure to be invoked after the query is executed. + * + * @param \Closure $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function afterQuery($callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->afterQuery($callback); + } + + /** + * Invoke the "after query" modification callbacks. + * + * @param mixed $result + * @return mixed + * @static + */ + public static function applyAfterQueryCallbacks($result) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->applyAfterQueryCallbacks($result); + } + + /** + * Get a lazy collection for the given query. + * + * @return \Illuminate\Support\LazyCollection + * @static + */ + public static function cursor() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->cursor(); + } + + /** + * Get a collection with the values of a given column. + * + * @param string|\Illuminate\Contracts\Database\Query\Expression $column + * @param string|null $key + * @return \Illuminate\Support\Collection + * @static + */ + public static function pluck($column, $key = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->pluck($column, $key); + } + + /** + * Paginate the given query. + * + * @param int|null|\Closure $perPage + * @param array|string $columns + * @param string $pageName + * @param int|null $page + * @param \Closure|int|null $total + * @return \Illuminate\Pagination\LengthAwarePaginator + * @throws \InvalidArgumentException + * @static + */ + public static function paginate($perPage = null, $columns = [], $pageName = 'page', $page = null, $total = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->paginate($perPage, $columns, $pageName, $page, $total); + } + + /** + * Paginate the given query into a simple paginator. + * + * @param int|null $perPage + * @param array|string $columns + * @param string $pageName + * @param int|null $page + * @return \Illuminate\Contracts\Pagination\Paginator + * @static + */ + public static function simplePaginate($perPage = null, $columns = [], $pageName = 'page', $page = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->simplePaginate($perPage, $columns, $pageName, $page); + } + + /** + * Paginate the given query into a cursor paginator. + * + * @param int|null $perPage + * @param array|string $columns + * @param string $cursorName + * @param \Illuminate\Pagination\Cursor|string|null $cursor + * @return \Illuminate\Contracts\Pagination\CursorPaginator + * @static + */ + public static function cursorPaginate($perPage = null, $columns = [], $cursorName = 'cursor', $cursor = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->cursorPaginate($perPage, $columns, $cursorName, $cursor); + } + + /** + * Save a new model and return the instance. + * + * @param array $attributes + * @return TModel + * @static + */ + public static function create($attributes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->create($attributes); + } + + /** + * Save a new model and return the instance without raising model events. + * + * @param array $attributes + * @return TModel + * @static + */ + public static function createQuietly($attributes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->createQuietly($attributes); + } + + /** + * Save a new model and return the instance. Allow mass-assignment. + * + * @param array $attributes + * @return TModel + * @static + */ + public static function forceCreate($attributes) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->forceCreate($attributes); + } + + /** + * Save a new model instance with mass assignment without raising model events. + * + * @param array $attributes + * @return TModel + * @static + */ + public static function forceCreateQuietly($attributes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->forceCreateQuietly($attributes); + } + + /** + * Insert new records or update the existing ones. + * + * @param array $values + * @param array|string $uniqueBy + * @param array|null $update + * @return int + * @static + */ + public static function upsert($values, $uniqueBy, $update = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->upsert($values, $uniqueBy, $update); + } + + /** + * Register a replacement for the default delete function. + * + * @param \Closure $callback + * @return void + * @static + */ + public static function onDelete($callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + $instance->onDelete($callback); + } + + /** + * Call the given local model scopes. + * + * @param array|string $scopes + * @return static|mixed + * @static + */ + public static function scopes($scopes) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->scopes($scopes); + } + + /** + * Apply the scopes to the Eloquent builder instance and return it. + * + * @return static + * @static + */ + public static function applyScopes() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->applyScopes(); + } + + /** + * Prevent the specified relations from being eager loaded. + * + * @param mixed $relations + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function without($relations) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->without($relations); + } + + /** + * Set the relationships that should be eager loaded while removing any previously added eager loading specifications. + * + * @param array): mixed)|string>|string $relations + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withOnly($relations) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withOnly($relations); + } + + /** + * Create a new instance of the model being queried. + * + * @param array $attributes + * @return TModel + * @static + */ + public static function newModelInstance($attributes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->newModelInstance($attributes); + } + + /** + * Specify attributes that should be added to any new models created by this builder. + * + * The given key / value pairs will also be added as where conditions to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|array|string $attributes + * @param mixed $value + * @param bool $asConditions + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withAttributes($attributes, $value = null, $asConditions = true) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withAttributes($attributes, $value, $asConditions); + } + + /** + * Apply query-time casts to the model instance. + * + * @param array $casts + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withCasts($casts) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withCasts($casts); + } + + /** + * Execute the given Closure within a transaction savepoint if needed. + * + * @template TModelValue + * @param \Closure(): TModelValue $scope + * @return TModelValue + * @static + */ + public static function withSavepointIfNeeded($scope) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withSavepointIfNeeded($scope); + } + + /** + * Get the underlying query builder instance. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function getQuery() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getQuery(); + } + + /** + * Set the underlying query builder instance. + * + * @param \Illuminate\Database\Query\Builder $query + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function setQuery($query) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->setQuery($query); + } + + /** + * Get a base query builder instance. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function toBase() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->toBase(); + } + + /** + * Get the relationships being eagerly loaded. + * + * @return array + * @static + */ + public static function getEagerLoads() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getEagerLoads(); + } + + /** + * Set the relationships being eagerly loaded. + * + * @param array $eagerLoad + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function setEagerLoads($eagerLoad) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->setEagerLoads($eagerLoad); + } + + /** + * Indicate that the given relationships should not be eagerly loaded. + * + * @param array $relations + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withoutEagerLoad($relations) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withoutEagerLoad($relations); + } + + /** + * Flush the relationships being eagerly loaded. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withoutEagerLoads() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withoutEagerLoads(); + } + + /** + * Get the "limit" value from the query or null if it's not set. + * + * @return mixed + * @static + */ + public static function getLimit() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getLimit(); + } + + /** + * Get the "offset" value from the query or null if it's not set. + * + * @return mixed + * @static + */ + public static function getOffset() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getOffset(); + } + + /** + * Get the model instance being queried. + * + * @return TModel + * @static + */ + public static function getModel() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getModel(); + } + + /** + * Set a model instance for the model being queried. + * + * @template TModelNew of \Illuminate\Database\Eloquent\Model + * @param TModelNew $model + * @return static + * @static + */ + public static function setModel($model) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->setModel($model); + } + + /** + * Get the given macro by name. + * + * @param string $name + * @return \Closure + * @static + */ + public static function getMacro($name) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getMacro($name); + } + + /** + * Checks if a macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->hasMacro($name); + } + + /** + * Get the given global macro by name. + * + * @param string $name + * @return \Closure + * @static + */ + public static function getGlobalMacro($name) + { + return \Illuminate\Database\Eloquent\Builder::getGlobalMacro($name); + } + + /** + * Checks if a global macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasGlobalMacro($name) + { + return \Illuminate\Database\Eloquent\Builder::hasGlobalMacro($name); + } + + /** + * Clone the Eloquent query builder. + * + * @return static + * @static + */ + public static function clone() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->clone(); + } + + /** + * Register a closure to be invoked on a clone. + * + * @param \Closure $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function onClone($callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->onClone($callback); + } + + /** + * Chunk the results of the query. + * + * @param int $count + * @param callable(\Illuminate\Support\Collection, int): mixed $callback + * @return bool + * @static + */ + public static function chunk($count, $callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->chunk($count, $callback); + } + + /** + * Run a map over each item while chunking. + * + * @template TReturn + * @param callable(TValue): TReturn $callback + * @param int $count + * @return \Illuminate\Support\Collection + * @static + */ + public static function chunkMap($callback, $count = 1000) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->chunkMap($callback, $count); + } + + /** + * Execute a callback over each item while chunking. + * + * @param callable(TValue, int): mixed $callback + * @param int $count + * @return bool + * @throws \RuntimeException + * @static + */ + public static function each($callback, $count = 1000) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->each($callback, $count); + } + + /** + * Chunk the results of a query by comparing IDs. + * + * @param int $count + * @param callable(\Illuminate\Support\Collection, int): mixed $callback + * @param string|null $column + * @param string|null $alias + * @return bool + * @static + */ + public static function chunkById($count, $callback, $column = null, $alias = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->chunkById($count, $callback, $column, $alias); + } + + /** + * Chunk the results of a query by comparing IDs in descending order. + * + * @param int $count + * @param callable(\Illuminate\Support\Collection, int): mixed $callback + * @param string|null $column + * @param string|null $alias + * @return bool + * @static + */ + public static function chunkByIdDesc($count, $callback, $column = null, $alias = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->chunkByIdDesc($count, $callback, $column, $alias); + } + + /** + * Chunk the results of a query by comparing IDs in a given order. + * + * @param int $count + * @param callable(\Illuminate\Support\Collection, int): mixed $callback + * @param string|null $column + * @param string|null $alias + * @param bool $descending + * @return bool + * @throws \RuntimeException + * @static + */ + public static function orderedChunkById($count, $callback, $column = null, $alias = null, $descending = false) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orderedChunkById($count, $callback, $column, $alias, $descending); + } + + /** + * Execute a callback over each item while chunking by ID. + * + * @param callable(TValue, int): mixed $callback + * @param int $count + * @param string|null $column + * @param string|null $alias + * @return bool + * @static + */ + public static function eachById($callback, $count = 1000, $column = null, $alias = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->eachById($callback, $count, $column, $alias); + } + + /** + * Query lazily, by chunks of the given size. + * + * @param int $chunkSize + * @return \Illuminate\Support\LazyCollection + * @throws \InvalidArgumentException + * @static + */ + public static function lazy($chunkSize = 1000) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->lazy($chunkSize); + } + + /** + * Query lazily, by chunking the results of a query by comparing IDs. + * + * @param int $chunkSize + * @param string|null $column + * @param string|null $alias + * @return \Illuminate\Support\LazyCollection + * @throws \InvalidArgumentException + * @static + */ + public static function lazyById($chunkSize = 1000, $column = null, $alias = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->lazyById($chunkSize, $column, $alias); + } + + /** + * Query lazily, by chunking the results of a query by comparing IDs in descending order. + * + * @param int $chunkSize + * @param string|null $column + * @param string|null $alias + * @return \Illuminate\Support\LazyCollection + * @throws \InvalidArgumentException + * @static + */ + public static function lazyByIdDesc($chunkSize = 1000, $column = null, $alias = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->lazyByIdDesc($chunkSize, $column, $alias); + } + + /** + * Execute the query and get the first result. + * + * @param array|string $columns + * @return TValue|null + * @static + */ + public static function first($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->first($columns); + } + + /** + * Execute the query and get the first result if it's the sole matching record. + * + * @param array|string $columns + * @return TValue + * @throws \Illuminate\Database\RecordsNotFoundException + * @throws \Illuminate\Database\MultipleRecordsFoundException + * @static + */ + public static function baseSole($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->baseSole($columns); + } + + /** + * Pass the query to a given callback and then return it. + * + * @param callable($this): mixed $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function tap($callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->tap($callback); + } + + /** + * Pass the query to a given callback and return the result. + * + * @template TReturn + * @param (callable($this): TReturn) $callback + * @return (TReturn is null|void ? $this : TReturn) + * @static + */ + public static function pipe($callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->pipe($callback); + } + + /** + * Apply the callback if the given "value" is (or resolves to) truthy. + * + * @template TWhenParameter + * @template TWhenReturnType + * @param (\Closure($this): TWhenParameter)|TWhenParameter|null $value + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $callback + * @param (callable($this, TWhenParameter): TWhenReturnType)|null $default + * @return $this|TWhenReturnType + * @static + */ + public static function when($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->when($value, $callback, $default); + } + + /** + * Apply the callback if the given "value" is (or resolves to) falsy. + * + * @template TUnlessParameter + * @template TUnlessReturnType + * @param (\Closure($this): TUnlessParameter)|TUnlessParameter|null $value + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $callback + * @param (callable($this, TUnlessParameter): TUnlessReturnType)|null $default + * @return $this|TUnlessReturnType + * @static + */ + public static function unless($value = null, $callback = null, $default = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->unless($value, $callback, $default); + } + + /** + * Add a relationship count / exists condition to the query. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @param string $boolean + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback + * @return \Illuminate\Database\Eloquent\Builder + * @throws \RuntimeException + * @static + */ + public static function has($relation, $operator = '>=', $count = 1, $boolean = 'and', $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->has($relation, $operator, $count, $boolean, $callback); + } + + /** + * Add a relationship count / exists condition to the query with an "or". + * + * @param \Illuminate\Database\Eloquent\Relations\Relation<*, *, *>|string $relation + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orHas($relation, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orHas($relation, $operator, $count); + } + + /** + * Add a relationship count / exists condition to the query. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param string $boolean + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function doesntHave($relation, $boolean = 'and', $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->doesntHave($relation, $boolean, $callback); + } + + /** + * Add a relationship count / exists condition to the query with an "or". + * + * @param \Illuminate\Database\Eloquent\Relations\Relation<*, *, *>|string $relation + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orDoesntHave($relation) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orDoesntHave($relation); + } + + /** + * Add a relationship count / exists condition to the query with where clauses. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereHas($relation, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereHas($relation, $callback, $operator, $count); + } + + /** + * Add a relationship count / exists condition to the query with where clauses. + * + * Also load the relationship with the same condition. + * + * @param string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Database\Eloquent\Relations\Relation<*, *, *>): mixed)|null $callback + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withWhereHas($relation, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withWhereHas($relation, $callback, $operator, $count); + } + + /** + * Add a relationship count / exists condition to the query with where clauses and an "or". + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereHas($relation, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereHas($relation, $callback, $operator, $count); + } + + /** + * Add a relationship count / exists condition to the query with where clauses. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereDoesntHave($relation, $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereDoesntHave($relation, $callback); + } + + /** + * Add a relationship count / exists condition to the query with where clauses and an "or". + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|null $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereDoesntHave($relation, $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereDoesntHave($relation, $callback); + } + + /** + * Add a polymorphic relationship count / exists condition to the query. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @param string $boolean + * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function hasMorph($relation, $types, $operator = '>=', $count = 1, $boolean = 'and', $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->hasMorph($relation, $types, $operator, $count, $boolean, $callback); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with an "or". + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation + * @param string|array $types + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orHasMorph($relation, $types, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orHasMorph($relation, $types, $operator, $count); + } + + /** + * Add a polymorphic relationship count / exists condition to the query. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param string $boolean + * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function doesntHaveMorph($relation, $types, $boolean = 'and', $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->doesntHaveMorph($relation, $types, $boolean, $callback); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with an "or". + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation + * @param string|array $types + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orDoesntHaveMorph($relation, $types) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orDoesntHaveMorph($relation, $types); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with where clauses. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereHasMorph($relation, $types, $callback, $operator, $count); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with where clauses and an "or". + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|int $count + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereHasMorph($relation, $types, $callback, $operator, $count); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with where clauses. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereDoesntHaveMorph($relation, $types, $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereDoesntHaveMorph($relation, $types, $callback); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with where clauses and an "or". + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param (\Closure(\Illuminate\Database\Eloquent\Builder, string): mixed)|null $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereDoesntHaveMorph($relation, $types, $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereDoesntHaveMorph($relation, $types, $callback); + } + + /** + * Add a basic where clause to a relationship query. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereRelation($relation, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereRelation($relation, $column, $operator, $value); + } + + /** + * Add a basic where clause to a relationship query and eager-load the relationship with the same conditions. + * + * @param \Illuminate\Database\Eloquent\Relations\Relation<*, *, *>|string $relation + * @param \Closure|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withWhereRelation($relation, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withWhereRelation($relation, $column, $operator, $value); + } + + /** + * Add an "or where" clause to a relationship query. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereRelation($relation, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereRelation($relation, $column, $operator, $value); + } + + /** + * Add a basic count / exists condition to a relationship query. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereDoesntHaveRelation($relation, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereDoesntHaveRelation($relation, $column, $operator, $value); + } + + /** + * Add an "or where" clause to a relationship query. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereDoesntHaveRelation($relation, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereDoesntHaveRelation($relation, $column, $operator, $value); + } + + /** + * Add a polymorphic relationship condition to the query with a where clause. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereMorphRelation($relation, $types, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereMorphRelation($relation, $types, $column, $operator, $value); + } + + /** + * Add a polymorphic relationship condition to the query with an "or where" clause. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereMorphRelation($relation, $types, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereMorphRelation($relation, $types, $column, $operator, $value); + } + + /** + * Add a polymorphic relationship condition to the query with a doesn't have clause. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereMorphDoesntHaveRelation($relation, $types, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereMorphDoesntHaveRelation($relation, $types, $column, $operator, $value); + } + + /** + * Add a polymorphic relationship condition to the query with an "or doesn't have" clause. + * + * @template TRelatedModel of \Illuminate\Database\Eloquent\Model + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param (\Closure(\Illuminate\Database\Eloquent\Builder): mixed)|string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereMorphDoesntHaveRelation($relation, $types, $column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereMorphDoesntHaveRelation($relation, $types, $column, $operator, $value); + } + + /** + * Add a morph-to relationship condition to the query. + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation + * @param \Illuminate\Database\Eloquent\Model|iterable|string|null $model + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function whereMorphedTo($relation, $model, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereMorphedTo($relation, $model, $boolean); + } + + /** + * Add a not morph-to relationship condition to the query. + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation + * @param \Illuminate\Database\Eloquent\Model|iterable|string $model + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function whereNotMorphedTo($relation, $model, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereNotMorphedTo($relation, $model, $boolean); + } + + /** + * Add a morph-to relationship condition to the query with an "or where" clause. + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation + * @param \Illuminate\Database\Eloquent\Model|iterable|string|null $model + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereMorphedTo($relation, $model) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereMorphedTo($relation, $model); + } + + /** + * Add a not morph-to relationship condition to the query with an "or where" clause. + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo<*, *>|string $relation + * @param \Illuminate\Database\Eloquent\Model|iterable|string $model + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNotMorphedTo($relation, $model) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereNotMorphedTo($relation, $model); + } + + /** + * Add a "belongs to" relationship where clause to the query. + * + * @param \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection $related + * @param string|null $relationshipName + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @throws \Illuminate\Database\Eloquent\RelationNotFoundException + * @static + */ + public static function whereBelongsTo($related, $relationshipName = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereBelongsTo($related, $relationshipName, $boolean); + } + + /** + * Add a "BelongsTo" relationship with an "or where" clause to the query. + * + * @param \Illuminate\Database\Eloquent\Model $related + * @param string|null $relationshipName + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereBelongsTo($related, $relationshipName = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereBelongsTo($related, $relationshipName); + } + + /** + * Add a "belongs to many" relationship where clause to the query. + * + * @param \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection $related + * @param string|null $relationshipName + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @throws \Illuminate\Database\Eloquent\RelationNotFoundException + * @static + */ + public static function whereAttachedTo($related, $relationshipName = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereAttachedTo($related, $relationshipName, $boolean); + } + + /** + * Add a "belongs to many" relationship with an "or where" clause to the query. + * + * @param \Illuminate\Database\Eloquent\Model $related + * @param string|null $relationshipName + * @return \Illuminate\Database\Eloquent\Builder + * @throws \RuntimeException + * @static + */ + public static function orWhereAttachedTo($related, $relationshipName = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereAttachedTo($related, $relationshipName); + } + + /** + * Add subselect queries to include an aggregate value for a relationship. + * + * @param mixed $relations + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param string|null $function + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withAggregate($relations, $column, $function = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withAggregate($relations, $column, $function); + } + + /** + * Add subselect queries to count the relations. + * + * @param mixed $relations + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withCount($relations) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withCount($relations); + } + + /** + * Add subselect queries to include the max of the relation's column. + * + * @param string|array $relation + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withMax($relation, $column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withMax($relation, $column); + } + + /** + * Add subselect queries to include the min of the relation's column. + * + * @param string|array $relation + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withMin($relation, $column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withMin($relation, $column); + } + + /** + * Add subselect queries to include the sum of the relation's column. + * + * @param string|array $relation + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withSum($relation, $column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withSum($relation, $column); + } + + /** + * Add subselect queries to include the average of the relation's column. + * + * @param string|array $relation + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withAvg($relation, $column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withAvg($relation, $column); + } + + /** + * Add subselect queries to include the existence of related models. + * + * @param string|array $relation + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function withExists($relation) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withExists($relation); + } + + /** + * Merge the where constraints from another query to the current query. + * + * @param \Illuminate\Database\Eloquent\Builder<*> $from + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function mergeConstraintsFrom($from) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->mergeConstraintsFrom($from); + } + + /** + * Set the columns to be selected. + * + * @param mixed $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function select($columns = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->select($columns); + } + + /** + * Add a subselect expression to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string $as + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function selectSub($query, $as) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->selectSub($query, $as); + } + + /** + * Add a select expression to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|literal-string $expression + * @param string $as + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function selectExpression($expression, $as) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->selectExpression($expression, $as); + } + + /** + * Add a new "raw" select expression to the query. + * + * @param literal-string $expression + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function selectRaw($expression, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->selectRaw($expression, $bindings); + } + + /** + * Makes "from" fetch from a subquery. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string $as + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function fromSub($query, $as) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->fromSub($query, $as); + } + + /** + * Add a raw "from" clause to the query. + * + * @param literal-string $expression + * @param mixed $bindings + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function fromRaw($expression, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->fromRaw($expression, $bindings); + } + + /** + * Add a new select column to the query. + * + * @param mixed $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function addSelect($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addSelect($column); + } + + /** + * Add a vector-similarity selection to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \Illuminate\Support\Collection|\Illuminate\Contracts\Support\Arrayable|array|string $vector + * @param string|null $as + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function selectVectorDistance($column, $vector, $as = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->selectVectorDistance($column, $vector, $as); + } + + /** + * Force the query to only return distinct results. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function distinct() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->distinct(); + } + + /** + * Set the table which the query is targeting. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $table + * @param string|null $as + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function from($table, $as = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->from($table, $as); + } + + /** + * Add an index hint to suggest a query index. + * + * @param string $index + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function useIndex($index) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->useIndex($index); + } + + /** + * Add an index hint to force a query index. + * + * @param string $index + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function forceIndex($index) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forceIndex($index); + } + + /** + * Add an index hint to ignore a query index. + * + * @param string $index + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function ignoreIndex($index) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->ignoreIndex($index); + } + + /** + * Add a "join" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @param string $type + * @param bool $where + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->join($table, $first, $operator, $second, $type, $where); + } + + /** + * Add a "join where" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string $second + * @param string $type + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function joinWhere($table, $first, $operator, $second, $type = 'inner') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->joinWhere($table, $first, $operator, $second, $type); + } + + /** + * Add a "subquery join" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string $as + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @param string $type + * @param bool $where + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->joinSub($query, $as, $first, $operator, $second, $type, $where); + } + + /** + * Add a "lateral join" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function joinLateral($query, $as, $type = 'inner') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->joinLateral($query, $as, $type); + } + + /** + * Add a lateral left join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function leftJoinLateral($query, $as) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->leftJoinLateral($query, $as); + } + + /** + * Add a left join to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function leftJoin($table, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->leftJoin($table, $first, $operator, $second); + } + + /** + * Add a "join where" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function leftJoinWhere($table, $first, $operator, $second) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->leftJoinWhere($table, $first, $operator, $second); + } + + /** + * Add a subquery left join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string $as + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function leftJoinSub($query, $as, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->leftJoinSub($query, $as, $first, $operator, $second); + } + + /** + * Add a right join to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function rightJoin($table, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->rightJoin($table, $first, $operator, $second); + } + + /** + * Add a "right join where" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function rightJoinWhere($table, $first, $operator, $second) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->rightJoinWhere($table, $first, $operator, $second); + } + + /** + * Add a subquery right join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string $as + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function rightJoinSub($query, $as, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->rightJoinSub($query, $as, $first, $operator, $second); + } + + /** + * Add a "cross join" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string|null $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function crossJoin($table, $first = null, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->crossJoin($table, $first, $operator, $second); + } + + /** + * Add a subquery cross join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string $as + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function crossJoinSub($query, $as) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->crossJoinSub($query, $as); + } + + /** + * Add a straight join to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function straightJoin($table, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->straightJoin($table, $first, $operator, $second); + } + + /** + * Add a "straight join where" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $table + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function straightJoinWhere($table, $first, $operator, $second) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->straightJoinWhere($table, $first, $operator, $second); + } + + /** + * Add a subquery straight join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @param string $as + * @param \Closure|\Illuminate\Contracts\Database\Query\Expression|string $first + * @param string|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function straightJoinSub($query, $as, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->straightJoinSub($query, $as, $first, $operator, $second); + } + + /** + * Merge an array of "where" clauses and bindings. + * + * @param array $wheres + * @param array $bindings + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function mergeWheres($wheres, $bindings) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->mergeWheres($wheres, $bindings); + } + + /** + * Prepare the value and operator for a where clause. + * + * @param string $value + * @param string $operator + * @param bool $useDefault + * @return array + * @throws \InvalidArgumentException + * @static + */ + public static function prepareValueAndOperator($value, $operator, $useDefault = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->prepareValueAndOperator($value, $operator, $useDefault); + } + + /** + * Add a "where" clause comparing two columns to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string|array $first + * @param string|null $operator + * @param string|null $second + * @param string|null $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereColumn($first, $operator = null, $second = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereColumn($first, $operator, $second, $boolean); + } + + /** + * Add an "or where" clause comparing two columns to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string|array $first + * @param string|null $operator + * @param string|null $second + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereColumn($first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereColumn($first, $operator, $second); + } + + /** + * Add a vector similarity clause to the query, filtering by minimum similarity and ordering by similarity. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \Illuminate\Support\Collection|\Illuminate\Contracts\Support\Arrayable|array|string $vector + * @param float $minSimilarity A value between 0.0 and 1.0, where 1.0 is identical. + * @param bool $order + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereVectorSimilarTo($column, $vector, $minSimilarity = 0.6, $order = true) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereVectorSimilarTo($column, $vector, $minSimilarity, $order); + } + + /** + * Add a vector distance "where" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \Illuminate\Support\Collection|\Illuminate\Contracts\Support\Arrayable|array|string $vector + * @param float $maxDistance + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereVectorDistanceLessThan($column, $vector, $maxDistance, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereVectorDistanceLessThan($column, $vector, $maxDistance, $boolean); + } + + /** + * Add a vector distance "or where" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \Illuminate\Support\Collection|\Illuminate\Contracts\Support\Arrayable|array|string $vector + * @param float $maxDistance + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereVectorDistanceLessThan($column, $vector, $maxDistance) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereVectorDistanceLessThan($column, $vector, $maxDistance); + } + + /** + * Add a raw "where" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|literal-string $sql + * @param mixed $bindings + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereRaw($sql, $bindings = [], $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereRaw($sql, $bindings, $boolean); + } + + /** + * Add a raw "or where" clause to the query. + * + * @param literal-string $sql + * @param mixed $bindings + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereRaw($sql, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereRaw($sql, $bindings); + } + + /** + * Add a "where like" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $value + * @param bool $caseSensitive + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereLike($column, $value, $caseSensitive = false, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereLike($column, $value, $caseSensitive, $boolean, $not); + } + + /** + * Add an "or where like" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $value + * @param bool $caseSensitive + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereLike($column, $value, $caseSensitive = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereLike($column, $value, $caseSensitive); + } + + /** + * Add a "where not like" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $value + * @param bool $caseSensitive + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNotLike($column, $value, $caseSensitive = false, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotLike($column, $value, $caseSensitive, $boolean); + } + + /** + * Add an "or where not like" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $value + * @param bool $caseSensitive + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNotLike($column, $value, $caseSensitive = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotLike($column, $value, $caseSensitive); + } + + /** + * Add a "where null safe equals" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNullSafeEquals($column, $value, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNullSafeEquals($column, $value, $boolean); + } + + /** + * Add an "or where null safe equals" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNullSafeEquals($column, $value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNullSafeEquals($column, $value); + } + + /** + * Add a "where in" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param mixed $values + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function whereIn($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereIn($column, $values, $boolean, $not); + } + + /** + * Add an "or where in" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param mixed $values + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereIn($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereIn($column, $values); + } + + /** + * Add a "where not in" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param mixed $values + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNotIn($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotIn($column, $values, $boolean); + } + + /** + * Add an "or where not in" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param mixed $values + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNotIn($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotIn($column, $values); + } + + /** + * Add a "where in raw" clause for integer values to the query. + * + * @param string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereIntegerInRaw($column, $values, $boolean, $not); + } + + /** + * Add an "or where in raw" clause for integer values to the query. + * + * @param string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereIntegerInRaw($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereIntegerInRaw($column, $values); + } + + /** + * Add a "where not in raw" clause for integer values to the query. + * + * @param string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereIntegerNotInRaw($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereIntegerNotInRaw($column, $values, $boolean); + } + + /** + * Add an "or where not in raw" clause for integer values to the query. + * + * @param string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereIntegerNotInRaw($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereIntegerNotInRaw($column, $values); + } + + /** + * Add a "where null" clause to the query. + * + * @param string|array|\Illuminate\Contracts\Database\Query\Expression $columns + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNull($columns, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNull($columns, $boolean, $not); + } + + /** + * Add an "or where null" clause to the query. + * + * @param string|array|\Illuminate\Contracts\Database\Query\Expression $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNull($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNull($column); + } + + /** + * Add a "where not null" clause to the query. + * + * @param string|array|\Illuminate\Contracts\Database\Query\Expression $columns + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNotNull($columns, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotNull($columns, $boolean); + } + + /** + * Add a "where between" statement to the query. + * + * @param \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereBetween($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereBetween($column, $values, $boolean, $not); + } + + /** + * Add a "where between" statement using columns to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereBetweenColumns($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereBetweenColumns($column, $values, $boolean, $not); + } + + /** + * Add an "or where between" statement to the query. + * + * @param \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereBetween($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereBetween($column, $values); + } + + /** + * Add an "or where between" statement using columns to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereBetweenColumns($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereBetweenColumns($column, $values); + } + + /** + * Add a "where not between" statement to the query. + * + * @param \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNotBetween($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotBetween($column, $values, $boolean); + } + + /** + * Add a "where not between" statement using columns to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNotBetweenColumns($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotBetweenColumns($column, $values, $boolean); + } + + /** + * Add an "or where not between" statement to the query. + * + * @param \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNotBetween($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotBetween($column, $values); + } + + /** + * Add an "or where not between" statement using columns to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNotBetweenColumns($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotBetweenColumns($column, $values); + } + + /** + * Add a "where between columns" statement using a value to the query. + * + * @param mixed $value + * @param array{\Illuminate\Contracts\Database\Query\Expression|string, \Illuminate\Contracts\Database\Query\Expression|string} $columns + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereValueBetween($value, $columns, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereValueBetween($value, $columns, $boolean, $not); + } + + /** + * Add an "or where between columns" statement using a value to the query. + * + * @param mixed $value + * @param array{\Illuminate\Contracts\Database\Query\Expression|string, \Illuminate\Contracts\Database\Query\Expression|string} $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereValueBetween($value, $columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereValueBetween($value, $columns); + } + + /** + * Add a "where not between columns" statement using a value to the query. + * + * @param mixed $value + * @param array{\Illuminate\Contracts\Database\Query\Expression|string, \Illuminate\Contracts\Database\Query\Expression|string} $columns + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereValueNotBetween($value, $columns, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereValueNotBetween($value, $columns, $boolean); + } + + /** + * Add an "or where not between columns" statement using a value to the query. + * + * @param mixed $value + * @param array{\Illuminate\Contracts\Database\Query\Expression|string, \Illuminate\Contracts\Database\Query\Expression|string} $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereValueNotBetween($value, $columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereValueNotBetween($value, $columns); + } + + /** + * Add an "or where not null" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNotNull($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotNull($column); + } + + /** + * Add a "where date" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|null $operator + * @param \DateTimeInterface|string|null $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereDate($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereDate($column, $operator, $value, $boolean); + } + + /** + * Add an "or where date" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|null $operator + * @param \DateTimeInterface|string|null $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereDate($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereDate($column, $operator, $value); + } + + /** + * Add a "where time" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|null $operator + * @param \DateTimeInterface|string|null $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereTime($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereTime($column, $operator, $value, $boolean); + } + + /** + * Add an "or where time" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|null $operator + * @param \DateTimeInterface|string|null $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereTime($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereTime($column, $operator, $value); + } + + /** + * Add a "where day" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|int|null $operator + * @param \DateTimeInterface|string|int|null $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereDay($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereDay($column, $operator, $value, $boolean); + } + + /** + * Add an "or where day" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|int|null $operator + * @param \DateTimeInterface|string|int|null $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereDay($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereDay($column, $operator, $value); + } + + /** + * Add a "where month" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|int|null $operator + * @param \DateTimeInterface|string|int|null $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereMonth($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereMonth($column, $operator, $value, $boolean); + } + + /** + * Add an "or where month" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|int|null $operator + * @param \DateTimeInterface|string|int|null $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereMonth($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereMonth($column, $operator, $value); + } + + /** + * Add a "where year" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|int|null $operator + * @param \DateTimeInterface|string|int|null $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereYear($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereYear($column, $operator, $value, $boolean); + } + + /** + * Add an "or where year" statement to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \DateTimeInterface|string|int|null $operator + * @param \DateTimeInterface|string|int|null $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereYear($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereYear($column, $operator, $value); + } + + /** + * Add a nested "where" statement to the query. + * + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNested($callback, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNested($callback, $boolean); + } + + /** + * Create a new query instance for nested where condition. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function forNestedWhere() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forNestedWhere(); + } + + /** + * Add another query builder as a nested where to the query builder. + * + * @param \Illuminate\Database\Query\Builder $query + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function addNestedWhereQuery($query, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addNestedWhereQuery($query, $boolean); + } + + /** + * Add an "exists" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $callback + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereExists($callback, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereExists($callback, $boolean, $not); + } + + /** + * Add an "or where exists" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $callback + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereExists($callback, $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereExists($callback, $not); + } + + /** + * Add a "where not exists" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $callback + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNotExists($callback, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotExists($callback, $boolean); + } + + /** + * Add an "or where not exists" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $callback + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNotExists($callback) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotExists($callback); + } + + /** + * Add an "exists" clause to the query. + * + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function addWhereExistsQuery($query, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addWhereExistsQuery($query, $boolean, $not); + } + + /** + * Adds a where condition using row values. + * + * @param array $columns + * @param string $operator + * @param array $values + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function whereRowValues($columns, $operator, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereRowValues($columns, $operator, $values, $boolean); + } + + /** + * Adds an or where condition using row values. + * + * @param array $columns + * @param string $operator + * @param array $values + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereRowValues($columns, $operator, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereRowValues($columns, $operator, $values); + } + + /** + * Add a "where JSON contains" clause to the query. + * + * @param string $column + * @param mixed $value + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereJsonContains($column, $value, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonContains($column, $value, $boolean, $not); + } + + /** + * Add an "or where JSON contains" clause to the query. + * + * @param string $column + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereJsonContains($column, $value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonContains($column, $value); + } + + /** + * Add a "where JSON not contains" clause to the query. + * + * @param string $column + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereJsonDoesntContain($column, $value, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonDoesntContain($column, $value, $boolean); + } + + /** + * Add an "or where JSON not contains" clause to the query. + * + * @param string $column + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereJsonDoesntContain($column, $value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonDoesntContain($column, $value); + } + + /** + * Add a "where JSON overlaps" clause to the query. + * + * @param string $column + * @param mixed $value + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereJsonOverlaps($column, $value, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonOverlaps($column, $value, $boolean, $not); + } + + /** + * Add an "or where JSON overlaps" clause to the query. + * + * @param string $column + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereJsonOverlaps($column, $value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonOverlaps($column, $value); + } + + /** + * Add a "where JSON not overlap" clause to the query. + * + * @param string $column + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereJsonDoesntOverlap($column, $value, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonDoesntOverlap($column, $value, $boolean); + } + + /** + * Add an "or where JSON not overlap" clause to the query. + * + * @param string $column + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereJsonDoesntOverlap($column, $value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonDoesntOverlap($column, $value); + } + + /** + * Add a clause that determines if a JSON path exists to the query. + * + * @param string $column + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereJsonContainsKey($column, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonContainsKey($column, $boolean, $not); + } + + /** + * Add an "or" clause that determines if a JSON path exists to the query. + * + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereJsonContainsKey($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonContainsKey($column); + } + + /** + * Add a clause that determines if a JSON path does not exist to the query. + * + * @param string $column + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereJsonDoesntContainKey($column, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonDoesntContainKey($column, $boolean); + } + + /** + * Add an "or" clause that determines if a JSON path does not exist to the query. + * + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereJsonDoesntContainKey($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonDoesntContainKey($column); + } + + /** + * Add a "where JSON length" clause to the query. + * + * @param string $column + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereJsonLength($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonLength($column, $operator, $value, $boolean); + } + + /** + * Add an "or where JSON length" clause to the query. + * + * @param string $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereJsonLength($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonLength($column, $operator, $value); + } + + /** + * Handles dynamic "where" clauses to the query. + * + * @param string $method + * @param array $parameters + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function dynamicWhere($method, $parameters) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->dynamicWhere($method, $parameters); + } + + /** + * Add a "where fulltext" clause to the query. + * + * @param string|string[] $columns + * @param string $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereFullText($columns, $value, $options = [], $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereFullText($columns, $value, $options, $boolean); + } + + /** + * Add an "or where fulltext" clause to the query. + * + * @param string|string[] $columns + * @param string $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereFullText($columns, $value, $options = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereFullText($columns, $value, $options); + } + + /** + * Add a "where" clause to the query for multiple columns with "and" conditions between them. + * + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereAll($columns, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereAll($columns, $operator, $value, $boolean); + } + + /** + * Add an "or where" clause to the query for multiple columns with "and" conditions between them. + * + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereAll($columns, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereAll($columns, $operator, $value); + } + + /** + * Add a "where" clause to the query for multiple columns with "or" conditions between them. + * + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereAny($columns, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereAny($columns, $operator, $value, $boolean); + } + + /** + * Add an "or where" clause to the query for multiple columns with "or" conditions between them. + * + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereAny($columns, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereAny($columns, $operator, $value); + } + + /** + * Add a "where not" clause to the query for multiple columns where none of the conditions should be true. + * + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNone($columns, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNone($columns, $operator, $value, $boolean); + } + + /** + * Add an "or where not" clause to the query for multiple columns where none of the conditions should be true. + * + * @param \Illuminate\Contracts\Database\Query\Expression[]|\Closure[]|string[] $columns + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNone($columns, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNone($columns, $operator, $value); + } + + /** + * Add a "group by" clause to the query. + * + * @param array|\Illuminate\Contracts\Database\Query\Expression|string $groups + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function groupBy(...$groups) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->groupBy(...$groups); + } + + /** + * Add a raw "groupBy" clause to the query. + * + * @param literal-string $sql + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function groupByRaw($sql, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->groupByRaw($sql, $bindings); + } + + /** + * Add a "having" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|\Closure|string $column + * @param \DateTimeInterface|string|int|float|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|\DateTimeInterface|string|int|float|null $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function having($column, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->having($column, $operator, $value, $boolean); + } + + /** + * Add an "or having" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|\Closure|string $column + * @param \DateTimeInterface|string|int|float|null $operator + * @param \Illuminate\Contracts\Database\Query\Expression|\DateTimeInterface|string|int|float|null $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orHaving($column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orHaving($column, $operator, $value); + } + + /** + * Add a nested "having" statement to the query. + * + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function havingNested($callback, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->havingNested($callback, $boolean); + } + + /** + * Add another query builder as a nested having to the query builder. + * + * @param \Illuminate\Database\Query\Builder $query + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function addNestedHavingQuery($query, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addNestedHavingQuery($query, $boolean); + } + + /** + * Add a "having null" clause to the query. + * + * @param array|string $columns + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function havingNull($columns, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->havingNull($columns, $boolean, $not); + } + + /** + * Add an "or having null" clause to the query. + * + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orHavingNull($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orHavingNull($column); + } + + /** + * Add a "having not null" clause to the query. + * + * @param array|string $columns + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function havingNotNull($columns, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->havingNotNull($columns, $boolean); + } + + /** + * Add an "or having not null" clause to the query. + * + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orHavingNotNull($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orHavingNotNull($column); + } + + /** + * Add a "having between" clause to the query. + * + * @param string $column + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function havingBetween($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->havingBetween($column, $values, $boolean, $not); + } + + /** + * Add a "having not between" clause to the query. + * + * @param string $column + * @param iterable $values + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function havingNotBetween($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->havingNotBetween($column, $values, $boolean); + } + + /** + * Add an "or having between" clause to the query. + * + * @param string $column + * @param iterable $values + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orHavingBetween($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orHavingBetween($column, $values); + } + + /** + * Add an "or having not between" clause to the query. + * + * @param string $column + * @param iterable $values + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orHavingNotBetween($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orHavingNotBetween($column, $values); + } + + /** + * Add a raw "having" clause to the query. + * + * @param literal-string $sql + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function havingRaw($sql, $bindings = [], $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->havingRaw($sql, $bindings, $boolean); + } + + /** + * Add a raw "or having" clause to the query. + * + * @param literal-string $sql + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orHavingRaw($sql, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orHavingRaw($sql, $bindings); + } + + /** + * Add an "order by" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column + * @param string $direction + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function orderBy($column, $direction = 'asc') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orderBy($column, $direction); + } + + /** + * Add a descending "order by" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|\Illuminate\Contracts\Database\Query\Expression|string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orderByDesc($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orderByDesc($column); + } + + /** + * Add a vector-distance "order by" clause to the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \Illuminate\Support\Collection|\Illuminate\Contracts\Support\Arrayable|array $vector + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orderByVectorDistance($column, $vector) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orderByVectorDistance($column, $vector); + } + + /** + * Put the query's results in random order. + * + * @param string|int $seed + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function inRandomOrder($seed = '') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->inRandomOrder($seed); + } + + /** + * Add an "order by" clause to order results by a given sequence of values. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function inOrderOf($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->inOrderOf($column, $values); + } + + /** + * Add a raw "order by" clause to the query. + * + * @param literal-string $sql + * @param array $bindings + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orderByRaw($sql, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orderByRaw($sql, $bindings); + } + + /** + * Alias to set the "offset" value of the query. + * + * @param int $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function skip($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->skip($value); + } + + /** + * Set the "offset" value of the query. + * + * @param int $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function offset($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->offset($value); + } + + /** + * Alias to set the "limit" value of the query. + * + * @param int $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function take($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->take($value); + } + + /** + * Set the "limit" value of the query. + * + * @param int $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function limit($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->limit($value); + } + + /** + * Add a "group limit" clause to the query. + * + * @param int $value + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function groupLimit($value, $column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->groupLimit($value, $column); + } + + /** + * Set the limit and offset for a given page. + * + * @param int $page + * @param int $perPage + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function forPage($page, $perPage = 15) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forPage($page, $perPage); + } + + /** + * Constrain the query to the previous "page" of results before a given ID. + * + * @param int $perPage + * @param int|null $lastId + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forPageBeforeId($perPage, $lastId, $column); + } + + /** + * Constrain the query to the next "page" of results after a given ID. + * + * @param int $perPage + * @param int|null $lastId + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forPageAfterId($perPage, $lastId, $column); + } + + /** + * Remove all existing orders and optionally add a new order. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Contracts\Database\Query\Expression|string|null $column + * @param string $direction + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function reorder($column = null, $direction = 'asc') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->reorder($column, $direction); + } + + /** + * Add descending "reorder" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Contracts\Database\Query\Expression|string|null $column + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function reorderDesc($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->reorderDesc($column); + } + + /** + * Add a "union" statement to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $query + * @param bool $all + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function union($query, $all = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->union($query, $all); + } + + /** + * Add a "union all" statement to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*> $query + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function unionAll($query) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->unionAll($query); + } + + /** + * Lock the selected rows in the table. + * + * @param string|bool $value + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function lock($value = true) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->lock($value); + } + + /** + * Lock the selected rows in the table for updating. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function lockForUpdate() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->lockForUpdate(); + } + + /** + * Share lock the selected rows in the table. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function sharedLock() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->sharedLock(); + } + + /** + * Set a query execution timeout in seconds. + * + * @param int|null $seconds + * @return \Illuminate\Database\Eloquent\Builder + * @throws InvalidArgumentException + * @static + */ + public static function timeout($seconds) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->timeout($seconds); + } + + /** + * Register a closure to be invoked before the query is executed. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function beforeQuery($callback) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->beforeQuery($callback); + } + + /** + * Invoke the "before query" modification callbacks. + * + * @return void + * @static + */ + public static function applyBeforeQueryCallbacks() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + $instance->applyBeforeQueryCallbacks(); + } + + /** + * Get the SQL representation of the query. + * + * @return string + * @static + */ + public static function toSql() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->toSql(); + } + + /** + * Get the raw SQL representation of the query with embedded bindings. + * + * @return string + * @static + */ + public static function toRawSql() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->toRawSql(); + } + + /** + * Get a single expression value from the first result of a query. + * + * @param literal-string $expression + * @return mixed + * @static + */ + public static function rawValue($expression, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->rawValue($expression, $bindings); + } + + /** + * Get the count of the total records for the paginator. + * + * @param array $columns + * @return int<0, max> + * @static + */ + public static function getCountForPagination($columns = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getCountForPagination($columns); + } + + /** + * Concatenate values of a given column as a string. + * + * @param string $column + * @param string $glue + * @return string + * @static + */ + public static function implode($column, $glue = '') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->implode($column, $glue); + } + + /** + * Determine if any rows exist for the current query. + * + * @return bool + * @static + */ + public static function exists() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->exists(); + } + + /** + * Determine if no rows exist for the current query. + * + * @return bool + * @static + */ + public static function doesntExist() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->doesntExist(); + } + + /** + * Execute the given callback if no rows exist for the current query. + * + * @return mixed + * @static + */ + public static function existsOr($callback) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->existsOr($callback); + } + + /** + * Execute the given callback if rows exist for the current query. + * + * @return mixed + * @static + */ + public static function doesntExistOr($callback) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->doesntExistOr($callback); + } + + /** + * Retrieve the "count" result of the query. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $columns + * @return int<0, max> + * @static + */ + public static function count($columns = '*') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->count($columns); + } + + /** + * Retrieve the minimum value of a given column. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return mixed + * @static + */ + public static function min($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->min($column); + } + + /** + * Retrieve the maximum value of a given column. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return mixed + * @static + */ + public static function max($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->max($column); + } + + /** + * Retrieve the sum of the values of a given column. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return mixed + * @static + */ + public static function sum($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->sum($column); + } + + /** + * Retrieve the average of the values of a given column. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return mixed + * @static + */ + public static function avg($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->avg($column); + } + + /** + * Alias for the "avg" method. + * + * @param \Illuminate\Contracts\Database\Query\Expression|string $column + * @return mixed + * @static + */ + public static function average($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->average($column); + } + + /** + * Execute an aggregate function on the database. + * + * @param string $function + * @param array $columns + * @return mixed + * @static + */ + public static function aggregate($function, $columns = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->aggregate($function, $columns); + } + + /** + * Execute a numeric aggregate function on the database. + * + * @param string $function + * @param array $columns + * @return float|int + * @static + */ + public static function numericAggregate($function, $columns = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->numericAggregate($function, $columns); + } + + /** + * Insert new records into the database. + * + * @return bool + * @static + */ + public static function insert($values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insert($values); + } + + /** + * Insert new records into the database while ignoring errors. + * + * @return int<0, max> + * @static + */ + public static function insertOrIgnore($values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insertOrIgnore($values); + } + + /** + * Insert new records into the database and returning specified columns with optional ignoring specific conflicts. + * + * @param non-empty-array $returning + * @param non-empty-string|non-empty-array|null $uniqueBy + * @return \Illuminate\Support\Collection + * @static + */ + public static function insertOrIgnoreReturning($values, $returning = [], $uniqueBy = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insertOrIgnoreReturning($values, $returning, $uniqueBy); + } + + /** + * Insert a new record and get the value of the primary key. + * + * @param string|null $sequence + * @return int + * @static + */ + public static function insertGetId($values, $sequence = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insertGetId($values, $sequence); + } + + /** + * Insert new records into the table using a subquery. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @return int + * @static + */ + public static function insertUsing($columns, $query) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insertUsing($columns, $query); + } + + /** + * Insert new records into the table using a subquery while ignoring errors. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder<*>|string $query + * @return int + * @static + */ + public static function insertOrIgnoreUsing($columns, $query) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insertOrIgnoreUsing($columns, $query); + } + + /** + * Update records in a PostgreSQL database using the update from syntax. + * + * @return int + * @throws \LogicException + * @static + */ + public static function updateFrom($values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->updateFrom($values); + } + + /** + * Insert or update a record matching the attributes, and fill it with values. + * + * @return bool + * @static + */ + public static function updateOrInsert($attributes, $values = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->updateOrInsert($attributes, $values); + } + + /** + * Increment the given column's values by the given amounts. + * + * @param array $columns + * @param array $extra + * @return int<0, max> + * @throws \InvalidArgumentException + * @static + */ + public static function incrementEach($columns, $extra = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->incrementEach($columns, $extra); + } + + /** + * Decrement the given column's values by the given amounts. + * + * @param array $columns + * @param array $extra + * @return int<0, max> + * @throws \InvalidArgumentException + * @static + */ + public static function decrementEach($columns, $extra = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->decrementEach($columns, $extra); + } + + /** + * Run a "truncate" statement on the table. + * + * @return void + * @static + */ + public static function truncate() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + $instance->truncate(); + } + + /** + * Get all of the query builder's columns in a text-only array with all expressions evaluated. + * + * @return list + * @static + */ + public static function getColumns() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getColumns(); + } + + /** + * Create a raw database expression. + * + * @param literal-string|int|float $value + * @return \Illuminate\Contracts\Database\Query\Expression + * @static + */ + public static function raw($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->raw($value); + } + + /** + * Get the current query value bindings in a flattened array. + * + * @return list + * @static + */ + public static function getBindings() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getBindings(); + } + + /** + * Get the raw array of bindings. + * + * @return \Illuminate\Database\Query\array{ select: list, + * from: list, + * join: list, + * where: list, + * groupBy: list, + * having: list, + * order: list, + * union: list, + * unionOrder: list, + * } + * @static + */ + public static function getRawBindings() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getRawBindings(); + } + + /** + * Set the bindings on the query builder. + * + * @param list $bindings + * @param "select"|"from"|"join"|"where"|"groupBy"|"having"|"order"|"union"|"unionOrder" $type + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function setBindings($bindings, $type = 'where') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->setBindings($bindings, $type); + } + + /** + * Add a binding to the query. + * + * @param mixed $value + * @param "select"|"from"|"join"|"where"|"groupBy"|"having"|"order"|"union"|"unionOrder" $type + * @return \Illuminate\Database\Eloquent\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function addBinding($value, $type = 'where') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addBinding($value, $type); + } + + /** + * Cast the given binding value. + * + * @param mixed $value + * @return mixed + * @static + */ + public static function castBinding($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->castBinding($value); + } + + /** + * Merge an array of bindings into our bindings. + * + * @param self $query + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function mergeBindings($query) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->mergeBindings($query); + } + + /** + * Remove all of the expressions from a list of bindings. + * + * @param array $bindings + * @return list + * @static + */ + public static function cleanBindings($bindings) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->cleanBindings($bindings); + } + + /** + * Get the database query processor instance. + * + * @return \Illuminate\Database\Query\Processors\Processor + * @static + */ + public static function getProcessor() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getProcessor(); + } + + /** + * Get the query grammar instance. + * + * @return \Illuminate\Database\Query\Grammars\Grammar + * @static + */ + public static function getGrammar() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getGrammar(); + } + + /** + * Use the "write" PDO connection when executing the query. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function useWritePdo() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->useWritePdo(); + } + + /** + * Specify arguments for the PDOStatement::fetchAll / fetch functions. + * + * @param mixed $fetchUsing + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function fetchUsing(...$fetchUsing) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->fetchUsing(...$fetchUsing); + } + + /** + * Clone the query without the given properties. + * + * @return static + * @static + */ + public static function cloneWithout($properties) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->cloneWithout($properties); + } + + /** + * Clone the query without the given bindings. + * + * @return static + * @static + */ + public static function cloneWithoutBindings($except) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->cloneWithoutBindings($except); + } + + /** + * Dump the current SQL and bindings. + * + * @param mixed $args + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function dump(...$args) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->dump(...$args); + } + + /** + * Dump the raw current SQL with embedded bindings. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function dumpRawSql() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->dumpRawSql(); + } + + /** + * Die and dump the current SQL and bindings. + * + * @return never + * @static + */ + public static function dd() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->dd(); + } + + /** + * Die and dump the current SQL with embedded bindings. + * + * @return never + * @static + */ + public static function ddRawSql() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->ddRawSql(); + } + + /** + * Add a where clause to determine if a "date" column is in the past to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function wherePast($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->wherePast($columns); + } + + /** + * Add a where clause to determine if a "date" column is in the past or now to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNowOrPast($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNowOrPast($columns); + } + + /** + * Add an "or where" clause to determine if a "date" column is in the past to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWherePast($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWherePast($columns); + } + + /** + * Add a where clause to determine if a "date" column is in the past or now to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNowOrPast($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNowOrPast($columns); + } + + /** + * Add a where clause to determine if a "date" column is in the future to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereFuture($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereFuture($columns); + } + + /** + * Add a where clause to determine if a "date" column is in the future or now to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereNowOrFuture($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNowOrFuture($columns); + } + + /** + * Add an "or where" clause to determine if a "date" column is in the future to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereFuture($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereFuture($columns); + } + + /** + * Add an "or where" clause to determine if a "date" column is in the future or now to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereNowOrFuture($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNowOrFuture($columns); + } + + /** + * Add a "where date" clause to determine if a "date" column is today to the query. + * + * @param array|string $columns + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereToday($columns, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereToday($columns, $boolean); + } + + /** + * Add a "where date" clause to determine if a "date" column is before today. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereBeforeToday($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereBeforeToday($columns); + } + + /** + * Add a "where date" clause to determine if a "date" column is today or before to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereTodayOrBefore($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereTodayOrBefore($columns); + } + + /** + * Add a "where date" clause to determine if a "date" column is after today. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereAfterToday($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereAfterToday($columns); + } + + /** + * Add a "where date" clause to determine if a "date" column is today or after to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function whereTodayOrAfter($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereTodayOrAfter($columns); + } + + /** + * Add an "or where date" clause to determine if a "date" column is today to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereToday($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereToday($columns); + } + + /** + * Add an "or where date" clause to determine if a "date" column is before today. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereBeforeToday($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereBeforeToday($columns); + } + + /** + * Add an "or where date" clause to determine if a "date" column is today or before to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereTodayOrBefore($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereTodayOrBefore($columns); + } + + /** + * Add an "or where date" clause to determine if a "date" column is after today. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereAfterToday($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereAfterToday($columns); + } + + /** + * Add an "or where date" clause to determine if a "date" column is today or after to the query. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function orWhereTodayOrAfter($columns) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereTodayOrAfter($columns); + } + + /** + * Explains the query. + * + * @return \Illuminate\Support\Collection + * @static + */ + public static function explain() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->explain(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @param-closure-this static $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Database\Query\Builder::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Database\Query\Builder::mixin($mixin, $replace); + } + + /** + * Flush the existing macros. + * + * @return void + * @static + */ + public static function flushMacros() + { + \Illuminate\Database\Query\Builder::flushMacros(); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->macroCall($method, $parameters); + } + +} + class Event extends \Illuminate\Support\Facades\Event {} + class File extends \Illuminate\Support\Facades\File {} + class Gate extends \Illuminate\Support\Facades\Gate {} + class Hash extends \Illuminate\Support\Facades\Hash {} + class Http extends \Illuminate\Support\Facades\Http {} + class Js extends \Illuminate\Support\Js {} + class Lang extends \Illuminate\Support\Facades\Lang {} + class Log extends \Illuminate\Support\Facades\Log {} + class Mail extends \Illuminate\Support\Facades\Mail {} + class Notification extends \Illuminate\Support\Facades\Notification {} + class Number extends \Illuminate\Support\Number {} + class Password extends \Illuminate\Support\Facades\Password {} + class Process extends \Illuminate\Support\Facades\Process {} + class Queue extends \Illuminate\Support\Facades\Queue {} + class RateLimiter extends \Illuminate\Support\Facades\RateLimiter {} + class Redirect extends \Illuminate\Support\Facades\Redirect {} + class Request extends \Illuminate\Support\Facades\Request {} + class Response extends \Illuminate\Support\Facades\Response {} + class Route extends \Illuminate\Support\Facades\Route {} + class Schedule extends \Illuminate\Support\Facades\Schedule {} + class Schema extends \Illuminate\Support\Facades\Schema {} + class Session extends \Illuminate\Support\Facades\Session {} + class Storage extends \Illuminate\Support\Facades\Storage {} + class Str extends \Illuminate\Support\Str {} + class Uri extends \Illuminate\Support\Uri {} + class URL extends \Illuminate\Support\Facades\URL {} + class Validator extends \Illuminate\Support\Facades\Validator {} + class View extends \Illuminate\Support\Facades\View {} + class Vite extends \Illuminate\Support\Facades\Vite {} +} + + + + + diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php new file mode 100644 index 0000000..fb5b0ca --- /dev/null +++ b/app/Http/Controllers/LoginController.php @@ -0,0 +1,74 @@ + "failure", "errorMessage" => "idk"]; + + $mail = $request->input('mail'); + $username = $request->input('username'); + $password = Hash::make($request->input('password')); + $token = $request->input('token'); + + if(preg_match('/@c3gov\.de$/', $mail) != 1){ + return ["messageStatus" => "not permitted", "errorMessage" => ""]; + } + + $rt = RegisterToken::where('token', $token)->first(); + if($rt) { + $u = User::whereEmail($mail)->first(); + if($u) { + return ["messageStatus" => "failure", "errorMessage" => "Diese elektronische Postadresse wird bereits verwendet."]; + } + try { + $u = new User(); + $u->name = $username; + $u->email = $mail; + $u->email_verified_at = now(); + $u->password = $password; + $u->save(); + + $rt->delete(); + } catch (\Exception $e) { + return ["messageStatus" => "failure", "errorMessage" => $e->getMessage()]; + } + } else { + return ["messageStatus" => "failure", "errorMessage" => "Machen Sie die Musik aus."]; + } + + return ["messageStatus" => "success", "errorMessage" => ""]; + } + + public function login(Request $request){ + $mail = $request->input('mail'); + $password = $request->input('password'); + + $u = User::whereEmail($mail)->first(); + if($u){ + $u_pw = $u->password; + + if(Hash::check($password, $u_pw)){ + Auth::login($u); + return ["messageStatus" => "success", "errorMessage" => ""]; + } else { + return ["messageStatus" => "failure", "errorMessage" => "Falsch. Einfach nur falsch."]; + } + } else { + return ["messageStatus" => "failure", "errorMessage" => "Falsch. Einfach nur falsch."]; + } + } + +} diff --git a/app/Http/Controllers/TickerController.php b/app/Http/Controllers/TickerController.php index 92e5c98..9a5646c 100644 --- a/app/Http/Controllers/TickerController.php +++ b/app/Http/Controllers/TickerController.php @@ -5,9 +5,15 @@ namespace App\Http\Controllers; use App\Models\TickerMessages; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; +use Illuminate\Support\Facades\Auth; class TickerController extends Controller { + public function showEditTicker(){ + + } + + public static function getTicker(){ $t = ""; foreach(TickerMessages::getMessages(App::getLocale())->get() as $message){ diff --git a/app/Http/Controllers/WebsiteController.php b/app/Http/Controllers/WebsiteController.php index 7d44816..061a318 100644 --- a/app/Http/Controllers/WebsiteController.php +++ b/app/Http/Controllers/WebsiteController.php @@ -4,17 +4,19 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; +use Illuminate\Support\Facades\Auth; class WebsiteController extends Controller { - public function __construct(){ + public function __construct() + { $this->setLang($_COOKIE['lang'] ?? 'de'); } private function setLang($lang) { - if (! in_array($lang, ['de', 'en'])) { + if (!in_array($lang, ['de', 'en'])) { $lang = 'de'; } @@ -22,9 +24,52 @@ class WebsiteController extends Controller } // - public function index(Request $request){ + public function index(Request $request) + { + return view('content.index'); + } + + public function about(Request $request){ + return view('content.about'); + } + + public function contact(Request $request){ + return view('content.contact'); + } + + public function imprint(Request $request){ + return view('content.imprint'); + } + + public function news(Request $request){ + return view('content.news'); + } + + public function services(Request $request){ + return view('content.services'); + } - return view('layout.app', ['page' => 'content.index']); + // c3gov-Stuffs + + public function showRegister() + { + return view('login.register'); + } + + public function showLogin() + { + return view('login.login'); + } + + public function editTicker(){ + if(Auth::check()){ + return view('ticker.edit'); + } + abort(404); + } + + public function editNews(){ + } } diff --git a/app/Models/RegisterToken.php b/app/Models/RegisterToken.php new file mode 100644 index 0000000..e554ccc --- /dev/null +++ b/app/Models/RegisterToken.php @@ -0,0 +1,19 @@ +|RegisterToken newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|RegisterToken newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|RegisterToken query() + * @mixin \Eloquent + */ +class RegisterToken extends Model +{ + protected $table = 'register_tokens'; + protected $primaryKey = 'token'; + public $incrementing = false; + public $timestamps = false; +} diff --git a/app/Models/TickerMessages.php b/app/Models/TickerMessages.php index 7ef666e..ca92abf 100644 --- a/app/Models/TickerMessages.php +++ b/app/Models/TickerMessages.php @@ -4,6 +4,22 @@ namespace App\Models; use Illuminate\Database\Eloquent\Model; +/** + * @property int $id + * @property string $language + * @property string $message + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @method static \Illuminate\Database\Eloquent\Builder|TickerMessages newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|TickerMessages newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|TickerMessages query() + * @method static \Illuminate\Database\Eloquent\Builder|TickerMessages whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|TickerMessages whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|TickerMessages whereLanguage($value) + * @method static \Illuminate\Database\Eloquent\Builder|TickerMessages whereMessage($value) + * @method static \Illuminate\Database\Eloquent\Builder|TickerMessages whereUpdatedAt($value) + * @mixin \Eloquent + */ class TickerMessages extends Model { // diff --git a/app/Models/User.php b/app/Models/User.php index f6ba1d2..e46ea30 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -10,6 +10,31 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; +/** + * @property int $id + * @property string $name + * @property string $email + * @property \Illuminate\Support\Carbon|null $email_verified_at + * @property string $password + * @property string|null $remember_token + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property-read \Illuminate\Notifications\DatabaseNotificationCollection $notifications + * @property-read int|null $notifications_count + * @method static \Database\Factories\UserFactory factory($count = null, $state = []) + * @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery() + * @method static \Illuminate\Database\Eloquent\Builder|User newQuery() + * @method static \Illuminate\Database\Eloquent\Builder|User query() + * @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereEmailVerifiedAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereId($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereName($value) + * @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereRememberToken($value) + * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value) + * @mixin \Eloquent + */ #[Fillable(['name', 'email', 'password'])] #[Hidden(['password', 'remember_token'])] class User extends Authenticatable diff --git a/composer.json b/composer.json index 23300bc..fa83919 100644 --- a/composer.json +++ b/composer.json @@ -14,6 +14,7 @@ "laravel/tinker": "^3.0" }, "require-dev": { + "barryvdh/laravel-ide-helper": "^3.7", "fakerphp/faker": "^1.23", "laravel/pail": "^1.2.5", "laravel/pint": "^1.27", @@ -86,4 +87,4 @@ }, "minimum-stability": "stable", "prefer-stable": true -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index d438267..6ae3caa 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "91e8e1dfc8379caaf1c302443d694dfa", + "content-hash": "41c3f2f807c63a47595eaa4e14742655", "packages": [ { "name": "brick/math", @@ -5881,6 +5881,153 @@ } ], "packages-dev": [ + { + "name": "barryvdh/laravel-ide-helper", + "version": "v3.7.0", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-ide-helper.git", + "reference": "ad7e37676f1ff985d55ef1b6b96a0c0a40f2609a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/ad7e37676f1ff985d55ef1b6b96a0c0a40f2609a", + "reference": "ad7e37676f1ff985d55ef1b6b96a0c0a40f2609a", + "shasum": "" + }, + "require": { + "barryvdh/reflection-docblock": "^2.4", + "composer/class-map-generator": "^1.0", + "ext-json": "*", + "illuminate/console": "^11.15 || ^12 || ^13.0", + "illuminate/database": "^11.15 || ^12 || ^13.0", + "illuminate/filesystem": "^11.15 || ^12 || ^13.0", + "illuminate/support": "^11.15 || ^12 || ^13.0", + "php": "^8.2" + }, + "require-dev": { + "ext-pdo_sqlite": "*", + "friendsofphp/php-cs-fixer": "^3", + "illuminate/config": "^11.15 || ^12 || ^13.0", + "illuminate/view": "^11.15 || ^12 || ^13.0", + "larastan/larastan": "^3.1", + "mockery/mockery": "^1.4", + "orchestra/testbench": "^9.2 || ^10 || ^11.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5 || ^11.5.3 || ^12.5.12", + "spatie/phpunit-snapshot-assertions": "^4 || ^5", + "vlucas/phpdotenv": "^5" + }, + "suggest": { + "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10|^11)." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\LaravelIdeHelper\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", + "keywords": [ + "autocomplete", + "codeintel", + "dev", + "helper", + "ide", + "laravel", + "netbeans", + "phpdoc", + "phpstorm", + "sublime" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.7.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2026-03-17T14:12:51+00:00" + }, + { + "name": "barryvdh/reflection-docblock", + "version": "v2.4.1", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/ReflectionDocBlock.git", + "reference": "4f5ba70c30c81f2ce03a16a9965832cfcc31ed3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/4f5ba70c30c81f2ce03a16a9965832cfcc31ed3b", + "reference": "4f5ba70c30c81f2ce03a16a9965832cfcc31ed3b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.14|^9" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.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.4.1" + }, + "time": "2026-03-05T20:09:01+00:00" + }, { "name": "brianium/paratest", "version": "v7.19.2", @@ -5974,6 +6121,154 @@ ], "time": "2026-03-09T14:33:17+00:00" }, + { + "name": "composer/class-map-generator", + "version": "1.7.1", + "source": { + "type": "git", + "url": "https://github.com/composer/class-map-generator.git", + "reference": "8f5fa3cc214230e71f54924bd0197a3bcc705eb1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8f5fa3cc214230e71f54924bd0197a3bcc705eb1", + "reference": "8f5fa3cc214230e71f54924bd0197a3bcc705eb1", + "shasum": "" + }, + "require": { + "composer/pcre": "^2.1 || ^3.1", + "php": "^7.2 || ^8.0", + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7 || ^8" + }, + "require-dev": { + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-deprecation-rules": "^1 || ^2", + "phpstan/phpstan-phpunit": "^1 || ^2", + "phpstan/phpstan-strict-rules": "^1.1 || ^2", + "phpunit/phpunit": "^8", + "symfony/filesystem": "^5.4 || ^6 || ^7 || ^8" + }, + "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.7.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2025-12-29T13:15:25+00:00" + }, + { + "name": "composer/pcre", + "version": "3.3.2", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, + "require-dev": { + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.3.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": "2024-11-12T16:29:46+00:00" + }, { "name": "doctrine/deprecations", "version": "1.1.6", diff --git a/database/migrations/2026_03_23_191744_create_register_tokens_table.php b/database/migrations/2026_03_23_191744_create_register_tokens_table.php new file mode 100644 index 0000000..b6a2fee --- /dev/null +++ b/database/migrations/2026_03_23_191744_create_register_tokens_table.php @@ -0,0 +1,26 @@ +string('token')->primary(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('register_tokens'); + } +}; diff --git a/lang/de/app.php b/lang/de/app.php index 9831db6..3aba321 100644 --- a/lang/de/app.php +++ b/lang/de/app.php @@ -4,6 +4,8 @@ return [ 'subtitle' => 'Ihr Amt für Reisepass-Angelegenheiten in der Bezirksregion CCC.', 'logo' => 'Offizielles Logo des c3gov', 'banner' => 'Banner. Abgebildet ist die c3gov-Verwaltungsvorschrift, ein Junghacker*innen-Pass und ein Hacker*innen-Reisepass.', + 'signed_in_as' => 'Angemeldet als:', + 'guest' => 'Gastkonto', 'language' => [ 'en' => 'English', 'de' => 'Deutsch', diff --git a/lang/en/app.php b/lang/en/app.php index 0ecee6e..06b6078 100644 --- a/lang/en/app.php +++ b/lang/en/app.php @@ -4,6 +4,8 @@ return [ 'subtitle' => 'Your office for passport document affairs within the district region CCC.', 'logo' => 'Official logo of the c3gov', 'banner' => 'Banner. The c3gov laws are seen on a sheet of paper, and two different hacker passports.', + 'signed_in_as' => 'Signed in as:', + 'guest' => 'Guest account', 'language' => [ 'en' => 'English', 'de' => 'Deutsch', diff --git a/public/Bilder/banner2.gif b/public/Bilder/banner2.gif new file mode 100644 index 0000000000000000000000000000000000000000..d8d6fbf1affeb34e35ff843d741cfa3d8ed565f7 GIT binary patch literal 293016 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]qyLc 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≧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 VtG4AT*Q(244)fr|{EvVD06W~FE#3eC literal 0 HcmV?d00001 diff --git a/public/css/style.css b/public/css/style.css index b56fa89..947450f 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -5,6 +5,7 @@ .banner { margin: 32px auto; + min-height: 8vh; } .language { @@ -18,13 +19,24 @@ .ticker { background-color: #0f0; + min-height: 2vh; +} + +.main { + + min-height: 80vh; } .navbar { + background-color: pink; + min-height: 80vh; } .content { + background-color: aqua; + min-height: 80vh; } + diff --git a/public/js/jquery/jquery-4.0.0.min.js b/public/js/jquery/jquery-4.0.0.min.js new file mode 100644 index 0000000..3b89a1c --- /dev/null +++ b/public/js/jquery/jquery-4.0.0.min.js @@ -0,0 +1,2 @@ +/*! jQuery v4.0.0 | (c) OpenJS Foundation and other contributors | jquery.com/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=t(e,!0):t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";if(!e.document)throw Error("jQuery requires a window with a document");var n=[],r=Object.getPrototypeOf,i=n.slice,o=n.flat?function(e){return n.flat.call(e)}:function(e){return n.concat.apply([],e)},a=n.push,s=n.indexOf,u={},l=u.toString,c=u.hasOwnProperty,f=c.toString,p=f.call(Object),d={};function h(e){return null==e?e+"":"object"==typeof e?u[l.call(e)]||"object":typeof e}function g(e){return null!=e&&e===e.window}function v(e){var t=!!e&&e.length,n=h(e);return!("function"==typeof e||g(e))&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var y=e.document,m={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var r,i=(n=n||y).createElement("script");for(r in i.text=e,m)t&&t[r]&&(i[r]=t[r]);n.head.appendChild(i).parentNode&&i.parentNode.removeChild(i)}var b="4.0.0",w=/HTML$/i,T=function(e,t){return new T.fn.init(e,t)};function C(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}T.fn=T.prototype={jquery:b,constructor:T,length:0,toArray:function(){return i.call(this)},get:function(e){return null==e?i.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=T.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return T.each(this,e)},map:function(e){return this.pushStack(T.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(i.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(T.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(T.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+E+")"+E+"*"),q=RegExp(E+"|>"),O=/[+~]/,L=y.documentElement,H=L.matches||L.msMatchesSelector;function P(){var e=[];function t(n,r){return e.push(n+" ")>T.expr.cacheLength&&delete t[e.shift()],t[n+" "]=r}return t}function R(e){return e&&void 0!==e.getElementsByTagName&&e}var M="\\["+E+"*("+A+")(?:"+E+"*([*^$|!~]?=)"+E+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+A+"))|)"+E+"*\\]",W=":("+A+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",$={ID:RegExp("^#("+A+")"),CLASS:RegExp("^\\.("+A+")"),TAG:RegExp("^("+A+"|[*])"),ATTR:RegExp("^"+M),PSEUDO:RegExp("^"+W),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i")},I=new RegExp(W),F=RegExp("\\\\[\\da-fA-F]{1,6}"+E+"?|\\\\([^\\r\\n\\f])","g"),B=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))};function _(e){return e.replace(F,B)}function U(e){T.error("Syntax error, unrecognized expression: "+e)}var X=RegExp("^"+E+"*,"+E+"*"),z=P();function Y(e,t){var n,r,i,o,a,s,u,l=z[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=T.expr.preFilter;while(a){for(o in(!n||(r=X.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=N.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(D," ")}),a=a.slice(n.length)),$)(r=T.expr.match[o].exec(a))&&(!u[o]||(r=u[o](r)))&&(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?U(e):z(e,s).slice(0)}function G(e){for(var t=0,n=e.length,r="";t1)},removeAttr:function(e){return this.each(function(){T.removeAttr(this,e)})}}),T.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?T.prop(e,t,n):(1===o&&T.isXMLDoc(e)||(i=T.attrHooks[t.toLowerCase()]),void 0!==n)?null===n||!1===n&&0!==t.toLowerCase().indexOf("aria-")?void T.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=e.getAttribute(t))?void 0:r},attrHooks:{},removeAttr:function(e,t){var n,r=0,i=t&&t.match(Q);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),k&&(T.attrHooks.type={set:function(e,t){if("radio"===t&&C(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}});var J=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function K(e,t){return t?"\0"===e?"\uFFFD":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}T.escapeSelector=function(e){return(e+"").replace(J,K)};var Z=n.sort,ee=n.splice;function et(e,t){if(e===t)return en=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)?e==y||e.ownerDocument==y&&T.contains(y,e)?-1:t==y||t.ownerDocument==y&&T.contains(y,t)?1:0:4&n?-1:1}T.uniqueSort=function(e){var t,n=[],r=0,i=0;if(en=!1,Z.call(e,et),en){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)ee.call(e,n[r],1)}return e},T.fn.uniqueSort=function(){return this.pushStack(T.uniqueSort(i.apply(this)))};var en,er,ei,eo,ea,es,eu=0,el=0,ec=P(),ef=P(),ep=P(),ed=RegExp(E+"+","g"),eh=RegExp("^"+A+"$"),eg=T.extend({needsContext:RegExp("^"+E+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)","i")},$),ev=/^(?:input|select|textarea|button)$/i,ey=/^h\d$/i,em=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ex=function(){eE()},eb=eS(function(e){return!0===e.disabled&&C(e,"fieldset")},{dir:"parentNode",next:"legend"});function ew(e,t,n,r){var i,o,s,u,l,c,f,p=t&&t.ownerDocument,d=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==d&&9!==d&&11!==d)return n;if(!r&&(eE(t),t=t||eo,es)){if(11!==d&&(l=em.exec(e))){if(i=l[1]){if(9===d)return(s=t.getElementById(i))&&a.call(n,s),n;else if(p&&(s=p.getElementById(i))&&T.contains(t,s))return a.call(n,s),n}else if(l[2])return a.apply(n,t.getElementsByTagName(e)),n;else if((i=l[3])&&t.getElementsByClassName)return a.apply(n,t.getElementsByClassName(i)),n}if(!ep[e+" "]&&(!S||!S.test(e))){if(f=e,p=t,1===d&&(q.test(e)||N.test(e))){((p=O.test(e)&&R(t.parentNode)||t)!=t||k)&&((u=t.getAttribute("id"))?u=T.escapeSelector(u):t.setAttribute("id",u=T.expando)),o=(c=Y(e)).length;while(o--)c[o]=(u?"#"+u:":scope")+" "+G(c[o]);f=c.join(",")}try{return a.apply(n,p.querySelectorAll(f)),n}catch(t){ep(e,!0)}finally{u===T.expando&&t.removeAttribute("id")}}}return eq(e.replace(D,"$1"),t,n,r)}function eT(e){return e[T.expando]=!0,e}function eC(e){return function(t){if("form"in t){if(t.parentNode&&!1===t.disabled){if("label"in t)if("label"in t.parentNode)return t.parentNode.disabled===e;else return t.disabled===e;return t.isDisabled===e||!e!==t.isDisabled&&eb(t)===e}return t.disabled===e}return"label"in t&&t.disabled===e}}function ej(e){return eT(function(t){return t*=1,eT(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function eE(e){var t,n=e?e.ownerDocument||e:y;n!=eo&&9===n.nodeType&&(ea=(eo=n).documentElement,es=!T.isXMLDoc(eo),k&&y!=eo&&(t=eo.defaultView)&&t.top!==t&&t.addEventListener("unload",ex))}for(er in ew.matches=function(e,t){return ew(e,null,null,t)},ew.matchesSelector=function(e,t){if(eE(e),es&&!ep[t+" "]&&(!S||!S.test(t)))try{return H.call(e,t)}catch(e){ep(t,!0)}return ew(t,eo,null,[e]).length>0},T.expr={cacheLength:50,createPseudo:eT,match:eg,find:{ID:function(e,t){if(void 0!==t.getElementById&&es){var n=t.getElementById(e);return n?[n]:[]}},TAG:function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},CLASS:function(e,t){if(void 0!==t.getElementsByClassName&&es)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=_(e[1]),e[3]=_(e[3]||e[4]||e[5]||""),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||U(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&U(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return $.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&I.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{ID:function(e){var t=_(e);return function(e){return e.getAttribute("id")===t}},TAG:function(e){var t=_(e).toLowerCase();return"*"===e?function(){return!0}:function(e){return C(e,t)}},CLASS:function(e){var t=ec[e+" "];return t||(t=RegExp("(^|"+E+")"+e+"("+E+"|$)"))&&ec(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=T.attr(r,e);return null==i?"!="===t:!t||((i+="","="===t)?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(ed," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!u&&!s,m=!1;if(g){if(o){while(h){f=t;while(f=f[h])if(s?C(f,v):1===f.nodeType)return!1;d=h="only"===e&&!d&&"nextSibling"}return!0}if(d=[a?g.firstChild:g.lastChild],a&&y){m=(p=(l=(c=g[T.expando]||(g[T.expando]={}))[e]||[])[0]===eu&&l[1])&&l[2],f=p&&g.childNodes[p];while(f=++p&&f&&f[h]||(m=p=0)||d.pop())if(1===f.nodeType&&++m&&f===t){c[e]=[eu,p,m];break}}else if(y&&(m=p=(l=(c=t[T.expando]||(t[T.expando]={}))[e]||[])[0]===eu&&l[1]),!1===m){while(f=++p&&f&&f[h]||(m=p=0)||d.pop())if((s?C(f,v):1===f.nodeType)&&++m&&(y&&((c=f[T.expando]||(f[T.expando]={}))[e]=[eu,m]),f===t))break}return(m-=i)===r||m%r==0&&m/r>=0}}},PSEUDO:function(e,t){var n=T.expr.pseudos[e]||T.expr.setFilters[e.toLowerCase()]||U("unsupported pseudo: "+e);return n[T.expando]?n(t):n}},pseudos:{not:eT(function(e){var t=[],n=[],r=eN(e.replace(D,"$1"));return r[T.expando]?eT(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:eT(function(e){return function(t){return ew(e,t).length>0}}),contains:eT(function(e){return e=_(e),function(t){return(t.textContent||T.text(t)).indexOf(e)>-1}}),lang:eT(function(e){return eh.test(e||"")||U("unsupported lang: "+e),e=_(e).toLowerCase(),function(t){var n;do if(n=es?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===ea},focus:function(e){return e===eo.activeElement&&eo.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:eC(!1),disabled:eC(!0),checked:function(e){return C(e,"input")&&!!e.checked||C(e,"option")&&!!e.selected},selected:function(e){return k&&e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.expr.pseudos.empty(e)},header:function(e){return ey.test(e.nodeName)},input:function(e){return ev.test(e.nodeName)},button:function(e){return C(e,"input")&&"button"===e.type||C(e,"button")},text:function(e){return C(e,"input")&&"text"===e.type},first:ej(function(){return[0]}),last:ej(function(e,t){return[t-1]}),eq:ej(function(e,t,n){return[n<0?n+t:n]}),even:ej(function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e}),gt:ej(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function eA(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s-1},l,!0),d=[function(e,t,r){var i=!u&&(r||t!=ei)||((n=t).nodeType?f(e,t,r):p(e,t,r));return n=null,i}];c-1&&(e[f]=!(u[f]=d))}}else h=eA(h===u?h.splice(y,h.length):h),o?o(null,u,h,c):a.apply(u,h)})}(c>1&&eD(d),c>1&&G(t.slice(0,c-1).concat({value:" "===t[c-2].type?"*":""})).replace(D,"$1"),r,c0,r=l.length>0,i=function(e,t,i,o,s){var c,f,p,d=0,h="0",g=e&&[],v=[],y=ei,m=e||r&&T.expr.find.TAG("*",s),x=eu+=null==y?1:Math.random()||.1;for(s&&(ei=t==eo||t||s);null!=(c=m[h]);h++){if(r&&c){f=0,t||c.ownerDocument==eo||(eE(c),i=!es);while(p=l[f++])if(p(c,t||eo,i)){a.call(o,c);break}s&&(eu=x)}n&&((c=!p&&c)&&d--,e&&g.push(c))}if(d+=h,n&&h!==d){f=0;while(p=u[f++])p(g,v,t,i);if(e){if(d>0)while(h--)g[h]||v[h]||(v[h]=j.call(o));v=eA(v)}a.apply(o,v),s&&!e&&v.length>0&&d+u.length>1&&T.uniqueSort(o)}return s&&(eu=x,ei=y),g},n?eT(i):i))).selector=e}return c}function eq(e,t,n,r){var i,o,s,u,l,c="function"==typeof e&&e,f=!r&&Y(e=c.selector||e);if(n=n||[],1===f.length){if((o=f[0]=f[0].slice(0)).length>2&&"ID"===(s=o[0]).type&&9===t.nodeType&&es&&T.expr.relative[o[1].type]){if(!(t=(T.expr.find.ID(_(s.matches[0]),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=eg.needsContext.test(e)?0:o.length;while(i--){if(s=o[i],T.expr.relative[u=s.type])break;if((l=T.expr.find[u])&&(r=l(_(s.matches[0]),O.test(o[0].type)&&R(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&G(o)))return a.apply(n,r),n;break}}}return(c||eN(e,f))(r,t,!es,n,!t||O.test(e)&&R(t.parentNode)||t),n}function eO(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&T(e).is(n))break;r.push(e)}return r}function eL(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}ek.prototype=T.expr.pseudos,T.expr.setFilters=new ek,eE(),T.find=ew,ew.compile=eN,ew.select=eq,ew.setDocument=eE,ew.tokenize=Y;var eH=T.expr.match.needsContext,eP=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function eR(e){return"<"===e[0]&&">"===e[e.length-1]&&e.length>=3}function eM(e,t,n){return"function"==typeof t?T.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?T.grep(e,function(e){return e===t!==n}):"string"!=typeof t?T.grep(e,function(e){return s.call(t,e)>-1!==n}):T.filter(t,e,n)}T.filter=function(e,t,n){var r=t[0];return(n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType)?T.find.matchesSelector(r,e)?[r]:[]:T.find.matches(e,T.grep(t,function(e){return 1===e.nodeType}))},T.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(T(e).filter(function(){for(t=0;t1?T.uniqueSort(n):n},filter:function(e){return this.pushStack(eM(this,e||[],!1))},not:function(e){return this.pushStack(eM(this,e||[],!0))},is:function(e){return!!eM(this,"string"==typeof e&&eH.test(e)?T(e):e||[],!1).length}});var eW,e$=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(T.fn.init=function(e,t){var n,r;if(!e)return this;if(e.nodeType)return this[0]=e,this.length=1,this;if("function"==typeof e)return void 0!==eW.ready?eW.ready(e):e(T);if(eR(n=e+""))n=[null,e,null];else{if("string"!=typeof e)return T.makeArray(e,this);n=e$.exec(e)}if(n&&(n[1]||!t))if(!n[1])return(r=y.getElementById(n[2]))&&(this[0]=r,this.length=1),this;else{if(t=t instanceof T?t[0]:t,T.merge(this,T.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:y,!0)),eP.test(n[1])&&T.isPlainObject(t))for(n in t)"function"==typeof this[n]?this[n](t[n]):this.attr(n,t[n]);return this}return!t||t.jquery?(t||eW).find(e):this.constructor(t).find(e)}).prototype=T.fn,eW=T(y);var eI=/^(?:parents|prev(?:Until|All))/,eF={children:!0,contents:!0,next:!0,prev:!0};function eB(e,t){while((e=e[t])&&1!==e.nodeType);return e}function e_(e){return e}function eU(e){throw e}function eX(e,t,n,r){var i;try{e&&"function"==typeof(i=e.promise)?i.call(e).done(t).fail(n):e&&"function"==typeof(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n(e)}}T.fn.extend({has:function(e){var t=T(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&T.find.matchesSelector(n,e))){o.push(n);break}}return this.pushStack(o.length>1?T.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?s.call(T(e),this[0]):s.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(T.uniqueSort(T.merge(this.get(),T(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),T.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return eO(e,"parentNode")},parentsUntil:function(e,t,n){return eO(e,"parentNode",n)},next:function(e){return eB(e,"nextSibling")},prev:function(e){return eB(e,"previousSibling")},nextAll:function(e){return eO(e,"nextSibling")},prevAll:function(e){return eO(e,"previousSibling")},nextUntil:function(e,t,n){return eO(e,"nextSibling",n)},prevUntil:function(e,t,n){return eO(e,"previousSibling",n)},siblings:function(e){return eL((e.parentNode||{}).firstChild,e)},children:function(e){return eL(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(C(e,"template")&&(e=e.content||e),T.merge([],e.childNodes))}},function(e,t){T.fn[e]=function(n,r){var i=T.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=T.filter(r,i)),this.length>1&&(eF[e]||T.uniqueSort(i),eI.test(e)&&i.reverse()),this.pushStack(i)}}),T.Callbacks=function(e){e="string"==typeof e?(t=e,n={},T.each(t.match(Q)||[],function(e,t){n[t]=!0}),n):T.extend({},e);var t,n,r,i,o,a,s=[],u=[],l=-1,c=function(){for(a=a||e.once,o=r=!0;u.length;l=-1){i=u.shift();while(++l-1)s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?T.inArray(e,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=i="",this},disabled:function(){return!s},lock:function(){return a=u=[],i||r||(s=i=""),this},locked:function(){return!!a},fireWith:function(e,t){return!a&&(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),r||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},T.extend({Deferred:function(t){var n=[["notify","progress",T.Callbacks("memory"),T.Callbacks("memory"),2],["resolve","done",T.Callbacks("once memory"),T.Callbacks("once memory"),0,"resolved"],["reject","fail",T.Callbacks("once memory"),T.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return T.Deferred(function(t){T.each(n,function(n,r){var i="function"==typeof e[r[4]]&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==eU&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(T.Deferred.getErrorHook&&(c.error=T.Deferred.getErrorHook()),e.setTimeout(c))}}return T.Deferred(function(e){n[0][3].add(a(0,e,"function"==typeof i?i:e_,e.notifyWith)),n[1][3].add(a(0,e,"function"==typeof t?t:e_)),n[2][3].add(a(0,e,"function"==typeof r?r:eU))}).promise()},promise:function(e){return null!=e?T.extend(e,i):i}},o={};return T.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),o=i.call(arguments),a=T.Deferred(),s=function(e){return function(n){r[e]=this,o[e]=arguments.length>1?i.call(arguments):n,--t||a.resolveWith(r,o)}};if(t<=1&&(eX(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||"function"==typeof(o[n]&&o[n].then)))return a.then();while(n--)eX(o[n],s(n),a.reject);return a.promise()}});var ez=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;T.Deferred.exceptionHook=function(t,n){t&&ez.test(t.name)&&e.console.warn("jQuery.Deferred exception",t,n)},T.readyException=function(t){e.setTimeout(function(){throw t})};var eY=T.Deferred();function eG(){y.removeEventListener("DOMContentLoaded",eG),e.removeEventListener("load",eG),T.ready()}T.fn.ready=function(e){return eY.then(e).catch(function(e){T.readyException(e)}),this},T.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--T.readyWait:T.isReady)||(T.isReady=!0,!0!==e&&--T.readyWait>0||eY.resolveWith(y,[T]))}}),T.ready.then=eY.then,"loading"!==y.readyState?e.setTimeout(T.ready):(y.addEventListener("DOMContentLoaded",eG),e.addEventListener("load",eG));var eV=/-([a-z])/g;function eQ(e,t){return t.toUpperCase()}function eJ(e){return e.replace(eV,eQ)}function eK(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType}function eZ(){this.expando=T.expando+eZ.uid++}eZ.uid=1,eZ.prototype={cache:function(e){var t=e[this.expando];return!t&&(t=Object.create(null),eK(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[eJ(t)]=n;else for(r in t)i[eJ(r)]=t[r];return n},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][eJ(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(eJ):(t=eJ(t))in r?[t]:t.match(Q)||[]).length;while(n--)delete r[t[n]]}(void 0===t||T.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!T.isEmptyObject(t)}};var e0=new eZ,e1=new eZ,e2=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,e3=/[A-Z]/g;function e4(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(e3,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{i=n,n="true"===i||"false"!==i&&("null"===i?null:i===+i+""?+i:e2.test(i)?JSON.parse(i):i)}catch(e){}e1.set(e,t,n)}else n=void 0;return n}T.extend({hasData:function(e){return e1.hasData(e)||e0.hasData(e)},data:function(e,t,n){return e1.access(e,t,n)},removeData:function(e,t){e1.remove(e,t)},_data:function(e,t,n){return e0.access(e,t,n)},_removeData:function(e,t){e0.remove(e,t)}}),T.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=e1.get(o),1===o.nodeType&&!e0.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&e4(o,r=eJ(r.slice(5)),i[r]);e0.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){e1.set(this,e)}):V(this,function(t){var n;if(o&&void 0===t)return void 0!==(n=e1.get(o,e))||void 0!==(n=e4(o,e))?n:void 0;this.each(function(){e1.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){e1.remove(this,e)})}}),T.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=e0.get(e,t),n&&(!r||Array.isArray(n)?r=e0.set(e,t,T.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=T.queue(e,t),r=n.length,i=n.shift(),o=T._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){T.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return e0.get(e,n)||e0.set(e,n,{empty:T.Callbacks("once memory").add(function(){e0.remove(e,[t+"queue",n])})})}}),T.fn.extend({queue:function(e,t){var n=2;return("string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,tc={thead:["table"],col:["colgroup","table"],tr:["tbody","table"],td:["tr","tbody","table"]};function tf(e,t){var r;return(r=void 0!==e.getElementsByTagName?n.slice.call(e.getElementsByTagName(t||"*")):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&C(e,t))?T.merge([e],r):r}tc.tbody=tc.tfoot=tc.colgroup=tc.caption=tc.thead,tc.th=tc.td;var tp=/^$|^module$|\/(?:java|ecma)script/i;function td(e,t){for(var n=0,r=e.length;n-1)s=s.appendChild(t.createElement(u[c]));s.innerHTML=T.htmlPrefilter(a),T.merge(p,s.childNodes),(s=f.firstChild).textContent=""}else p.push(t.createTextNode(a));f.textContent="",d=0;while(a=p[d++]){if(i&&T.inArray(a,i)>-1){o&&o.push(a);continue}if(l=ts(a),s=tf(f.appendChild(a),"script"),l&&td(s),r){c=0;while(a=s[c++])tp.test(a.type||"")&&r.push(a)}}return f}function tv(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ty(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function tm(e,t,n,r){t=o(t);var i,a,s,u,l,c,f=0,p=e.length,d=p-1,h=t[0];if("function"==typeof h)return e.each(function(i){var o=e.eq(i);t[0]=h.call(this,i,o.html()),tm(o,t,n,r)});if(p&&(a=(i=tg(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=a),a||r)){for(u=(s=T.map(tf(i,"script"),tv)).length;f=1)){for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(n=0,o=[],a={};n-1:T.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}}return l=this,u0&&td(a,!u&&tf(e,"script")),s},cleanData:function(e){for(var t,n,r,i=T.event.special,o=0;void 0!==(n=e[o]);o++)if(eK(n)){if(t=n[e0.expando]){if(t.events)for(r in t.events)i[r]?T.event.remove(n,r):T.removeEvent(n,r,t.handle);n[e0.expando]=void 0}n[e1.expando]&&(n[e1.expando]=void 0)}}}),T.fn.extend({detach:function(e){return tD(this,e,!0)},remove:function(e){return tD(this,e)},text:function(e){return V(this,function(e){return void 0===e?T.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=e)})},null,e,arguments.length)},append:function(){return tm(this,arguments,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&tk(this,e).appendChild(e)})},prepend:function(){return tm(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=tk(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return tm(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return tm(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(T.cleanData(tf(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return T.clone(this,e,t)})},html:function(e){return V(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!tE.test(e)&&!tc[(tl.exec(e)||["",""])[1].toLowerCase()]){e=T.htmlPrefilter(e);try{for(;nT.inArray(this,e)&&(T.cleanData(tf(this)),n&&n.replaceChild(t,this))},e)}}),T.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){T.fn[e]=function(e){for(var n,r=[],i=T(e),o=i.length-1,s=0;s<=o;s++)n=s===o?this:this.clone(!0),T(i[s])[t](n),a.apply(r,n);return this.pushStack(r)}});var tA=RegExp("^("+e5+")(?!px)[a-z%]+$","i"),tN=/^--/;function tq(t){var n=t.ownerDocument.defaultView;return n||(n=e),n.getComputedStyle(t)}function tO(e,t,n){var r,i=tN.test(t);return(n=n||tq(e))&&(r=n.getPropertyValue(t)||n[t],i&&r&&(r=r.replace(D,"$1")||void 0),""!==r||ts(e)||(r=T.style(e,t))),void 0!==r?r+"":r}var tL=["Webkit","Moz","ms"],tH=y.createElement("div").style;function tP(e){return e in tH?e:function(e){var t=e[0].toUpperCase()+e.slice(1),n=tL.length;while(n--)if((e=tL[n]+t)in tH)return e}(e)||e}var tR,tM,tW=y.createElement("table");function t$(){if(tW&&tW.style){var t,n=y.createElement("col"),r=y.createElement("tr"),i=y.createElement("td");if(tW.style.cssText="position:absolute;left:-11111px;border-collapse:separate;border-spacing:0",r.style.cssText="box-sizing:content-box;border:1px solid;height:1px",i.style.cssText="height:9px;width:9px;padding:0",n.span=2,L.appendChild(tW).appendChild(n).parentNode.appendChild(r).appendChild(i).parentNode.appendChild(i.cloneNode(!0)),0===tW.offsetWidth)return void L.removeChild(tW);t=e.getComputedStyle(r),tM=k||18===Math.round(parseFloat(e.getComputedStyle(n).width)),tR=Math.round(parseFloat(t.height)+parseFloat(t.borderTopWidth)+parseFloat(t.borderBottomWidth))===r.offsetHeight,L.removeChild(tW),tW=null}}T.extend(d,{reliableTrDimensions:function(){return t$(),tR},reliableColDimensions:function(){return t$(),tM}});var tI={position:"absolute",visibility:"hidden",display:"block"},tF={letterSpacing:"0",fontWeight:"400"};function tB(e,t,n){var r=e9.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function t_(e,t,n,r,i,o){var a=+("width"===t),s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=T.css(e,n+e6[a],!0,i)),r?("content"===n&&(u-=T.css(e,"padding"+e6[a],!0,i)),"margin"!==n&&(u-=T.css(e,"border"+e6[a]+"Width",!0,i))):(u+=T.css(e,"padding"+e6[a],!0,i),"padding"!==n?u+=T.css(e,"border"+e6[a]+"Width",!0,i):s+=T.css(e,"border"+e6[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function tU(e,t,n){var r=tq(e),i=(k||n)&&"border-box"===T.css(e,"boxSizing",!1,r),o=i,a=tO(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(tA.test(a)){if(!n)return a;a="auto"}return("auto"===a||k&&i||!d.reliableColDimensions()&&C(e,"col")||!d.reliableTrDimensions()&&C(e,"tr"))&&e.getClientRects().length&&(i="border-box"===T.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+t_(e,t,n||(i?"border":"content"),o,r,a)+"px"}function tX(e,t,n,r,i){return new tX.prototype.init(e,t,n,r,i)}T.extend({cssHooks:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ti(t),u=tN.test(t),l=e.style;if(u||(t=tP(s)),a=T.cssHooks[t]||T.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];if("string"==(o=typeof n)&&(i=e9.exec(n))&&i[1]&&(n=tn(e,t,i),o="number"),null!=n&&n==n)"number"===o&&(n+=i&&i[3]||(tt(s)?"px":"")),k&&""===n&&0===t.indexOf("background")&&(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n)}},css:function(e,t,n,r){var i,o,a,s=ti(t);return(tN.test(t)||(t=tP(s)),(a=T.cssHooks[t]||T.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=tO(e,t,r)),"normal"===i&&t in tF&&(i=tF[t]),""===n||n)?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),T.each(["height","width"],function(e,t){T.cssHooks[t]={get:function(e,n,r){if(n)return"none"===T.css(e,"display")?function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r}(e,tI,function(){return tU(e,t,r)}):tU(e,t,r)},set:function(e,n,r){var i,o=tq(e),a=r&&"border-box"===T.css(e,"boxSizing",!1,o),s=r?t_(e,t,r,a,o):0;return s&&(i=e9.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=T.css(e,t)),tB(e,n,s)}}}),T.each({margin:"",padding:"",border:"Width"},function(e,t){T.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+e6[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(T.cssHooks[e+t].set=tB)}),T.fn.extend({css:function(e,t){return V(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=tq(e),i=t.length;a1)}}),T.Tween=tX,tX.prototype={constructor:tX,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||T.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(tt(n)?"px":"")},cur:function(){var e=tX.propHooks[this.prop];return e&&e.get?e.get(this):tX.propHooks._default.get(this)},run:function(e){var t,n=tX.propHooks[this.prop];return this.options.duration?this.pos=t=T.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tX.propHooks._default.set(this),this}},tX.prototype.init.prototype=tX.prototype,tX.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=T.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){T.fx.step[e.prop]?T.fx.step[e.prop](e):1===e.elem.nodeType&&(T.cssHooks[e.prop]||null!=e.elem.style[tP(e.prop)])?T.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},T.easing={linear:function(e){return e},swing:function(e){return .5-Math.cos(e*Math.PI)/2},_default:"swing"},T.fx=tX.prototype.init,T.fx.step={};var tz,tY,tG=/^(?:toggle|show|hide)$/,tV=/queueHooks$/;function tQ(){return e.setTimeout(function(){tz=void 0}),tz=Date.now()}function tJ(e,t){var n,r=0,i={height:e};for(t=+!!t;r<4;r+=2-t)i["margin"+(n=e6[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function tK(e,t,n){for(var r,i=(tZ.tweeners[t]||[]).concat(tZ.tweeners["*"]),o=0,a=i.length;o1)},removeProp:function(e){return this.each(function(){delete this[T.propFix[e]||e]})}}),T.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return(1===o&&T.isXMLDoc(e)||(t=T.propFix[t]||t,i=T.propHooks[t]),void 0!==n)?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=e.getAttribute("tabindex");return t?parseInt(t,10):t0.test(e.nodeName)||t1.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),k&&(T.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),T.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){T.propFix[this.toLowerCase()]=this}),T.fn.extend({addClass:function(e){var t,n,r,i,o,a;return"function"==typeof e?this.each(function(t){T(this).addClass(e.call(this,t,t3(this)))}):(t=t4(e)).length?this.each(function(){if(r=t3(this),n=1===this.nodeType&&" "+t2(r)+" "){for(o=0;on.indexOf(" "+i+" ")&&(n+=i+" ");r!==(a=t2(n))&&this.setAttribute("class",a)}}):this},removeClass:function(e){var t,n,r,i,o,a;return"function"==typeof e?this.each(function(t){T(this).removeClass(e.call(this,t,t3(this)))}):arguments.length?(t=t4(e)).length?this.each(function(){if(r=t3(this),n=1===this.nodeType&&" "+t2(r)+" "){for(o=0;o-1)n=n.replace(" "+i+" "," ")}r!==(a=t2(n))&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(e,t){var n,r,i,o;return"function"==typeof e?this.each(function(n){T(this).toggleClass(e.call(this,n,t3(this),t),t)}):"boolean"==typeof t?t?this.addClass(e):this.removeClass(e):(n=t4(e)).length?this.each(function(){for(i=0,o=T(this);i-1)return!0;return!1}}),T.fn.extend({val:function(e){var t,n,r,i=this[0];if(!arguments.length)return i?(t=T.valHooks[i.type]||T.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:null==(n=i.value)?"":n:void 0;return r="function"==typeof e,this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,T(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=T.map(i,function(e){return null==e?"":e+""})),(t=T.valHooks[this.type]||T.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))})}}),T.extend({valHooks:{select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k&&(T.valHooks.option={get:function(e){var t=e.getAttribute("value");return null!=t?t:t2(T.text(e))}}),T.each(["radio","checkbox"],function(){T.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=T.inArray(T(e).val(),t)>-1}}});var t5=/^(?:focusinfocus|focusoutblur)$/,t9=function(e){e.stopPropagation()};T.extend(T.event,{trigger:function(t,n,r,i){var o,a,s,u,l,f,p,d,h=[r||y],v=c.call(t,"type")?t.type:t,m=c.call(t,"namespace")?t.namespace.split("."):[];if((a=d=s=r=r||y,!(3===r.nodeType||8===r.nodeType||t5.test(v+T.event.triggered)))&&(v.indexOf(".")>-1&&(v=(m=v.split(".")).shift(),m.sort()),l=0>v.indexOf(":")&&"on"+v,(t=t[T.expando]?t:new T.Event(v,"object"==typeof t&&t)).isTrigger=i?2:3,t.namespace=m.join("."),t.rnamespace=t.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:T.makeArray(n,[t]),p=T.event.special[v]||{},i||!p.trigger||!1!==p.trigger.apply(r,n))){if(!i&&!p.noBubble&&!g(r)){for(u=p.delegateType||v,!t5.test(u+v)&&(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(r.ownerDocument||y)&&h.push(s.defaultView||s.parentWindow||e)}o=0;while((a=h[o++])&&!t.isPropagationStopped())d=a,t.type=o>1?u:p.bindType||v,(f=(e0.get(a,"events")||Object.create(null))[t.type]&&e0.get(a,"handle"))&&f.apply(a,n),(f=l&&a[l])&&f.apply&&eK(a)&&(t.result=f.apply(a,n),!1===t.result&&t.preventDefault());return t.type=v,!i&&!t.isDefaultPrevented()&&(!p._default||!1===p._default.apply(h.pop(),n))&&eK(r)&&l&&"function"==typeof r[v]&&!g(r)&&((s=r[l])&&(r[l]=null),T.event.triggered=v,t.isPropagationStopped()&&d.addEventListener(v,t9),r[v](),t.isPropagationStopped()&&d.removeEventListener(v,t9),T.event.triggered=void 0,s&&(r[l]=s)),t.result}},simulate:function(e,t,n){var r=T.extend(new T.Event,n,{type:e,isSimulated:!0});T.event.trigger(r,null,t)}}),T.fn.extend({trigger:function(e,t){return this.each(function(){T.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return T.event.trigger(e,t,n,!0)}});var t6=e.location,t8={guid:Date.now()},t7=/\?/;T.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{n=new e.DOMParser().parseFromString(t,"text/xml")}catch(e){}return r=n&&n.getElementsByTagName("parsererror")[0],(!n||r)&&T.error("Invalid XML: "+(r?T.map(r.childNodes,function(e){return e.textContent}).join("\n"):t)),n};var ne=/\[\]$/,nt=/\r?\n/g,nn=/^(?:submit|button|image|reset|file)$/i,nr=/^(?:input|select|textarea|keygen)/i;T.param=function(e,t){var n,r=[],i=function(e,t){var n="function"==typeof t?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!T.isPlainObject(e))T.each(e,function(){i(this.name,this.value)});else for(n in e)!function e(t,n,r,i){var o;if(Array.isArray(n))T.each(n,function(n,o){r||ne.test(t)?i(t,o):e(t+"["+("object"==typeof o&&null!=o?n:"")+"]",o,r,i)});else if(r||"object"!==h(n))i(t,n);else for(o in n)e(t+"["+o+"]",n[o],r,i)}(n,e[n],t,i);return r.join("&")},T.fn.extend({serialize:function(){return T.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=T.prop(this,"elements");return e?T.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!T(this).is(":disabled")&&nr.test(this.nodeName)&&!nn.test(e)&&(this.checked||!tx.test(e))}).map(function(e,t){var n=T(this).val();return null==n?null:Array.isArray(n)?T.map(n,function(e){return{name:t.name,value:e.replace(nt,"\r\n")}}):{name:t.name,value:n.replace(nt,"\r\n")}}).get()}});var ni=/%20/g,no=/#.*$/,na=/([?&])_=[^&]*/,ns=/^(.*?):[ \t]*([^\r\n]*)$/mg,nu=/^(?:GET|HEAD)$/,nl=/^\/\//,nc={},nf={},np="*/".concat("*"),nd=y.createElement("a");function nh(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(Q)||[];if("function"==typeof n)while(r=o[i++])"+"===r[0]?(e[r=r.slice(1)||"*"]=e[r]||[]).unshift(n):(e[r]=e[r]||[]).push(n)}}function ng(e,t,n,r){var i={},o=e===nf;function a(s){var u;return i[s]=!0,T.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function nv(e,t){var n,r,i=T.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&T.extend(!0,e,r),e}nd.href=t6.href,T.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:t6.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(t6.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":np,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":T.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?nv(nv(e,T.ajaxSettings),t):nv(T.ajaxSettings,e)},ajaxPrefilter:nh(nc),ajaxTransport:nh(nf),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var r,i,o,a,s,u,l,c,f,p,d=T.ajaxSetup({},n),h=d.context||d,g=d.context&&(h.nodeType||h.jquery)?T(h):T.event,v=T.Deferred(),m=T.Callbacks("once memory"),x=d.statusCode||{},b={},w={},C="canceled",j={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a){a={};while(t=ns.exec(o))a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return l?o:null},setRequestHeader:function(e,t){return null==l&&(b[e=w[e.toLowerCase()]=w[e.toLowerCase()]||e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)j.always(e[j.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return r&&r.abort(t),E(0,t),this}};if(v.promise(j),d.url=((t||d.url||t6.href)+"").replace(nl,t6.protocol+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(Q)||[""],null==d.crossDomain){u=y.createElement("a");try{u.href=d.url,u.href=u.href,d.crossDomain=nd.protocol+"//"+nd.host!=u.protocol+"//"+u.host}catch(e){d.crossDomain=!0}}if(ng(nc,d,n,j),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=T.param(d.data,d.traditional)),l)return j;for(f in(c=T.event&&d.global)&&0==T.active++&&T.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!nu.test(d.type),i=d.url.replace(no,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(ni,"+")):(p=d.url.slice(i.length),d.data&&(d.processData||"string"==typeof d.data)&&(i+=(t7.test(i)?"&":"?")+d.data,delete d.data),!1===d.cache&&(i=i.replace(na,"$1"),p=(t7.test(i)?"&":"?")+"_="+t8.guid+++p),d.url=i+p),d.ifModified&&(T.lastModified[i]&&j.setRequestHeader("If-Modified-Since",T.lastModified[i]),T.etag[i]&&j.setRequestHeader("If-None-Match",T.etag[i])),(d.data&&d.hasContent&&!1!==d.contentType||n.contentType)&&j.setRequestHeader("Content-Type",d.contentType),j.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+np+"; q=0.01":""):d.accepts["*"]),d.headers)j.setRequestHeader(f,d.headers[f]);if(d.beforeSend&&(!1===d.beforeSend.call(h,j,d)||l))return j.abort();if(C="abort",m.add(d.complete),j.done(d.success),j.fail(d.error),r=ng(nf,d,n,j)){if(j.readyState=1,c&&g.trigger("ajaxSend",[j,d]),l)return j;d.async&&d.timeout>0&&(s=e.setTimeout(function(){j.abort("timeout")},d.timeout));try{l=!1,r.send(b,E)}catch(e){if(l)throw e;E(-1,e)}}else E(-1,"No Transport");function E(t,n,a,u){var f,p,y,b,w,C=n;!l&&(l=!0,s&&e.clearTimeout(s),r=void 0,o=u||"",j.readyState=4*(t>0),f=t>=200&&t<300||304===t,a&&(b=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r){for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(d,j,a)),!f&&T.inArray("script",d.dataTypes)>-1&&0>T.inArray("json",d.dataTypes)&&(d.converters["text script"]=function(){}),b=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift()){if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o])){for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}}return{state:"success",data:t}}(d,b,j,f),f?(d.ifModified&&((w=j.getResponseHeader("Last-Modified"))&&(T.lastModified[i]=w),(w=j.getResponseHeader("etag"))&&(T.etag[i]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,f=!(y=b.error))):(y=C,(t||!C)&&(C="error",t<0&&(t=0))),j.status=t,j.statusText=(n||C)+"",f?v.resolveWith(h,[p,C,j]):v.rejectWith(h,[j,C,y]),j.statusCode(x),x=void 0,c&&g.trigger(f?"ajaxSuccess":"ajaxError",[j,d,f?p:y]),m.fireWith(h,[j,C]),c&&(g.trigger("ajaxComplete",[j,d]),--T.active||T.event.trigger("ajaxStop")))}return j},getJSON:function(e,t,n){return T.get(e,t,n,"json")},getScript:function(e,t){return T.get(e,void 0,t,"script")}}),T.each(["get","post"],function(e,t){T[t]=function(e,n,r,i){return("function"==typeof n||null===n)&&(i=i||r,r=n,n=void 0),T.ajax(T.extend({url:e,type:t,dataType:i,data:n,success:r},T.isPlainObject(e)&&e))}}),T.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),T._evalUrl=function(e,t,n){return T.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,scriptAttrs:t.crossOrigin?{crossOrigin:t.crossOrigin}:void 0,converters:{"text script":function(){}},dataFilter:function(e){T.globalEval(e,t,n)}})},T.fn.extend({wrapAll:function(e){var t;return this[0]&&("function"==typeof e&&(e=e.call(this[0])),t=T(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return"function"==typeof e?this.each(function(t){T(this).wrapInner(e.call(this,t))}):this.each(function(){var t=T(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t="function"==typeof e;return this.each(function(n){T(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){T(this).replaceWith(this.childNodes)}),this}}),T.expr.pseudos.hidden=function(e){return!T.expr.pseudos.visible(e)},T.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},T.ajaxSettings.xhr=function(){return new e.XMLHttpRequest};var ny={0:200};function nm(e){return e.scriptAttrs||!e.headers&&(e.crossDomain||e.async&&0>T.inArray("json",e.dataTypes))}T.ajaxTransport(function(e){var t;return{send:function(n,r){var i,o=e.xhr();if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)o[i]=e.xhrFields[i];for(i in e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest"),n)o.setRequestHeader(i,n[i]);t=function(e){return function(){t&&(t=o.onload=o.onerror=o.onabort=o.ontimeout=null,"abort"===e?o.abort():"error"===e?r(o.status,o.statusText):r(ny[o.status]||o.status,o.statusText,"text"===(o.responseType||"text")?{text:o.responseText}:{binary:o.response},o.getAllResponseHeaders()))}},o.onload=t(),o.onabort=o.onerror=o.ontimeout=t("error"),t=t("abort");try{o.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}}),T.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},converters:{"text script":function(e){return T.globalEval(e),e}}}),T.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),nm(e)&&(e.type="GET")}),T.ajaxTransport("script",function(e){if(nm(e)){var t,n;return{send:function(r,i){t=T(" + + @yield('scripts') - - - +

+
+
{{\App\Http\Controllers\TickerController::getTicker()}} - - - - - - - - +
+
+
+ + +
{{ __('app.language.de') }} {{ __('app.language.en') }} - - - - +
+ {{ __('app.signed_in_as') }} {{Auth::user()->name ?? __("app.guest")}} +
+
+ +
diff --git a/resources/views/login/login.blade.php b/resources/views/login/login.blade.php new file mode 100644 index 0000000..9cbb558 --- /dev/null +++ b/resources/views/login/login.blade.php @@ -0,0 +1,31 @@ +@extends('layout.app') +@section('scripts') + +@endsection + +@section('content') +

Login

+ + + + @guest +
Bitte melden Sie sich an.
+ + + + + + + +

+ + + @endguest + @auth +
Sie sind angemeldet.
+ + @endauth + +
+@endsection diff --git a/resources/views/login/register.blade.php b/resources/views/login/register.blade.php index 1d444f0..e1675b5 100644 --- a/resources/views/login/register.blade.php +++ b/resources/views/login/register.blade.php @@ -1,16 +1,33 @@ -

Registrieren

+@extends('layout.app') +@section('scripts') + +@endsection - - - +@section('content') +

Registrieren

- - + - - +
Bitte registrieren Sie sich.
- - + + + + + + + + + + + + + + + +

+
+@endsection diff --git a/resources/views/ticker/edit.blade.php b/resources/views/ticker/edit.blade.php new file mode 100644 index 0000000..43182a6 --- /dev/null +++ b/resources/views/ticker/edit.blade.php @@ -0,0 +1,44 @@ +@extends('layout.app') +@section('scripts') + +@endsection + +@section('content') +

Ticker bearbeiten

+
+

Deutsch

+ + +
+ +


+ + + +
+ + +
+
+
+ +

Englisch

+ + +
+ +


+ + + +
+ +@endsection diff --git a/routes/web.php b/routes/web.php index dba5035..51625a0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ name('imprint') Route::get('/services', [WebsiteController::class, 'services'])->name('services'); Route::get('/neuigkeiten', [WebsiteController::class, 'news'])->name('news'); -Route::get('/intern/anmelden', [WebsiteController::class, 'login']); +Route::get('/intern/registrieren', [WebsiteController::class, 'showRegister']); +Route::post('/intern/registrieren/abschicken', [LoginController::class, 'register']); + +Route::get('/intern/anmelden', [WebsiteController::class, 'showLogin']); +Route::post('/intern/anmelden/einloggen', [LoginController::class, 'login']); + +Route::get('/intern/abmelden', function(){ + Auth::logout(); + return redirect("/"); +})->name('logout'); + +Route::get('/intern/ticker', [WebsiteController::class, 'editTicker'])->name('editTicker'); +Route::get('/intern/nachrichten', [WebsiteController::class, 'editNews'])->name('editNews');