Add Heroku support (#12)

This commit is contained in:
Christopher Charbonneau Wells 2021-04-06 10:05:10 -07:00 committed by GitHub
parent e1e3a3620a
commit 350a08a14d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 903 additions and 676 deletions

View File

@ -17,17 +17,22 @@ DB_DATABASE=kcal
DB_USERNAME=kcal DB_USERNAME=kcal
DB_PASSWORD=kcal DB_PASSWORD=kcal
#REDIS_URL=
REDIS_HOST=redis REDIS_HOST=redis
#REDIS_PASSWORD=
REDIS_PORT=6379 REDIS_PORT=6379
#REDIS_DB=
#SCOUT_DRIVER=null
#SCOUT_DRIVER=algolia
#ALGOLIA_APP_ID=
#ALGOLIA_SECRET=
SCOUT_DRIVER=elastic SCOUT_DRIVER=elastic
ELASTIC_HOST=elasticsearch:9200 ELASTIC_HOST=elasticsearch:9200
ELASTIC_PORT=9200 ELASTIC_PORT=9200
MAIL_HOST=mailhog
MAIL_PORT=1025
MAILHOG_ADMIN_PORT=8025
BROADCAST_DRIVER=log BROADCAST_DRIVER=log
CACHE_DRIVER=file CACHE_DRIVER=file
QUEUE_CONNECTION=sync QUEUE_CONNECTION=sync

View File

@ -15,14 +15,20 @@ DB_DATABASE=
DB_USERNAME= DB_USERNAME=
DB_PASSWORD= DB_PASSWORD=
REDIS_HOST= #REDIS_URL=
REDIS_PORT=6379 #REDIS_HOST=
#REDIS_PASSWORD=
#REDIS_PORT=6379
#REDIS_DB=
SCOUT_DRIVER=elastic SCOUT_DRIVER=null
ELASTIC_HOST=
MAIL_HOST= #SCOUT_DRIVER=algolia
MAIL_PORT= #ALGOLIA_APP_ID=
#ALGOLIA_SECRET=
#SCOUT_DRIVER=elastic
#ELASTIC_HOST=
BROADCAST_DRIVER=log BROADCAST_DRIVER=log
CACHE_DRIVER=file CACHE_DRIVER=file

1
.gitignore vendored
View File

@ -15,3 +15,4 @@ Homestead.yaml
docker-compose.override.yml docker-compose.override.yml
npm-debug.log npm-debug.log
yarn-error.log yarn-error.log
phpunit.xml

View File

@ -11,6 +11,14 @@ namespace PHPSTORM_META {
*/ */
override(new \Illuminate\Contracts\Container\Container, map([ override(new \Illuminate\Contracts\Container\Container, map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -37,6 +45,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -61,7 +71,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -75,6 +85,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -167,6 +178,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -207,6 +219,14 @@ namespace PHPSTORM_META {
])); ]));
override(\Illuminate\Container\Container::makeWith(0), map([ override(\Illuminate\Container\Container::makeWith(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -233,6 +253,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -257,7 +279,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -271,6 +293,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -363,6 +386,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -403,6 +427,14 @@ namespace PHPSTORM_META {
])); ]));
override(\Illuminate\Contracts\Container\Container::get(0), map([ override(\Illuminate\Contracts\Container\Container::get(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -429,6 +461,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -453,7 +487,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -467,6 +501,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -559,6 +594,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -599,6 +635,14 @@ namespace PHPSTORM_META {
])); ]));
override(\Illuminate\Contracts\Container\Container::make(0), map([ override(\Illuminate\Contracts\Container\Container::make(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -625,6 +669,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -649,7 +695,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -663,6 +709,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -755,6 +802,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -795,6 +843,14 @@ namespace PHPSTORM_META {
])); ]));
override(\Illuminate\Contracts\Container\Container::makeWith(0), map([ override(\Illuminate\Contracts\Container\Container::makeWith(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -821,6 +877,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -845,7 +903,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -859,6 +917,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -951,6 +1010,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -991,6 +1051,14 @@ namespace PHPSTORM_META {
])); ]));
override(\App::get(0), map([ override(\App::get(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -1017,6 +1085,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -1041,7 +1111,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -1055,6 +1125,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -1147,6 +1218,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -1187,6 +1259,14 @@ namespace PHPSTORM_META {
])); ]));
override(\App::make(0), map([ override(\App::make(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -1213,6 +1293,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -1237,7 +1319,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -1251,6 +1333,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -1343,6 +1426,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -1383,6 +1467,14 @@ namespace PHPSTORM_META {
])); ]));
override(\App::makeWith(0), map([ override(\App::makeWith(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -1409,6 +1501,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -1433,7 +1527,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -1447,6 +1541,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -1539,6 +1634,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -1579,6 +1675,14 @@ namespace PHPSTORM_META {
])); ]));
override(\app(0), map([ override(\app(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -1605,6 +1709,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -1629,7 +1735,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -1643,6 +1749,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -1735,6 +1842,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -1775,6 +1883,14 @@ namespace PHPSTORM_META {
])); ]));
override(\resolve(0), map([ override(\resolve(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -1801,6 +1917,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -1825,7 +1943,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -1839,6 +1957,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -1931,6 +2050,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,
@ -1971,6 +2091,14 @@ namespace PHPSTORM_META {
])); ]));
override(\Psr\Container\ContainerInterface::get(0), map([ override(\Psr\Container\ContainerInterface::get(0), map([
'' => '@', '' => '@',
'Algolia\AlgoliaSearch\AnalyticsClient' => \Algolia\AlgoliaSearch\AnalyticsClient::class,
'Algolia\AlgoliaSearch\SearchClient' => \Algolia\AlgoliaSearch\SearchClient::class,
'Algolia\ScoutExtended\Algolia' => \Algolia\ScoutExtended\Algolia::class,
'Algolia\ScoutExtended\Contracts\LocalSettingsRepositoryContract' => \Algolia\ScoutExtended\Repositories\LocalSettingsRepository::class,
'Algolia\ScoutExtended\Engines\AlgoliaEngine' => \Algolia\ScoutExtended\Engines\AlgoliaEngine::class,
'Algolia\ScoutExtended\Helpers\SearchableFinder' => \Algolia\ScoutExtended\Helpers\SearchableFinder::class,
'Algolia\ScoutExtended\Managers\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Algolia\ScoutExtended\Searchable\AggregatorObserver' => \Algolia\ScoutExtended\Searchable\AggregatorObserver::class,
'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class,
'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class, 'CloudCreativity\LaravelJsonApi\Api\Repository' => \CloudCreativity\LaravelJsonApi\Api\Repository::class,
'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class, 'CloudCreativity\LaravelJsonApi\Contracts\ContainerInterface' => \CloudCreativity\LaravelJsonApi\Container::class,
@ -1997,6 +2125,8 @@ namespace PHPSTORM_META {
'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class,
'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class,
'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class,
'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class,
'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class,
'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class,
'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class,
@ -2021,7 +2151,7 @@ namespace PHPSTORM_META {
'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class,
'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class,
'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class, 'Illuminate\Testing\ParallelTesting' => \Illuminate\Testing\ParallelTesting::class,
'Laravel\Scout\EngineManager' => \Laravel\Scout\EngineManager::class, 'Laravel\Scout\EngineManager' => \Algolia\ScoutExtended\Managers\EngineManager::class,
'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class, 'Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface' => \CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters::class,
'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class, 'Neomerx\JsonApi\Contracts\Http\Headers\HeaderParametersInterface' => \Neomerx\JsonApi\Http\Headers\HeaderParameters::class,
'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class,
@ -2035,6 +2165,7 @@ namespace PHPSTORM_META {
'auth' => \Illuminate\Auth\AuthManager::class, 'auth' => \Illuminate\Auth\AuthManager::class,
'auth.driver' => \Illuminate\Auth\SessionGuard::class, 'auth.driver' => \Illuminate\Auth\SessionGuard::class,
'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class,
'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class,
'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class,
'cache' => \Illuminate\Cache\CacheManager::class, 'cache' => \Illuminate\Cache\CacheManager::class,
'cache.store' => \Illuminate\Cache\Repository::class, 'cache.store' => \Illuminate\Cache\Repository::class,
@ -2127,6 +2258,7 @@ namespace PHPSTORM_META {
'composer' => \Illuminate\Support\Composer::class, 'composer' => \Illuminate\Support\Composer::class,
'cookie' => \Illuminate\Cookie\CookieJar::class, 'cookie' => \Illuminate\Cookie\CookieJar::class,
'db' => \Illuminate\Database\DatabaseManager::class, 'db' => \Illuminate\Database\DatabaseManager::class,
'db.connection' => \Illuminate\Database\MySqlConnection::class,
'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class,
'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class,
'encrypter' => \Illuminate\Encryption\Encrypter::class, 'encrypter' => \Illuminate\Encryption\Encrypter::class,

1
Procfile Normal file
View File

@ -0,0 +1 @@
web: vendor/bin/heroku-php-apache2 public/

View File

@ -1,6 +1,84 @@
# kcal the personal food nutrition journal # kcal the personal food nutrition journal
[![CI Status](https://github.com/kcal-app/kcal/actions/workflows/ci.yml/badge.svg)](https://github.com/kcal-app/kcal/actions/workflows/ci.yml) [![CI Status](https://github.com/kcal-app/kcal/actions/workflows/ci.yml/badge.svg)](https://github.com/kcal-app/kcal/actions/workflows/ci.yml)
[![Coverage \status](https://coveralls.io/repos/github/kcal-app/kcal/badge.svg)](https://coveralls.io/github/kcal-app/kcal?branch=tests) [![Coverage Status](https://coveralls.io/repos/github/kcal-app/kcal/badge.svg)](https://coveralls.io/github/kcal-app/kcal)
## Deployment
### Heroku
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)
The default username and password for a Heroku deployment is `kcal`/`kcal`.
#### Using Heroku CLI
For a manual deploy using Heroku CLI, execute the following after initial deployment:
heroku run php artisan migrate
heroku run php artisan user:add
heroku config:set APP_KEY=$(php artisan --no-ansi key:generate --show)
#### Search drivers
See the [Search](#search-mag) section for information about supported drivers. Additional
environment variable configuration is necessary when using any search driver other
than the default ("null").
#### Redis Add-on
The [Heroku Redis](https://elements.heroku.com/addons/heroku-redis) add-on can be
added to the app and will work without any configuration changes. It is left out
of the default build only because it takes a very long time to provision.
## Search :mag:
The "ingredient" (food or recipe) search for journal entries and recipe ingredients
supports three different backends using the `SCOUT_DRIVER` environment variable.
In all cases, always ensure that the `SCOUT_DRIVER` environment variable is only
set once in kcal's `.env` file.
Currently, the food and recipe *list* searches do not take advantage of these
search drivers. Support for those searches will be added if the Laravel JSON:API
adds support for Scout (see: laravel-json-api/laravel#32).
### Algolia (`algolia`)
1. [Create and/or log in](https://www.algolia.com/users/sign_in) to an Algolia account.
1. Create an application for kcal.
1. Navigate to the application's "API Keys" section.
1. Using the **Application ID** and **Admin API Key** values, update kcal's `.env` file:
SCOUT_DRIVER=algolia
ALGOLIA_APP_ID=<APPLICATION_ID>
ALGOLIA_SECRET=<ADMIN_API_KEY>
### ElasticSearch (`elastic`)
1. Determine the host and port for your ElasticSearch service.
1. Update kcal's `.env` file.
SCOUT_DRIVER=elastic
ELASTIC_HOST=<HOST:PORT>
ELASTIC_PORT=<PORT>
Note: The `ELASTIC_PORT` variable is a convenience option specifically for
Docker Compose configurations and is not strictly required.
1. Run Elastic's migrations.
php artisan elastic:migrate
### Fallback (`null`)
The fallback driver is a simple `WHERE ... LIKE` clause search on a couple of key
fields. Results will not be ordered by relevance, and some fields will not be
searched (e.g. the tags fields). Using one of the other options is highly recommended.
Set `SCOUT_DRIVER=null` in kcal's `.env` file to use the fallback driver.
## Development ## Development
@ -52,5 +130,5 @@
The default username and password is `admin@kcal.test`. The default username and password is `admin@kcal.test`.
Once the application finishing starting, navigate to [http://127.0.0.1:8080](http://127.0.0.1:8080) Once the application finishes starting, navigate to [http://127.0.0.1:8080](http://127.0.0.1:8080)
(or [http://kcal.test:8080](http://kcal.test:8080) if configured). (or [http://kcal.test:8080](http://kcal.test:8080) if configured).

View File

@ -4327,16 +4327,27 @@
{ {
/** @var \Illuminate\Database\DatabaseManager $instance */ /** @var \Illuminate\Database\DatabaseManager $instance */
$instance->setReconnector($reconnector); $instance->setReconnector($reconnector);
}
/**
* Determine if the connected database is a MariaDB database.
*
* @return bool
* @static
*/
public static function isMaria()
{
/** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->isMaria();
} }
/** /**
* Get a schema builder instance for the connection. * Get a schema builder instance for the connection.
* *
* @return \Illuminate\Database\Schema\SQLiteBuilder * @return \Illuminate\Database\Schema\MySqlBuilder
* @static * @static
*/ */
public static function getSchemaBuilder() public static function getSchemaBuilder()
{ {
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getSchemaBuilder(); return $instance->getSchemaBuilder();
} }
/** /**
@ -4344,12 +4355,12 @@
* *
* @param \Illuminate\Filesystem\Filesystem|null $files * @param \Illuminate\Filesystem\Filesystem|null $files
* @param callable|null $processFactory * @param callable|null $processFactory
* @throws \RuntimeException * @return \Illuminate\Database\Schema\MySqlSchemaState
* @static * @static
*/ */
public static function getSchemaState($files = null, $processFactory = null) public static function getSchemaState($files = null, $processFactory = null)
{ {
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getSchemaState($files, $processFactory); return $instance->getSchemaState($files, $processFactory);
} }
/** /**
@ -4360,7 +4371,7 @@
*/ */
public static function useDefaultQueryGrammar() public static function useDefaultQueryGrammar()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->useDefaultQueryGrammar(); $instance->useDefaultQueryGrammar();
} }
/** /**
@ -4371,7 +4382,7 @@
*/ */
public static function useDefaultSchemaGrammar() public static function useDefaultSchemaGrammar()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->useDefaultSchemaGrammar(); $instance->useDefaultSchemaGrammar();
} }
/** /**
@ -4382,7 +4393,7 @@
*/ */
public static function useDefaultPostProcessor() public static function useDefaultPostProcessor()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->useDefaultPostProcessor(); $instance->useDefaultPostProcessor();
} }
/** /**
@ -4395,7 +4406,7 @@
*/ */
public static function table($table, $as = null) public static function table($table, $as = null)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->table($table, $as); return $instance->table($table, $as);
} }
/** /**
@ -4406,7 +4417,7 @@
*/ */
public static function query() public static function query()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->query(); return $instance->query();
} }
/** /**
@ -4420,7 +4431,7 @@
*/ */
public static function selectOne($query, $bindings = [], $useReadPdo = true) public static function selectOne($query, $bindings = [], $useReadPdo = true)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->selectOne($query, $bindings, $useReadPdo); return $instance->selectOne($query, $bindings, $useReadPdo);
} }
/** /**
@ -4433,7 +4444,7 @@
*/ */
public static function selectFromWriteConnection($query, $bindings = []) public static function selectFromWriteConnection($query, $bindings = [])
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->selectFromWriteConnection($query, $bindings); return $instance->selectFromWriteConnection($query, $bindings);
} }
/** /**
@ -4447,7 +4458,7 @@
*/ */
public static function select($query, $bindings = [], $useReadPdo = true) public static function select($query, $bindings = [], $useReadPdo = true)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->select($query, $bindings, $useReadPdo); return $instance->select($query, $bindings, $useReadPdo);
} }
/** /**
@ -4461,7 +4472,7 @@
*/ */
public static function cursor($query, $bindings = [], $useReadPdo = true) public static function cursor($query, $bindings = [], $useReadPdo = true)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->cursor($query, $bindings, $useReadPdo); return $instance->cursor($query, $bindings, $useReadPdo);
} }
/** /**
@ -4474,7 +4485,7 @@
*/ */
public static function insert($query, $bindings = []) public static function insert($query, $bindings = [])
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->insert($query, $bindings); return $instance->insert($query, $bindings);
} }
/** /**
@ -4487,7 +4498,7 @@
*/ */
public static function update($query, $bindings = []) public static function update($query, $bindings = [])
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->update($query, $bindings); return $instance->update($query, $bindings);
} }
/** /**
@ -4500,7 +4511,7 @@
*/ */
public static function delete($query, $bindings = []) public static function delete($query, $bindings = [])
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->delete($query, $bindings); return $instance->delete($query, $bindings);
} }
/** /**
@ -4513,7 +4524,7 @@
*/ */
public static function statement($query, $bindings = []) public static function statement($query, $bindings = [])
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->statement($query, $bindings); return $instance->statement($query, $bindings);
} }
/** /**
@ -4526,7 +4537,7 @@
*/ */
public static function affectingStatement($query, $bindings = []) public static function affectingStatement($query, $bindings = [])
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->affectingStatement($query, $bindings); return $instance->affectingStatement($query, $bindings);
} }
/** /**
@ -4538,7 +4549,7 @@
*/ */
public static function unprepared($query) public static function unprepared($query)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->unprepared($query); return $instance->unprepared($query);
} }
/** /**
@ -4550,7 +4561,7 @@
*/ */
public static function pretend($callback) public static function pretend($callback)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->pretend($callback); return $instance->pretend($callback);
} }
/** /**
@ -4563,7 +4574,7 @@
*/ */
public static function bindValues($statement, $bindings) public static function bindValues($statement, $bindings)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->bindValues($statement, $bindings); $instance->bindValues($statement, $bindings);
} }
/** /**
@ -4575,7 +4586,7 @@
*/ */
public static function prepareBindings($bindings) public static function prepareBindings($bindings)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->prepareBindings($bindings); return $instance->prepareBindings($bindings);
} }
/** /**
@ -4589,7 +4600,7 @@
*/ */
public static function logQuery($query, $bindings, $time = null) public static function logQuery($query, $bindings, $time = null)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->logQuery($query, $bindings, $time); $instance->logQuery($query, $bindings, $time);
} }
/** /**
@ -4601,7 +4612,7 @@
*/ */
public static function listen($callback) public static function listen($callback)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->listen($callback); $instance->listen($callback);
} }
/** /**
@ -4613,7 +4624,7 @@
*/ */
public static function raw($value) public static function raw($value)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->raw($value); return $instance->raw($value);
} }
/** /**
@ -4625,7 +4636,7 @@
*/ */
public static function recordsHaveBeenModified($value = true) public static function recordsHaveBeenModified($value = true)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->recordsHaveBeenModified($value); $instance->recordsHaveBeenModified($value);
} }
/** /**
@ -4636,7 +4647,7 @@
*/ */
public static function forgetRecordModificationState() public static function forgetRecordModificationState()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->forgetRecordModificationState(); $instance->forgetRecordModificationState();
} }
/** /**
@ -4647,7 +4658,7 @@
*/ */
public static function isDoctrineAvailable() public static function isDoctrineAvailable()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->isDoctrineAvailable(); return $instance->isDoctrineAvailable();
} }
/** /**
@ -4660,7 +4671,7 @@
*/ */
public static function getDoctrineColumn($table, $column) public static function getDoctrineColumn($table, $column)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getDoctrineColumn($table, $column); return $instance->getDoctrineColumn($table, $column);
} }
/** /**
@ -4671,7 +4682,7 @@
*/ */
public static function getDoctrineSchemaManager() public static function getDoctrineSchemaManager()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getDoctrineSchemaManager(); return $instance->getDoctrineSchemaManager();
} }
/** /**
@ -4682,7 +4693,7 @@
*/ */
public static function getDoctrineConnection() public static function getDoctrineConnection()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getDoctrineConnection(); return $instance->getDoctrineConnection();
} }
/** /**
@ -4693,7 +4704,7 @@
*/ */
public static function getPdo() public static function getPdo()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getPdo(); return $instance->getPdo();
} }
/** /**
@ -4704,7 +4715,7 @@
*/ */
public static function getRawPdo() public static function getRawPdo()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getRawPdo(); return $instance->getRawPdo();
} }
/** /**
@ -4715,7 +4726,7 @@
*/ */
public static function getReadPdo() public static function getReadPdo()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getReadPdo(); return $instance->getReadPdo();
} }
/** /**
@ -4726,31 +4737,31 @@
*/ */
public static function getRawReadPdo() public static function getRawReadPdo()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getRawReadPdo(); return $instance->getRawReadPdo();
} }
/** /**
* Set the PDO connection. * Set the PDO connection.
* *
* @param \PDO|\Closure|null $pdo * @param \PDO|\Closure|null $pdo
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setPdo($pdo) public static function setPdo($pdo)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setPdo($pdo); return $instance->setPdo($pdo);
} }
/** /**
* Set the PDO connection used for reading. * Set the PDO connection used for reading.
* *
* @param \PDO|\Closure|null $pdo * @param \PDO|\Closure|null $pdo
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setReadPdo($pdo) public static function setReadPdo($pdo)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setReadPdo($pdo); return $instance->setReadPdo($pdo);
} }
/** /**
@ -4761,7 +4772,7 @@
*/ */
public static function getName() public static function getName()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getName(); return $instance->getName();
} }
/** /**
@ -4773,7 +4784,7 @@
*/ */
public static function getConfig($option = null) public static function getConfig($option = null)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getConfig($option); return $instance->getConfig($option);
} }
/** /**
@ -4784,7 +4795,7 @@
*/ */
public static function getDriverName() public static function getDriverName()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getDriverName(); return $instance->getDriverName();
} }
/** /**
@ -4795,19 +4806,19 @@
*/ */
public static function getQueryGrammar() public static function getQueryGrammar()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getQueryGrammar(); return $instance->getQueryGrammar();
} }
/** /**
* Set the query grammar used by the connection. * Set the query grammar used by the connection.
* *
* @param \Illuminate\Database\Query\Grammars\Grammar $grammar * @param \Illuminate\Database\Query\Grammars\Grammar $grammar
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setQueryGrammar($grammar) public static function setQueryGrammar($grammar)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setQueryGrammar($grammar); return $instance->setQueryGrammar($grammar);
} }
/** /**
@ -4818,19 +4829,19 @@
*/ */
public static function getSchemaGrammar() public static function getSchemaGrammar()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getSchemaGrammar(); return $instance->getSchemaGrammar();
} }
/** /**
* Set the schema grammar used by the connection. * Set the schema grammar used by the connection.
* *
* @param \Illuminate\Database\Schema\Grammars\Grammar $grammar * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setSchemaGrammar($grammar) public static function setSchemaGrammar($grammar)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setSchemaGrammar($grammar); return $instance->setSchemaGrammar($grammar);
} }
/** /**
@ -4841,19 +4852,19 @@
*/ */
public static function getPostProcessor() public static function getPostProcessor()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getPostProcessor(); return $instance->getPostProcessor();
} }
/** /**
* Set the query post processor used by the connection. * Set the query post processor used by the connection.
* *
* @param \Illuminate\Database\Query\Processors\Processor $processor * @param \Illuminate\Database\Query\Processors\Processor $processor
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setPostProcessor($processor) public static function setPostProcessor($processor)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setPostProcessor($processor); return $instance->setPostProcessor($processor);
} }
/** /**
@ -4864,19 +4875,19 @@
*/ */
public static function getEventDispatcher() public static function getEventDispatcher()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getEventDispatcher(); return $instance->getEventDispatcher();
} }
/** /**
* Set the event dispatcher instance on the connection. * Set the event dispatcher instance on the connection.
* *
* @param \Illuminate\Contracts\Events\Dispatcher $events * @param \Illuminate\Contracts\Events\Dispatcher $events
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setEventDispatcher($events) public static function setEventDispatcher($events)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setEventDispatcher($events); return $instance->setEventDispatcher($events);
} }
/** /**
@ -4887,19 +4898,19 @@
*/ */
public static function unsetEventDispatcher() public static function unsetEventDispatcher()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->unsetEventDispatcher(); $instance->unsetEventDispatcher();
} }
/** /**
* Set the transaction manager instance on the connection. * Set the transaction manager instance on the connection.
* *
* @param \Illuminate\Database\DatabaseTransactionsManager $manager * @param \Illuminate\Database\DatabaseTransactionsManager $manager
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setTransactionManager($manager) public static function setTransactionManager($manager)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setTransactionManager($manager); return $instance->setTransactionManager($manager);
} }
/** /**
@ -4910,7 +4921,7 @@
*/ */
public static function unsetTransactionManager() public static function unsetTransactionManager()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->unsetTransactionManager(); $instance->unsetTransactionManager();
} }
/** /**
@ -4921,7 +4932,7 @@
*/ */
public static function pretending() public static function pretending()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->pretending(); return $instance->pretending();
} }
/** /**
@ -4932,7 +4943,7 @@
*/ */
public static function getQueryLog() public static function getQueryLog()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getQueryLog(); return $instance->getQueryLog();
} }
/** /**
@ -4943,7 +4954,7 @@
*/ */
public static function flushQueryLog() public static function flushQueryLog()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->flushQueryLog(); $instance->flushQueryLog();
} }
/** /**
@ -4954,7 +4965,7 @@
*/ */
public static function enableQueryLog() public static function enableQueryLog()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->enableQueryLog(); $instance->enableQueryLog();
} }
/** /**
@ -4965,7 +4976,7 @@
*/ */
public static function disableQueryLog() public static function disableQueryLog()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->disableQueryLog(); $instance->disableQueryLog();
} }
/** /**
@ -4976,7 +4987,7 @@
*/ */
public static function logging() public static function logging()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->logging(); return $instance->logging();
} }
/** /**
@ -4987,19 +4998,19 @@
*/ */
public static function getDatabaseName() public static function getDatabaseName()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getDatabaseName(); return $instance->getDatabaseName();
} }
/** /**
* Set the name of the connected database. * Set the name of the connected database.
* *
* @param string $database * @param string $database
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setDatabaseName($database) public static function setDatabaseName($database)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setDatabaseName($database); return $instance->setDatabaseName($database);
} }
/** /**
@ -5010,19 +5021,19 @@
*/ */
public static function getTablePrefix() public static function getTablePrefix()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->getTablePrefix(); return $instance->getTablePrefix();
} }
/** /**
* Set the table prefix in use by the connection. * Set the table prefix in use by the connection.
* *
* @param string $prefix * @param string $prefix
* @return \Illuminate\Database\SQLiteConnection * @return \Illuminate\Database\MySqlConnection
* @static * @static
*/ */
public static function setTablePrefix($prefix) public static function setTablePrefix($prefix)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->setTablePrefix($prefix); return $instance->setTablePrefix($prefix);
} }
/** /**
@ -5034,7 +5045,7 @@
*/ */
public static function withTablePrefix($grammar) public static function withTablePrefix($grammar)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->withTablePrefix($grammar); return $instance->withTablePrefix($grammar);
} }
/** /**
@ -5047,7 +5058,7 @@
*/ */
public static function resolverFor($driver, $callback) public static function resolverFor($driver, $callback)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
\Illuminate\Database\SQLiteConnection::resolverFor($driver, $callback); \Illuminate\Database\MySqlConnection::resolverFor($driver, $callback);
} }
/** /**
* Get the connection resolver for the given driver. * Get the connection resolver for the given driver.
@ -5058,7 +5069,7 @@
*/ */
public static function getResolver($driver) public static function getResolver($driver)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
return \Illuminate\Database\SQLiteConnection::getResolver($driver); return \Illuminate\Database\MySqlConnection::getResolver($driver);
} }
/** /**
* Execute a Closure within a transaction. * Execute a Closure within a transaction.
@ -5071,7 +5082,7 @@
*/ */
public static function transaction($callback, $attempts = 1) public static function transaction($callback, $attempts = 1)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->transaction($callback, $attempts); return $instance->transaction($callback, $attempts);
} }
/** /**
@ -5083,7 +5094,7 @@
*/ */
public static function beginTransaction() public static function beginTransaction()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->beginTransaction(); $instance->beginTransaction();
} }
/** /**
@ -5095,7 +5106,7 @@
*/ */
public static function commit() public static function commit()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->commit(); $instance->commit();
} }
/** /**
@ -5108,7 +5119,7 @@
*/ */
public static function rollBack($toLevel = null) public static function rollBack($toLevel = null)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->rollBack($toLevel); $instance->rollBack($toLevel);
} }
/** /**
@ -5119,7 +5130,7 @@
*/ */
public static function transactionLevel() public static function transactionLevel()
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
return $instance->transactionLevel(); return $instance->transactionLevel();
} }
/** /**
@ -5131,7 +5142,7 @@
*/ */
public static function afterCommit($callback) public static function afterCommit($callback)
{ //Method inherited from \Illuminate\Database\Connection { //Method inherited from \Illuminate\Database\Connection
/** @var \Illuminate\Database\SQLiteConnection $instance */ /** @var \Illuminate\Database\MySqlConnection $instance */
$instance->afterCommit($callback); $instance->afterCommit($callback);
} }
@ -11839,7 +11850,7 @@
*/ */
public static function createDatabase($name) public static function createDatabase($name)
{ {
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->createDatabase($name); return $instance->createDatabase($name);
} }
/** /**
@ -11851,8 +11862,32 @@
*/ */
public static function dropDatabaseIfExists($name) public static function dropDatabaseIfExists($name)
{ {
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->dropDatabaseIfExists($name); return $instance->dropDatabaseIfExists($name);
}
/**
* Determine if the given table exists.
*
* @param string $table
* @return bool
* @static
*/
public static function hasTable($table)
{
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->hasTable($table);
}
/**
* Get the column listing for a given table.
*
* @param string $table
* @return array
* @static
*/
public static function getColumnListing($table)
{
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->getColumnListing($table);
} }
/** /**
* Drop all tables from the database. * Drop all tables from the database.
@ -11862,7 +11897,7 @@
*/ */
public static function dropAllTables() public static function dropAllTables()
{ {
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->dropAllTables(); $instance->dropAllTables();
} }
/** /**
@ -11873,19 +11908,30 @@
*/ */
public static function dropAllViews() public static function dropAllViews()
{ {
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->dropAllViews(); $instance->dropAllViews();
} }
/** /**
* Empty the database file. * Get all of the table names for the database.
* *
* @return void * @return array
* @static * @static
*/ */
public static function refreshDatabaseFile() public static function getAllTables()
{ {
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->refreshDatabaseFile(); return $instance->getAllTables();
}
/**
* Get all of the view names for the database.
*
* @return array
* @static
*/
public static function getAllViews()
{
/** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->getAllViews();
} }
/** /**
* Set the default string length for migrations. * Set the default string length for migrations.
@ -11896,7 +11942,7 @@
*/ */
public static function defaultStringLength($length) public static function defaultStringLength($length)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
\Illuminate\Database\Schema\SQLiteBuilder::defaultStringLength($length); \Illuminate\Database\Schema\MySqlBuilder::defaultStringLength($length);
} }
/** /**
* Set the default morph key type for migrations. * Set the default morph key type for migrations.
@ -11907,7 +11953,7 @@
*/ */
public static function defaultMorphKeyType($type) public static function defaultMorphKeyType($type)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
\Illuminate\Database\Schema\SQLiteBuilder::defaultMorphKeyType($type); \Illuminate\Database\Schema\MySqlBuilder::defaultMorphKeyType($type);
} }
/** /**
* Set the default morph key type for migrations to UUIDs. * Set the default morph key type for migrations to UUIDs.
@ -11917,19 +11963,7 @@
*/ */
public static function morphUsingUuids() public static function morphUsingUuids()
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
\Illuminate\Database\Schema\SQLiteBuilder::morphUsingUuids(); \Illuminate\Database\Schema\MySqlBuilder::morphUsingUuids();
}
/**
* 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\SQLiteBuilder $instance */
return $instance->hasTable($table);
} }
/** /**
* Determine if the given table has a given column. * Determine if the given table has a given column.
@ -11941,7 +11975,7 @@
*/ */
public static function hasColumn($table, $column) public static function hasColumn($table, $column)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->hasColumn($table, $column); return $instance->hasColumn($table, $column);
} }
/** /**
@ -11954,7 +11988,7 @@
*/ */
public static function hasColumns($table, $columns) public static function hasColumns($table, $columns)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->hasColumns($table, $columns); return $instance->hasColumns($table, $columns);
} }
/** /**
@ -11967,20 +12001,8 @@
*/ */
public static function getColumnType($table, $column) public static function getColumnType($table, $column)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->getColumnType($table, $column); return $instance->getColumnType($table, $column);
}
/**
* Get the column listing for a given table.
*
* @param string $table
* @return array
* @static
*/
public static function getColumnListing($table)
{ //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
return $instance->getColumnListing($table);
} }
/** /**
* Modify a table on the schema. * Modify a table on the schema.
@ -11992,7 +12014,7 @@
*/ */
public static function table($table, $callback) public static function table($table, $callback)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->table($table, $callback); $instance->table($table, $callback);
} }
/** /**
@ -12005,7 +12027,7 @@
*/ */
public static function create($table, $callback) public static function create($table, $callback)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->create($table, $callback); $instance->create($table, $callback);
} }
/** /**
@ -12017,7 +12039,7 @@
*/ */
public static function drop($table) public static function drop($table)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->drop($table); $instance->drop($table);
} }
/** /**
@ -12029,7 +12051,7 @@
*/ */
public static function dropIfExists($table) public static function dropIfExists($table)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->dropIfExists($table); $instance->dropIfExists($table);
} }
/** /**
@ -12042,7 +12064,7 @@
*/ */
public static function dropColumns($table, $columns) public static function dropColumns($table, $columns)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->dropColumns($table, $columns); $instance->dropColumns($table, $columns);
} }
/** /**
@ -12054,20 +12076,8 @@
*/ */
public static function dropAllTypes() public static function dropAllTypes()
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->dropAllTypes(); $instance->dropAllTypes();
}
/**
* Get all of the table names for the database.
*
* @return void
* @throws \LogicException
* @static
*/
public static function getAllTables()
{ //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */
$instance->getAllTables();
} }
/** /**
* Rename a table on the schema. * Rename a table on the schema.
@ -12079,7 +12089,7 @@
*/ */
public static function rename($from, $to) public static function rename($from, $to)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->rename($from, $to); $instance->rename($from, $to);
} }
/** /**
@ -12090,7 +12100,7 @@
*/ */
public static function enableForeignKeyConstraints() public static function enableForeignKeyConstraints()
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->enableForeignKeyConstraints(); return $instance->enableForeignKeyConstraints();
} }
/** /**
@ -12101,7 +12111,7 @@
*/ */
public static function disableForeignKeyConstraints() public static function disableForeignKeyConstraints()
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->disableForeignKeyConstraints(); return $instance->disableForeignKeyConstraints();
} }
/** /**
@ -12117,7 +12127,7 @@
*/ */
public static function registerCustomDoctrineType($class, $name, $type) public static function registerCustomDoctrineType($class, $name, $type)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->registerCustomDoctrineType($class, $name, $type); $instance->registerCustomDoctrineType($class, $name, $type);
} }
/** /**
@ -12128,19 +12138,19 @@
*/ */
public static function getConnection() public static function getConnection()
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->getConnection(); return $instance->getConnection();
} }
/** /**
* Set the database connection instance. * Set the database connection instance.
* *
* @param \Illuminate\Database\Connection $connection * @param \Illuminate\Database\Connection $connection
* @return \Illuminate\Database\Schema\SQLiteBuilder * @return \Illuminate\Database\Schema\MySqlBuilder
* @static * @static
*/ */
public static function setConnection($connection) public static function setConnection($connection)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
return $instance->setConnection($connection); return $instance->setConnection($connection);
} }
/** /**
@ -12152,7 +12162,7 @@
*/ */
public static function blueprintResolver($resolver) public static function blueprintResolver($resolver)
{ //Method inherited from \Illuminate\Database\Schema\Builder { //Method inherited from \Illuminate\Database\Schema\Builder
/** @var \Illuminate\Database\Schema\SQLiteBuilder $instance */ /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */
$instance->blueprintResolver($resolver); $instance->blueprintResolver($resolver);
} }
@ -16665,6 +16675,19 @@ namespace {
return $instance->unless($value, $callback, $default); return $instance->unless($value, $callback, $default);
} }
/**
*
*
* @see \Algolia\ScoutExtended\ScoutExtendedServiceProvider::registerMacros()
* @param array $array
* @param array|null $transformers
* @static
*/
public static function transform($array, $transformers = null)
{
return \Illuminate\Database\Eloquent\Builder::transform($array, $transformers);
}
/** /**
* Set the columns to be selected. * Set the columns to be selected.
* *

47
app.json Normal file
View File

@ -0,0 +1,47 @@
{
"name": "kcal the personal food nutrition journal",
"description": "Self-hostable web app for food and recipe nutrition tracking.",
"keywords": [
"cooking",
"fitness",
"food",
"heath",
"laravel",
"nutrition",
"php",
"recipes",
"self-host"
],
"repository": "https://github.com/kcal-app/kcal",
"website": "http://demo.kcal.cooking",
"buildpacks": [
{
"url": "heroku/php"
}
],
"addons": [
"heroku-postgresql"
],
"env": {
"APP_KEY": {
"description": "Used for the auth system.",
"generator": "secret"
},
"APP_TIMEZONE": {
"description": "Application time zone.",
"value": "Etc/UTC"
},
"DB_CONNECTION": {
"description": "Database driver.",
"value": "pgsql"
},
"SCOUT_DRIVER": {
"description": "Search driver ('algolia', 'elastic', or 'null').",
"value": "null"
}
},
"scripts": {
"postdeploy": "php artisan migrate --force && php artisan user:add kcal kcal --name=Admin"
},
"success_url": "/"
}

View File

@ -0,0 +1,90 @@
<?php
namespace App\Console\Commands;
use App\Models\User;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
class UserAdd extends Command
{
/**
* @inheritdoc
*/
protected $signature = 'user:add
{username? : Username}
{password? : Password}
{--name= : User short name}';
/**
* @inheritdoc
*/
protected $description = 'Create a new user.';
/**
* @inheritdoc
*/
public function __construct()
{
parent::__construct();
}
/**
* Create a user, prompting for user information as needed.
*/
public function handle(): int
{
$arguments = $this->arguments();
if (!$arguments['username']) {
$arguments['username'] = $this->ask('Enter a username for the user');
}
// Check for an existing user.
if (User::whereUsername($arguments['username'])->exists()) {
$this->error("User `{$arguments['username']}` already exists.");
return 1;
}
$random_password = FALSE;
if (!$arguments['password']) {
$arguments['password'] = $this->secret('Enter a password for the user (leave blank for a random password)');
if (!empty($arguments['password'])) {
$password_confirm = $this->secret('Re-type the password to confirm');
if ($arguments['password'] !== $password_confirm) {
$this->error('Passwords did not match.');
return 1;
}
}
}
if (empty($arguments['password'])) {
$arguments['password'] = Str::random();
$random_password = TRUE;
}
$options = $this->options();
if (!$options['name']) {
$options['name'] = $this->ask('Enter a name for the user (optional)');
}
if (empty($arguments['username']) || empty($arguments['password'])) {
$this->error('Username and password must be provided.');
return 1;
}
User::create([
'username' => $arguments['username'],
'password' => Hash::make($arguments['password']),
'name' => $options['name'] ?: $arguments['username'],
'remember_token' => Str::random(10),
])->save();
$this->info("User `{$arguments['username']}` added!");
if ($random_password) {
$this->info("Password: {$arguments['password']}");
}
return 0;
}
}

View File

@ -5,6 +5,8 @@ namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest; use App\Http\Requests\Auth\LoginRequest;
use App\Providers\RouteServiceProvider; use App\Providers\RouteServiceProvider;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
@ -12,43 +14,30 @@ class AuthenticatedSessionController extends Controller
{ {
/** /**
* Display the login view. * Display the login view.
*
* @return \Illuminate\View\View
*/ */
public function create() public function create(): View
{ {
return view('auth.login'); return view('auth.login');
} }
/** /**
* Handle an incoming authentication request. * Handle an incoming authentication request.
*
* @param \App\Http\Requests\Auth\LoginRequest $request
* @return \Illuminate\Http\RedirectResponse
*/ */
public function store(LoginRequest $request) public function store(LoginRequest $request): RedirectResponse
{ {
$request->authenticate(); $request->authenticate();
$request->session()->regenerate(); $request->session()->regenerate();
return redirect(RouteServiceProvider::HOME); return redirect(RouteServiceProvider::HOME);
} }
/** /**
* Destroy an authenticated session. * Destroy an authenticated session.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse
*/ */
public function destroy(Request $request) public function destroy(Request $request): RedirectResponse
{ {
Auth::guard('web')->logout(); Auth::guard('web')->logout();
$request->session()->invalidate(); $request->session()->invalidate();
$request->session()->regenerateToken(); $request->session()->regenerateToken();
return redirect('/'); return redirect('/');
} }
} }

View File

@ -1,45 +0,0 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Validation\ValidationException;
class ConfirmablePasswordController extends Controller
{
/**
* Show the confirm password view.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\View\View
*/
public function show(Request $request)
{
return view('auth.confirm-password');
}
/**
* Confirm the user's password.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
public function store(Request $request)
{
if (! Auth::guard('web')->validate([
'email' => $request->user()->email,
'password' => $request->password,
])) {
throw ValidationException::withMessages([
'password' => __('auth.password'),
]);
}
$request->session()->put('auth.password_confirmed_at', time());
return redirect()->intended(RouteServiceProvider::HOME);
}
}

View File

@ -1,63 +0,0 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Auth\Events\PasswordReset;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Password;
use Illuminate\Support\Str;
class NewPasswordController extends Controller
{
/**
* Display the password reset view.
*
* @return \Illuminate\View\View
*/
public function create(Request $request)
{
return view('auth.reset-password', ['request' => $request]);
}
/**
* Handle an incoming new password request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse
*
* @throws \Illuminate\Validation\ValidationException
*/
public function store(Request $request)
{
$request->validate([
'token' => 'required',
'email' => 'required|email',
'password' => 'required|string|confirmed|min:8',
]);
// Here we will attempt to reset the user's password. If it is successful we
// will update the password on an actual user model and persist it to the
// database. Otherwise we will parse the error and return the response.
$status = Password::reset(
$request->only('email', 'password', 'password_confirmation', 'token'),
function ($user) use ($request) {
$user->forceFill([
'password' => Hash::make($request->password),
'remember_token' => Str::random(60),
])->save();
event(new PasswordReset($user));
}
);
// If the password was successfully reset, we will redirect the user back to
// the application's home authenticated view. If there is an error we can
// redirect them back to where they came from with their error message.
return $status == Password::PASSWORD_RESET
? redirect()->route('login')->with('status', __($status))
: back()->withInput($request->only('email'))
->withErrors(['email' => __($status)]);
}
}

View File

@ -1,47 +0,0 @@
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Password;
class PasswordResetLinkController extends Controller
{
/**
* Display the password reset link request view.
*
* @return \Illuminate\View\View
*/
public function create()
{
return view('auth.forgot-password');
}
/**
* Handle an incoming password reset link request.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\RedirectResponse
*
* @throws \Illuminate\Validation\ValidationException
*/
public function store(Request $request)
{
$request->validate([
'email' => 'required|email',
]);
// We will send the password reset link to this user. Once we have attempted
// to send the link, we will examine the response then see the message we
// need to show to the user. Finally, we'll send out a proper response.
$status = Password::sendResetLink(
$request->only('email')
);
return $status == Password::RESET_LINK_SENT
? back()->with('status', __($status))
: back()->withInput($request->only('email'))
->withErrors(['email' => __($status)]);
}
}

View File

@ -4,6 +4,7 @@ namespace App\Http\Controllers;
use App\Models\Food; use App\Models\Food;
use App\Models\Recipe; use App\Models\Recipe;
use App\Search\Ingredient;
use ElasticScoutDriverPlus\Builders\MultiMatchQueryBuilder; use ElasticScoutDriverPlus\Builders\MultiMatchQueryBuilder;
use ElasticScoutDriverPlus\Builders\TermsQueryBuilder; use ElasticScoutDriverPlus\Builders\TermsQueryBuilder;
use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Collection;
@ -20,28 +21,62 @@ class IngredientPickerController extends Controller
$results = new Collection(); $results = new Collection();
$term = $request->query->get('term'); $term = $request->query->get('term');
if (!empty($term)) { if (!empty($term)) {
$results = Food::boolSearch() $results = match (config('scout.driver')) {
->join(Recipe::class) 'algolia' => $this->searchWithAlgolia($term),
'elastic' => $this->searchWithElasticSearch($term),
default => $this->searchWithDatabaseLike($term),
};
// Attempt to match exact phrase first.
->should('match_phrase', ['name' => $term])
// Attempt multi-match search on all relevant fields with search-as-you-type on name.
->should((new MultiMatchQueryBuilder())
->fields(['name', 'name._2gram', 'name._3gram', 'detail', 'brand', 'source'])
->query($term)
->type('bool_prefix')
->analyzer('simple')
->fuzziness('AUTO'))
// Attempt to match on any tags in the term.
->should((new TermsQueryBuilder())
->terms('tags', explode(' ', $term)))
// Get resulting models.
->execute()
->models();
} }
return response()->json($results->values()); return response()->json($results->values());
} }
/**
* Search using an Algolia service.
*/
private function searchWithAlgolia(string $term): Collection {
return Ingredient::search($term)->take(10)->get();
}
/**
* Search using an ElasticSearch service.
*/
private function searchWithElasticSearch(string $term): Collection {
return Food::boolSearch()
->join(Recipe::class)
// Attempt to match exact phrase first.
->should('match_phrase', ['name' => $term])
// Attempt multi-match search on all relevant fields with search-as-you-type on name.
->should((new MultiMatchQueryBuilder())
->fields(['name', 'name._2gram', 'name._3gram', 'detail', 'brand', 'source'])
->query($term)
->type('bool_prefix')
->analyzer('simple')
->fuzziness('AUTO'))
// Attempt to match on any tags in the term.
->should((new TermsQueryBuilder())
->terms('tags', explode(' ', $term)))
// Get resulting models.
->execute()
->models();
}
/**
* Search using basic database WHERE ... LIKE queries.
*/
private function searchWithDatabaseLike(string $term): Collection {
$foods = Food::query()->where('foods.name', 'like', "%{$term}%")
->orWhere('foods.detail', 'like', "%{$term}%")
->orWhere('foods.brand', 'like', "%{$term}%")
->get();
$recipes = Recipe::query()->where('recipes.name', 'like', "%{$term}%")
->orWhere('recipes.description', 'like', "%{$term}%")
->orWhere('recipes.source', 'like', "%{$term}%")
->get();
return $foods->merge($recipes);
}
} }

View File

@ -29,7 +29,7 @@ class LoginRequest extends FormRequest
public function rules() public function rules()
{ {
return [ return [
'email' => 'required|string|email', 'username' => 'required|string',
'password' => 'required|string', 'password' => 'required|string',
]; ];
} }
@ -45,11 +45,11 @@ class LoginRequest extends FormRequest
{ {
$this->ensureIsNotRateLimited(); $this->ensureIsNotRateLimited();
if (! Auth::attempt($this->only('email', 'password'), $this->filled('remember'))) { if (! Auth::attempt($this->only('username', 'password'), $this->filled('remember'))) {
RateLimiter::hit($this->throttleKey()); RateLimiter::hit($this->throttleKey());
throw ValidationException::withMessages([ throw ValidationException::withMessages([
'email' => 'auth.failed', 'username' => 'auth.failed',
]); ]);
} }
@ -74,7 +74,7 @@ class LoginRequest extends FormRequest
$seconds = RateLimiter::availableIn($this->throttleKey()); $seconds = RateLimiter::availableIn($this->throttleKey());
throw ValidationException::withMessages([ throw ValidationException::withMessages([
'email' => trans('auth.throttle', [ 'username' => trans('auth.throttle', [
'seconds' => $seconds, 'seconds' => $seconds,
'minutes' => ceil($seconds / 60), 'minutes' => ceil($seconds / 60),
]), ]),
@ -88,6 +88,6 @@ class LoginRequest extends FormRequest
*/ */
public function throttleKey() public function throttleKey()
{ {
return Str::lower($this->input('email')).'|'.$this->ip(); return Str::lower($this->input('username')).'|'.$this->ip();
} }
} }

View File

@ -26,8 +26,8 @@ class UserSchema extends SchemaProvider
public function getAttributes($resource): array public function getAttributes($resource): array
{ {
return [ return [
'username' => $resource->username,
'name' => $resource->name, 'name' => $resource->name,
'email' => $resource->email,
'createdAt' => $resource->created_at, 'createdAt' => $resource->created_at,
'updatedAt' => $resource->updated_at, 'updatedAt' => $resource->updated_at,
]; ];

View File

@ -15,29 +15,29 @@ use Illuminate\Support\Facades\Auth;
* *
* @property int $id * @property int $id
* @property string $name * @property string $name
* @property string $email * @property string $username
* @property string $password * @property string $password
* @property string|null $remember_token * @property string|null $remember_token
* @property \Illuminate\Support\Carbon|null $created_at * @property Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at * @property Carbon|null $updated_at
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Goal[] $goals
* @property-read int|null $goals_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\JournalEntry[] $journalEntries
* @property-read int|null $journal_entries_count
* @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications * @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications
* @property-read int|null $notifications_count * @property-read int|null $notifications_count
* @method static \Database\Factories\UserFactory factory(...$parameters)
* @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|User newQuery() * @method static \Illuminate\Database\Eloquent\Builder|User newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|User query() * @method static \Illuminate\Database\Eloquent\Builder|User query()
* @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value) * @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 whereId($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 whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($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 whereRememberToken($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|User whereUsername($value)
* @mixin \Eloquent * @mixin \Eloquent
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Goal[] $goals
* @property-read int|null $goals_count
* @method static \Database\Factories\UserFactory factory(...$parameters)
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\JournalEntry[] $journalEntries
* @property-read int|null $journal_entries_count
*/ */
final class User extends Authenticatable final class User extends Authenticatable
{ {
@ -47,9 +47,9 @@ final class User extends Authenticatable
* @inheritdoc * @inheritdoc
*/ */
protected $fillable = [ protected $fillable = [
'name', 'username',
'email',
'password', 'password',
'name',
]; ];
/** /**

View File

@ -2,6 +2,7 @@
namespace App\Providers; namespace App\Providers;
use App\Search\Ingredient;
use CloudCreativity\LaravelJsonApi\LaravelJsonApi; use CloudCreativity\LaravelJsonApi\LaravelJsonApi;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
@ -25,5 +26,9 @@ class AppServiceProvider extends ServiceProvider
public function boot() public function boot()
{ {
LaravelJsonApi::defaultApi('v1'); LaravelJsonApi::defaultApi('v1');
if (config('scout.driver') === 'algolia') {
Ingredient::bootSearchable();
}
} }
} }

View File

@ -2,10 +2,7 @@
namespace App\Providers; namespace App\Providers;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Event;
class EventServiceProvider extends ServiceProvider class EventServiceProvider extends ServiceProvider
{ {
@ -14,11 +11,7 @@ class EventServiceProvider extends ServiceProvider
* *
* @var array * @var array
*/ */
protected $listen = [ protected $listen = [];
Registered::class => [
SendEmailVerificationNotification::class,
],
];
/** /**
* Register any events for your application. * Register any events for your application.

16
app/Search/Ingredient.php Normal file
View File

@ -0,0 +1,16 @@
<?php
namespace App\Search;
use Algolia\ScoutExtended\Searchable\Aggregator;
use App\Models\Food;
use App\Models\Recipe;
class Ingredient extends Aggregator
{
/**
* @inheritdoc
*/
protected $models = [Food::class, Recipe::class];
}

View File

@ -5,6 +5,12 @@
"license": "MPL-2.0", "license": "MPL-2.0",
"require": { "require": {
"php": "^8.0", "php": "^8.0",
"ext-fileinfo": "*",
"ext-gd": "*",
"ext-json": "*",
"ext-mbstring": "*",
"algolia/algoliasearch-client-php": "^2.7",
"algolia/scout-extended": "^1.15",
"babenkoivan/elastic-migrations": "^1.4", "babenkoivan/elastic-migrations": "^1.4",
"babenkoivan/elastic-scout-driver": "^1.3", "babenkoivan/elastic-scout-driver": "^1.3",
"babenkoivan/elastic-scout-driver-plus": "^2.0", "babenkoivan/elastic-scout-driver-plus": "^2.0",

218
composer.lock generated
View File

@ -4,8 +4,163 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "f1b321a1250402dfe856aaab38adb2db", "content-hash": "b404494454b0ff89c0db3d7eb87e3a44",
"packages": [ "packages": [
{
"name": "algolia/algoliasearch-client-php",
"version": "2.7.3",
"source": {
"type": "git",
"url": "https://github.com/algolia/algoliasearch-client-php.git",
"reference": "142a382e4649db0cb64d9eb8893872f1a4ba8dd3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/algolia/algoliasearch-client-php/zipball/142a382e4649db0cb64d9eb8893872f1a4ba8dd3",
"reference": "142a382e4649db0cb64d9eb8893872f1a4ba8dd3",
"shasum": ""
},
"require": {
"ext-curl": "*",
"ext-json": "*",
"ext-mbstring": "*",
"php": "^5.3 || ^7.0 || ^8.0",
"psr/http-message": "^1.0",
"psr/log": "^1.0",
"psr/simple-cache": "^1.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.0",
"fzaninotto/faker": "^1.8",
"julienbourdeau/phpunit": "4.8.37",
"symfony/yaml": "^2.0 || ^4.0"
},
"suggest": {
"guzzlehttp/guzzle": "If you prefer to use Guzzle HTTP client instead of the Http Client implementation provided by the package"
},
"bin": [
"bin/algolia-doctor"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-2.0": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Algolia\\AlgoliaSearch\\": "src/"
},
"files": [
"src/Http/Psr7/functions.php",
"src/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Algolia Team",
"email": "contact@algolia.com"
}
],
"description": "Algolia Search API Client for PHP",
"keywords": [
"algolia",
"api",
"client",
"php",
"search"
],
"support": {
"issues": "https://github.com/algolia/algoliasearch-client-php/issues",
"source": "https://github.com/algolia/algoliasearch-client-php/tree/2.7.3"
},
"time": "2020-12-22T11:27:03+00:00"
},
{
"name": "algolia/scout-extended",
"version": "v1.15.0",
"source": {
"type": "git",
"url": "https://github.com/algolia/scout-extended.git",
"reference": "f1da27101b4c88166f9d66d5110b46e1dacb8f1c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/algolia/scout-extended/zipball/f1da27101b4c88166f9d66d5110b46e1dacb8f1c",
"reference": "f1da27101b4c88166f9d66d5110b46e1dacb8f1c",
"shasum": ""
},
"require": {
"algolia/algoliasearch-client-php": "^2.7.3",
"ext-json": "*",
"illuminate/console": "^6.0|^7.0|^8.0",
"illuminate/contracts": "^6.0|^7.0|^8.0",
"illuminate/database": "^6.0|^7.0|^8.0",
"illuminate/filesystem": "^6.0|^7.0|^8.0",
"illuminate/support": "^6.0|^7.0|^8.0",
"laravel/scout": "^8.0",
"php": "^7.3|^8.0",
"riimu/kit-phpencoder": "^2.4"
},
"require-dev": {
"fakerphp/faker": "^1.13",
"laravel/legacy-factories": "^1.1",
"mockery/mockery": "^1.4",
"nunomaduro/larastan": "^0.6",
"orchestra/testbench": "^4.9|^5.9|^6.6",
"phpstan/phpstan": "^0.12.14",
"phpunit/phpunit": "^8.0|^9.0"
},
"suggest": {
"ext-dom": "Required to use the HTML Splitter."
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Algolia\\ScoutExtended\\ScoutExtendedServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Algolia\\ScoutExtended\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nuno Maduro",
"email": "enunomaduro@gmail.com"
},
{
"name": "Algolia Team",
"email": "contact@algolia.com"
}
],
"description": "Scout Extended extends Laravel Scout adding algolia-specific features",
"keywords": [
"algolia",
"analytics",
"extended",
"laravel",
"places",
"scout",
"search"
],
"support": {
"issues": "https://github.com/algolia/scout-extended/issues",
"source": "https://github.com/algolia/scout-extended/tree/v1.15.0"
},
"time": "2021-03-17T15:52:17+00:00"
},
{ {
"name": "asm89/stack-cors", "name": "asm89/stack-cors",
"version": "v2.0.3", "version": "v2.0.3",
@ -4177,6 +4332,61 @@
}, },
"time": "2020-05-12T15:16:56+00:00" "time": "2020-05-12T15:16:56+00:00"
}, },
{
"name": "riimu/kit-phpencoder",
"version": "v2.4.1",
"source": {
"type": "git",
"url": "https://github.com/Riimu/Kit-PHPEncoder.git",
"reference": "ca6f004e1290aec7ef4bebf6c0807b30fcf981d7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Riimu/Kit-PHPEncoder/zipball/ca6f004e1290aec7ef4bebf6c0807b30fcf981d7",
"reference": "ca6f004e1290aec7ef4bebf6c0807b30fcf981d7",
"shasum": ""
},
"require": {
"php": ">=5.6.0"
},
"require-dev": {
"phpunit/phpunit": "^9.4 || ^6.5 || ^5.7"
},
"suggest": {
"ext-gmp": "To convert GMP numbers into PHP code"
},
"type": "library",
"autoload": {
"psr-4": {
"Riimu\\Kit\\PHPEncoder\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Riikka Kalliomäki",
"email": "riikka.kalliomaki@gmail.com",
"homepage": "http://riimu.net"
}
],
"description": "Highly customizable alternative to var_export for PHP code generation",
"homepage": "http://kit.riimu.net",
"keywords": [
"code",
"encoder",
"export",
"generator",
"variable"
],
"support": {
"issues": "https://github.com/Riimu/Kit-PHPEncoder/issues",
"source": "https://github.com/Riimu/Kit-PHPEncoder/tree/v2.4.1"
},
"time": "2020-11-29T16:53:17+00:00"
},
{ {
"name": "spatie/eloquent-sortable", "name": "spatie/eloquent-sortable",
"version": "3.11.0", "version": "3.11.0",
@ -11211,7 +11421,11 @@
"prefer-stable": false, "prefer-stable": false,
"prefer-lowest": false, "prefer-lowest": false,
"platform": { "platform": {
"php": "^8.0" "php": "^8.0",
"ext-fileinfo": "*",
"ext-gd": "*",
"ext-json": "*",
"ext-mbstring": "*"
}, },
"platform-dev": [], "platform-dev": [],
"plugin-api-version": "2.0.0" "plugin-api-version": "2.0.0"

View File

@ -117,9 +117,12 @@ return [
| to a random, 32 character string, otherwise these encrypted strings | to a random, 32 character string, otherwise these encrypted strings
| will not be safe. Please do this before deploying an application! | will not be safe. Please do this before deploying an application!
| |
| MD5 is used here to enforce the 32 character string requirement while
| allowing flexibility in the actual APP_KEY length.
|
*/ */
'key' => env('APP_KEY'), 'key' => md5(env('APP_KEY')),
'cipher' => 'AES-256-CBC', 'cipher' => 'AES-256-CBC',

View File

@ -4,6 +4,7 @@ namespace Database\Factories;
use App\Models\User; use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str; use Illuminate\Support\Str;
class UserFactory extends Factory class UserFactory extends Factory
@ -19,9 +20,9 @@ class UserFactory extends Factory
public function definition(): array public function definition(): array
{ {
return [ return [
'username' => $this->faker->unique()->userName,
'password' => Hash::make('password'),
'name' => $this->faker->name, 'name' => $this->faker->name,
'email' => $this->faker->unique()->safeEmail,
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10), 'remember_token' => Str::random(10),
]; ];
} }

View File

@ -15,9 +15,9 @@ class CreateUsersTable extends Migration
{ {
Schema::create('users', function (Blueprint $table) { Schema::create('users', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('name'); $table->string('username')->unique();
$table->string('email')->unique();
$table->string('password'); $table->string('password');
$table->string('name');
$table->rememberToken(); $table->rememberToken();
$table->timestamps(); $table->timestamps();
}); });

View File

@ -15,9 +15,9 @@ class UserSeeder extends Seeder
public function run(): void public function run(): void
{ {
User::factory()->create([ User::factory()->create([
'username' => 'admin',
'password' => Hash::make('admin'),
'name' => 'Admin', 'name' => 'Admin',
'email' => 'admin@kcal.test',
'password' => Hash::make('admin@kcal.test'),
'remember_token' => Str::random(10), 'remember_token' => Str::random(10),
]); ]);
} }

View File

@ -63,13 +63,6 @@ services:
- 'redis-data:/data' - 'redis-data:/data'
networks: networks:
- sail - sail
mailhog:
image: 'mailhog/mailhog:latest'
ports:
- '${MAIL_PORT:-1025}:1025'
- '${MAILHOG_ADMIN_PORT:-8025}:8025'
networks:
- sail
networks: networks:
sail: sail:
driver: bridge driver: bridge

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -1,35 +0,0 @@
<x-guest-layout>
<x-slot name="title">Confirm Password</x-slot>
<x-auth-card>
<x-slot name="logo">
<a href="/">
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
</a>
</x-slot>
<div class="mb-4 text-sm text-gray-600">
This is a secure area of the application. Please confirm your password before continuing.
</div>
<!-- Validation Errors -->
<x-auth-validation-errors class="mb-4" :errors="$errors" />
<form method="POST" action="{{ route('password.confirm') }}">
@csrf
<!-- Password -->
<div>
<x-inputs.label for="password" value="Password" />
<x-inputs.input id="password" class="block mt-1 w-full"
type="password"
name="password"
required autocomplete="current-password" />
</div>
<div class="flex justify-end mt-4">
<x-inputs.button>Confirm</x-inputs.button>
</div>
</form>
</x-auth-card>
</x-guest-layout>

View File

@ -1,35 +0,0 @@
<x-guest-layout>
<x-slot name="title">Forgot Password</x-slot>
<x-auth-card>
<x-slot name="logo">
<a href="/">
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
</a>
</x-slot>
<div class="mb-4 text-sm text-gray-600">
Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.
</div>
<!-- Session Status -->
<x-auth-session-status class="mb-4" :status="session('status')" />
<!-- Validation Errors -->
<x-auth-validation-errors class="mb-4" :errors="$errors" />
<form method="POST" action="{{ route('password.email') }}">
@csrf
<!-- Email Address -->
<div>
<x-inputs.label for="email" value="Email" />
<x-inputs.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
</div>
<div class="flex items-center justify-end mt-4">
<x-inputs.button>Email Password Reset Link</x-inputs.button>
</div>
</form>
</x-auth-card>
</x-guest-layout>

View File

@ -16,11 +16,11 @@
<form method="POST" action="{{ route('login') }}"> <form method="POST" action="{{ route('login') }}">
@csrf @csrf
<!-- Email Address --> <!-- Username -->
<div> <div>
<x-inputs.label for="email" value="Email" /> <x-inputs.label for="username" value="Username" />
<x-inputs.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus /> <x-inputs.input id="username" class="block mt-1 w-full" type="text" name="username" :value="old('username')" required autofocus />
</div> </div>
<!-- Password --> <!-- Password -->

View File

@ -1,48 +0,0 @@
<x-guest-layout>
<x-slot name="title">Reset Password</x-slot>
<x-auth-card>
<x-slot name="logo">
<a href="/">
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
</a>
</x-slot>
<!-- Validation Errors -->
<x-auth-validation-errors class="mb-4" :errors="$errors" />
<form method="POST" action="{{ route('password.update') }}">
@csrf
<!-- Password Reset Token -->
<input type="hidden" name="token" value="{{ $request->route('token') }}">
<!-- Email Address -->
<div>
<x-inputs.label for="email" value="Email" />
<x-inputs.input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email', $request->email)" required autofocus />
</div>
<!-- Password -->
<div class="mt-4">
<x-inputs.label for="password" value="Password" />
<x-inputs.input id="password" class="block mt-1 w-full" type="password" name="password" required />
</div>
<!-- Confirm Password -->
<div class="mt-4">
<x-inputs.label for="password_confirmation" value="Confirm Password" />
<x-inputs.input id="password_confirmation" class="block mt-1 w-full"
type="password"
name="password_confirmation" required />
</div>
<div class="flex items-center justify-end mt-4">
<x-inputs.button>Reset Password
</x-inputs.button>
</div>
</form>
</x-auth-card>
</x-guest-layout>

View File

@ -1,35 +0,0 @@
<x-guest-layout>
<x-slot name="title">Verify Email</x-slot>
<x-auth-card>
<x-slot name="logo">
<a href="/">
<x-application-logo class="w-20 h-20 fill-current text-gray-500" />
</a>
</x-slot>
<div class="mb-4 text-sm text-gray-600">
Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn\'t receive the email, we will gladly send you another.
</div>
@if (session('status') == 'verification-link-sent')
<div class="mb-4 font-medium text-sm text-green-600">
A new verification link has been sent to the email address you provided during registration.
</div>
@endif
<div class="mt-4 flex items-center justify-between">
<form method="POST" action="{{ route('verification.send') }}">
@csrf
<div>
<x-inputs.button>Resend Verification Email</x-inputs.button>
</div>
</form>
<form method="POST" action="{{ route('logout') }}">
@csrf
<button type="submit" class="underline text-sm text-gray-600 hover:text-gray-900">Logout</button>
</form>
</div>
</x-auth-card>
</x-guest-layout>

View File

@ -0,0 +1,5 @@
<div class="flex justify-center pt-12 sm:pt-0 sm:justify-start">
<a href="https://www.algolia.com/" target="_blank">
<img src="{{ asset('images/search-by-algolia-light-background.svg') }}" alt="Search by Algolia">
</a>
</div>

View File

@ -24,13 +24,16 @@
</x-inputs.icon-green> </x-inputs.icon-green>
<div class="flex items-center justify-end mt-4 space-x-4"> <div class="flex items-center justify-end mt-4 space-x-4">
<fieldset class="flex space-x-2"> <fieldset class="flex space-x-2">
<x-inputs.input name="group_entries" type="checkbox" class="h-5 w-5" value="1" checked />
<x-inputs.label for="groupEntries" value="Group entries by day and meal" /> <x-inputs.label for="groupEntries" value="Group entries by day and meal" />
<x-inputs.input type="checkbox" name="group_entries" value="1" checked />
</fieldset> </fieldset>
<x-inputs.button x-on:click="removeTemplate($el);">Add entries</x-inputs.button> <x-inputs.button x-on:click="removeTemplate($el);">Add entries</x-inputs.button>
</div> </div>
</div> </div>
</form> </form>
@if(config('scout.driver') === 'algolia')
<x-search-by-algolia />
@endif
@once @once
@push('scripts') @push('scripts')

View File

@ -34,7 +34,7 @@
<x-slot name="content"> <x-slot name="content">
<div class="ml-3"> <div class="ml-3">
<div class="font-medium text-base text-gray-800">{{ Auth::user()->name }}</div> <div class="font-medium text-base text-gray-800">{{ Auth::user()->name }}</div>
<div class="font-medium text-sm text-gray-500">{{ Auth::user()->email }}</div> <div class="font-medium text-sm text-gray-500">{{ Auth::user()->username }}</div>
</div> </div>
<div class="mt-3 space-y-1"> <div class="mt-3 space-y-1">

View File

@ -182,6 +182,9 @@
</x-inputs.button> </x-inputs.button>
</div> </div>
</form> </form>
@if(config('scout.driver') === 'algolia')
<x-search-by-algolia />
@endif
@once @once
@push('styles') @push('styles')

View File

@ -21,7 +21,7 @@ class AuthenticationTest extends TestCase
{ {
$user = User::factory()->create(); $user = User::factory()->create();
$response = $this->post('/login', [ $response = $this->post('/login', [
'email' => $user->email, 'username' => $user->username,
'password' => 'password', 'password' => 'password',
]); ]);
$this->assertAuthenticated(); $this->assertAuthenticated();
@ -32,7 +32,7 @@ class AuthenticationTest extends TestCase
{ {
$user = User::factory()->create(); $user = User::factory()->create();
$this->post('/login', [ $this->post('/login', [
'email' => $user->email, 'username' => $user->username,
'password' => 'wrong-password', 'password' => 'wrong-password',
]); ]);
$this->assertGuest(); $this->assertGuest();

View File

@ -1,44 +0,0 @@
<?php
namespace Tests\Feature\Http\Controllers\Auth;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class PasswordConfirmationTest extends TestCase
{
use RefreshDatabase;
public function testConfirmPasswordScreenCanBeRendered()
{
$user = User::factory()->create();
$response = $this->actingAs($user)->get('/confirm-password');
$response->assertStatus(200);
}
public function testPasswordCanBeConfirmed()
{
$user = User::factory()->create();
$response = $this->actingAs($user)->post('/confirm-password', [
'password' => 'password',
]);
$response->assertRedirect();
$response->assertSessionHasNoErrors();
}
public function testPasswordIsNotConfirmedWithInvalidPassword()
{
$user = User::factory()->create();
$response = $this->actingAs($user)->post('/confirm-password', [
'password' => 'wrong-password',
]);
$response->assertSessionHasErrors();
}
}

View File

@ -1,71 +0,0 @@
<?php
namespace Tests\Feature\Http\Controllers\Auth;
use App\Models\User;
use Illuminate\Auth\Notifications\ResetPassword;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Notification;
use Tests\TestCase;
class PasswordResetTest extends TestCase
{
use RefreshDatabase;
public function testResetPasswordLinkScreenCanBeRendered()
{
$response = $this->get('/forgot-password');
$response->assertStatus(200);
}
public function testResetPasswordLinkCanBeRequested()
{
Notification::fake();
$user = User::factory()->create();
$this->post('/forgot-password', ['email' => $user->email]);
Notification::assertSentTo($user, ResetPassword::class);
}
public function testResetPasswordScreenCanBeRendered()
{
Notification::fake();
$user = User::factory()->create();
$this->post('/forgot-password', ['email' => $user->email]);
Notification::assertSentTo($user, ResetPassword::class, function ($notification) {
$response = $this->get('/reset-password/'.$notification->token);
$response->assertStatus(200);
return true;
});
}
public function testPasswordCanBeResetWithValidToken()
{
Notification::fake();
$user = User::factory()->create();
$this->post('/forgot-password', ['email' => $user->email]);
Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) {
$response = $this->post('/reset-password', [
'token' => $notification->token,
'email' => $user->email,
'password' => 'password',
'password_confirmation' => 'password',
]);
$response->assertSessionHasNoErrors();
return true;
});
}
}

View File

@ -15,7 +15,7 @@ trait LogsIn
{ {
$this->user = User::factory()->create(); $this->user = User::factory()->create();
$this->post('/login', [ $this->post('/login', [
'email' => $this->user->email, 'username' => $this->user->username,
'password' => 'password', 'password' => 'password',
]); ]);
} }