From 0098ac397c4b5f41a383babf34b5375e08cdea14 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:13 +0000 Subject: [PATCH 01/14] Shift core files --- public/index.php | 59 +++++++++++++++----------------- resources/lang/en/validation.php | 1 + 2 files changed, 28 insertions(+), 32 deletions(-) diff --git a/public/index.php b/public/index.php index 4584cbcd..a8137b13 100644 --- a/public/index.php +++ b/public/index.php @@ -1,23 +1,33 @@ - */ +use Illuminate\Contracts\Http\Kernel; +use Illuminate\Http\Request; define('LARAVEL_START', microtime(true)); +/* +|-------------------------------------------------------------------------- +| Check If Application Is Under Maintenance +|-------------------------------------------------------------------------- +| +| If the application is maintenance / demo mode via the "down" command we +| will require this file so that any prerendered template can be shown +| instead of starting the framework, which could cause an exception. +| +*/ + +if (file_exists(__DIR__.'/../storage/framework/maintenance.php')) { + require __DIR__.'/../storage/framework/maintenance.php'; +} + /* |-------------------------------------------------------------------------- | Register The Auto Loader |-------------------------------------------------------------------------- | | Composer provides a convenient, automatically generated class loader for -| our application. We just need to utilize it! We'll simply require it -| into the script here so that we don't have to worry about manual -| loading any of our classes later on. It feels great to relax. +| this application. We just need to utilize it! We'll simply require it +| into the script here so we don't need to manually load our classes. | */ @@ -25,36 +35,21 @@ require __DIR__.'/../vendor/autoload.php'; /* |-------------------------------------------------------------------------- -| Turn On The Lights +| Run The Application |-------------------------------------------------------------------------- | -| We need to illuminate PHP development, so let us turn on the lights. -| This bootstraps the framework and gets it ready for use, then it -| will load up this application so that we can run it and send -| the responses back to the browser and delight our users. +| Once we have the application, we can handle the incoming request using +| the application's HTTP kernel. Then, we will send the response back +| to this client's browser, allowing them to enjoy our application. | */ $app = require_once __DIR__.'/../bootstrap/app.php'; -/* -|-------------------------------------------------------------------------- -| Run The Application -|-------------------------------------------------------------------------- -| -| Once we have the application, we can handle the incoming request -| through the kernel, and send the associated response back to -| the client's browser allowing them to enjoy the creative -| and wonderful application we have prepared for them. -| -*/ +$kernel = $app->make(Kernel::class); -$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); - -$response = $kernel->handle( - $request = Illuminate\Http\Request::capture() -); - -$response->send(); +$response = tap($kernel->handle( + $request = Request::capture() +))->send(); $kernel->terminate($request, $response); diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index a655d26b..5e3cbcba 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -91,6 +91,7 @@ return [ 'array' => 'The :attribute must have at least :min items.', ], 'not_in' => 'The selected :attribute is invalid.', + 'multiple_of' => 'The :attribute must be a multiple of :value.', 'not_regex' => 'The :attribute format is invalid.', 'numeric' => 'The :attribute must be a number.', 'password' => 'The password is incorrect.', From d947e5e06993913c3a619d9f01f41eb3b7b0c137 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:14 +0000 Subject: [PATCH 02/14] Shift HTTP kernel and middleware --- app/Http/Kernel.php | 3 +-- ...intenanceMode.php => PreventRequestsDuringMaintenance.php} | 4 ++-- app/Http/Middleware/TrustProxies.php | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) rename app/Http/Middleware/{CheckForMaintenanceMode.php => PreventRequestsDuringMaintenance.php} (58%) diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 26abf315..b32fe591 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -32,7 +32,7 @@ class Kernel extends HttpKernel protected $middleware = [ \App\Http\Middleware\TrustProxies::class, \Fruitcake\Cors\HandleCors::class, - \App\Http\Middleware\CheckForMaintenanceMode::class, + \App\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, @@ -58,7 +58,6 @@ class Kernel extends HttpKernel protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, - 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, diff --git a/app/Http/Middleware/CheckForMaintenanceMode.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php similarity index 58% rename from app/Http/Middleware/CheckForMaintenanceMode.php rename to app/Http/Middleware/PreventRequestsDuringMaintenance.php index 35b9824b..e4956d0b 100644 --- a/app/Http/Middleware/CheckForMaintenanceMode.php +++ b/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -2,9 +2,9 @@ namespace App\Http\Middleware; -use Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode as Middleware; +use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware; -class CheckForMaintenanceMode extends Middleware +class PreventRequestsDuringMaintenance extends Middleware { /** * The URIs that should be reachable while maintenance mode is enabled. diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php index c661475c..a3b6aef9 100644 --- a/app/Http/Middleware/TrustProxies.php +++ b/app/Http/Middleware/TrustProxies.php @@ -10,7 +10,7 @@ class TrustProxies extends Middleware /** * The trusted proxies for this application. * - * @var array + * @var array|string|null */ protected $proxies; @@ -19,5 +19,5 @@ class TrustProxies extends Middleware * * @var int */ - protected $headers = Request::HEADER_X_FORWARDED_ALL; + protected $headers = Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB; } From f2dc11ea5c53e95b0a0867994e0c5cf191525d32 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:15 +0000 Subject: [PATCH 03/14] Shift service providers --- app/Providers/EventServiceProvider.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index c01ea420..d52d7195 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -42,7 +42,6 @@ class EventServiceProvider extends ServiceProvider */ public function boot() { - parent::boot(); // } From 675ecd5de9c502fdec371608bdbf45c7aa41dc25 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:15 +0000 Subject: [PATCH 04/14] Shift console routes --- routes/console.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/routes/console.php b/routes/console.php index 75dd0cde..e05f4c9a 100755 --- a/routes/console.php +++ b/routes/console.php @@ -1,6 +1,7 @@ comment(Inspiring::quote()); -})->describe('Display an inspiring quote'); +})->purpose('Display an inspiring quote'); From 75cf92eeaf3ebaeb1839d8153c2fa9fb69c50cb9 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:16 +0000 Subject: [PATCH 05/14] Ignore temporary framework files --- storage/framework/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore index 33c86c70..24d9bc70 100644 --- a/storage/framework/.gitignore +++ b/storage/framework/.gitignore @@ -6,3 +6,4 @@ services.json events.scanned.php routes.scanned.php down +maintenance.php From 635b39d1092e89f42753ae9de915d87ca13793d9 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:17 +0000 Subject: [PATCH 06/14] Shift to class based factories --- app/Models/Album.php | 3 + app/Models/Genre.php | 3 + app/Models/Track.php | 3 + app/Models/User.php | 3 + database/factories/AlbumFactory.php | 59 +++++++++++++++++ database/factories/GenreFactory.php | 76 ++++++++++++++++++++++ database/factories/ModelFactory.php | 98 ----------------------------- database/factories/TrackFactory.php | 72 +++++++++++++++++++++ database/factories/UserFactory.php | 65 +++++++++++++++++++ tests/ApiAuthTest.php | 4 +- tests/ApiTest.php | 12 ++-- tests/TestCase.php | 2 +- 12 files changed, 293 insertions(+), 107 deletions(-) create mode 100644 database/factories/AlbumFactory.php create mode 100644 database/factories/GenreFactory.php delete mode 100644 database/factories/ModelFactory.php create mode 100644 database/factories/TrackFactory.php create mode 100644 database/factories/UserFactory.php diff --git a/app/Models/Album.php b/app/Models/Album.php index c43b343f..cc88c867 100644 --- a/app/Models/Album.php +++ b/app/Models/Album.php @@ -20,6 +20,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Contracts\Commentable; use App\Contracts\Favouritable; use App\Contracts\Searchable; @@ -89,6 +90,8 @@ use Venturecraft\Revisionable\RevisionableTrait; */ class Album extends Model implements Searchable, Commentable, Favouritable { + use HasFactory; + use SoftDeletes, SlugTrait, TrackCollection, RevisionableTrait, IndexedInElasticsearchTrait; protected $elasticsearchType = 'album'; diff --git a/app/Models/Genre.php b/app/Models/Genre.php index c1548b79..0b9f2131 100644 --- a/app/Models/Genre.php +++ b/app/Models/Genre.php @@ -20,6 +20,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Traits\SlugTrait; use DB; use Illuminate\Database\Eloquent\Model; @@ -57,6 +58,8 @@ use Venturecraft\Revisionable\RevisionableTrait; */ class Genre extends Model { + use HasFactory; + protected $table = 'genres'; protected $fillable = ['name', 'slug']; diff --git a/app/Models/Track.php b/app/Models/Track.php index 89af711a..4ba00926 100644 --- a/app/Models/Track.php +++ b/app/Models/Track.php @@ -20,6 +20,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Contracts\Commentable; use App\Contracts\Favouritable; use App\Contracts\Searchable; @@ -148,6 +149,8 @@ use Venturecraft\Revisionable\RevisionableTrait; */ class Track extends Model implements Searchable, Commentable, Favouritable { + use HasFactory; + use SoftDeletes, IndexedInElasticsearchTrait; protected $elasticsearchType = 'track'; diff --git a/app/Models/User.php b/app/Models/User.php index 8a195748..1426793d 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -20,6 +20,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Contracts\Commentable; use App\Contracts\Searchable; use App\Traits\IndexedInElasticsearchTrait; @@ -104,6 +105,8 @@ use Venturecraft\Revisionable\RevisionableTrait; */ class User extends Model implements AuthenticatableContract, CanResetPasswordContract, \Illuminate\Contracts\Auth\Access\Authorizable, Searchable, Commentable { + use HasFactory; + use Authenticatable, CanResetPassword, Authorizable, RevisionableTrait, IndexedInElasticsearchTrait; protected $elasticsearchType = 'user'; diff --git a/database/factories/AlbumFactory.php b/database/factories/AlbumFactory.php new file mode 100644 index 00000000..2017e0ae --- /dev/null +++ b/database/factories/AlbumFactory.php @@ -0,0 +1,59 @@ +. + */ + +/* +|-------------------------------------------------------------------------- +| Model Factories +|-------------------------------------------------------------------------- +| +| This directory should contain each of the model factory definitions for +| your application. Factories provide a convenient way to generate new +| model instances for testing / seeding your application's database. +| +*/ + +namespace Database\Factories; + +use Illuminate\Database\Eloquent\Factories\Factory; +use App\Models\User; + +class AlbumFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = \App\Models\Album::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + 'title' => $this->faker->sentence(5), + 'slug' => $this->faker->slug, + 'description' => $this->faker->paragraph(5), + ]; + } +} diff --git a/database/factories/GenreFactory.php b/database/factories/GenreFactory.php new file mode 100644 index 00000000..69014a44 --- /dev/null +++ b/database/factories/GenreFactory.php @@ -0,0 +1,76 @@ +. + */ + +/* +|-------------------------------------------------------------------------- +| Model Factories +|-------------------------------------------------------------------------- +| +| This directory should contain each of the model factory definitions for +| your application. Factories provide a convenient way to generate new +| model instances for testing / seeding your application's database. +| +*/ + +namespace Database\Factories; + +use Illuminate\Database\Eloquent\Factories\Factory; +use App\Models\User; + + +/** + * @property int $id + * @property int $user_id + * @property string $title + * @property string $slug + * @property string $description + * @property int $cover_id + * @property int $track_count + * @property int $view_count + * @property int $download_count + * @property int $favourite_count + * @property int $comment_count + * @property \Carbon\Carbon $created_at + * @property string $updated_at + * @property \Carbon\Carbon $deleted_at + */ + +class GenreFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = \App\Models\Genre::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + 'name' => $this->faker->word, + 'slug' => $this->faker->slug, + ]; + } +} diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php deleted file mode 100644 index c6da6be3..00000000 --- a/database/factories/ModelFactory.php +++ /dev/null @@ -1,98 +0,0 @@ -. - */ - -/* -|-------------------------------------------------------------------------- -| Model Factories -|-------------------------------------------------------------------------- -| -| This directory should contain each of the model factory definitions for -| your application. Factories provide a convenient way to generate new -| model instances for testing / seeding your application's database. -| -*/ - -use App\Models\User; - -$factory->define(App\Models\User::class, function (Faker\Generator $faker) { - return [ - 'username' => $faker->userName, - 'display_name' => $faker->userName, - 'slug' => $faker->slug, - 'email' => $faker->email, - 'can_see_explicit_content' => true, - 'uses_gravatar' => true, - 'bio' => $faker->paragraph, - 'track_count' => 0, - 'comment_count' => 0, - ]; -}); - -$factory->define(\App\Models\Track::class, function (Faker\Generator $faker) { - $user = factory(User::class)->create(); - - return [ - 'user_id' => $user->id, - 'hash' => $faker->md5, - 'title' => $faker->sentence(5), - 'slug' => $faker->slug, - 'track_type_id' => \App\Models\TrackType::UNCLASSIFIED_TRACK, - 'track_number' => null, - 'description' => $faker->paragraph(5), - 'lyrics' => $faker->paragraph(5), - 'is_vocal' => true, - 'is_explicit' => false, - 'is_downloadable' => true, - 'is_listed' => true, - 'metadata' => '{"this":{"is":["very","random","metadata"]}}', - 'duration' => $faker->randomFloat(null, 30, 600), - ]; -}); - -$factory->define(\App\Models\Genre::class, function (Faker\Generator $faker) { - return [ - 'name' => $faker->word, - 'slug' => $faker->slug, - ]; -}); - -/** - * @property int $id - * @property int $user_id - * @property string $title - * @property string $slug - * @property string $description - * @property int $cover_id - * @property int $track_count - * @property int $view_count - * @property int $download_count - * @property int $favourite_count - * @property int $comment_count - * @property \Carbon\Carbon $created_at - * @property string $updated_at - * @property \Carbon\Carbon $deleted_at - */ -$factory->define(\App\Models\Album::class, function (Faker\Generator $faker) { - return [ - 'title' => $faker->sentence(5), - 'slug' => $faker->slug, - 'description' => $faker->paragraph(5), - ]; -}); diff --git a/database/factories/TrackFactory.php b/database/factories/TrackFactory.php new file mode 100644 index 00000000..7120d694 --- /dev/null +++ b/database/factories/TrackFactory.php @@ -0,0 +1,72 @@ +. + */ + +/* +|-------------------------------------------------------------------------- +| Model Factories +|-------------------------------------------------------------------------- +| +| This directory should contain each of the model factory definitions for +| your application. Factories provide a convenient way to generate new +| model instances for testing / seeding your application's database. +| +*/ + +namespace Database\Factories; + +use Illuminate\Database\Eloquent\Factories\Factory; +use App\Models\User; + +class TrackFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = \App\Models\Track::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + $user = User::factory()->create(); + + return [ + 'user_id' => $user->id, + 'hash' => $this->faker->md5, + 'title' => $this->faker->sentence(5), + 'slug' => $this->faker->slug, + 'track_type_id' => \App\Models\TrackType::UNCLASSIFIED_TRACK, + 'track_number' => null, + 'description' => $this->faker->paragraph(5), + 'lyrics' => $this->faker->paragraph(5), + 'is_vocal' => true, + 'is_explicit' => false, + 'is_downloadable' => true, + 'is_listed' => true, + 'metadata' => '{"this":{"is":["very","random","metadata"]}}', + 'duration' => $this->faker->randomFloat(null, 30, 600), + ]; + } +} diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php new file mode 100644 index 00000000..79ce36ad --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,65 @@ +. + */ + +/* +|-------------------------------------------------------------------------- +| Model Factories +|-------------------------------------------------------------------------- +| +| This directory should contain each of the model factory definitions for +| your application. Factories provide a convenient way to generate new +| model instances for testing / seeding your application's database. +| +*/ + +namespace Database\Factories; + +use Illuminate\Database\Eloquent\Factories\Factory; +use App\Models\User; + +class UserFactory extends Factory +{ + /** + * The name of the factory's corresponding model. + * + * @var string + */ + protected $model = \App\Models\User::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition() + { + return [ + 'username' => $this->faker->userName, + 'display_name' => $this->faker->userName, + 'slug' => $this->faker->slug, + 'email' => $this->faker->email, + 'can_see_explicit_content' => true, + 'uses_gravatar' => true, + 'bio' => $this->faker->paragraph, + 'track_count' => 0, + 'comment_count' => 0, + ]; + } +} diff --git a/tests/ApiAuthTest.php b/tests/ApiAuthTest.php index e5f09530..a4f3af22 100644 --- a/tests/ApiAuthTest.php +++ b/tests/ApiAuthTest.php @@ -35,7 +35,7 @@ class ApiAuthTest extends TestCase */ public function testApiCreatesNewUser() { - $user = factory(User::class)->make(); + $user = User::factory()->make(); $accessTokenInfo = new AccessToken('nonsense-token'); $accessTokenInfo->setIsActive(true); $accessTokenInfo->setScopes(['basic', 'ponyfm:tracks:upload']); @@ -61,7 +61,7 @@ class ApiAuthTest extends TestCase public function testApiClientIdIsRecordedWhenUploadingTrack() { - $user = factory(User::class)->make(); + $user = User::factory()->make(); $accessTokenInfo = new AccessToken('nonsense-token'); $accessTokenInfo->setIsActive(true); diff --git a/tests/ApiTest.php b/tests/ApiTest.php index 698534f2..46b53b82 100644 --- a/tests/ApiTest.php +++ b/tests/ApiTest.php @@ -35,7 +35,7 @@ class ApiTest extends TestCase public function testUploadWithoutFile() { - $user = factory(User::class)->create(); + $user = User::factory()->create(); $this->actingAs($user) ->post('/api/v1/tracks', []) @@ -80,11 +80,11 @@ class ApiTest extends TestCase public function testUploadWithOptionalData() { /** @var Track $track */ - $track = factory(Track::class)->make(); + $track = Track::factory()->make(); /** @var Genre $genre */ - $genre = factory(Genre::class)->make(); + $genre = Genre::factory()->make(); /** @var Album $album */ - $album = factory(Album::class)->make(); + $album = Album::factory()->make(); $this->callUploadWithParameters([ 'title' => $track->title, @@ -135,9 +135,9 @@ class ApiTest extends TestCase public function testGetTrackDetails() { /** @var Track $track */ - $track = factory(Track::class)->create(); + $track = Track::factory()->create(); /** @var Genre $genre */ - $genre = factory(Genre::class)->create(); + $genre = Genre::factory()->create(); $track->genre()->associate($genre); $this->seeInDatabase('tracks', ['id' => $track->id]); diff --git a/tests/TestCase.php b/tests/TestCase.php index ee4dc629..37e2ba38 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -142,7 +142,7 @@ class TestCase extends BaseTestCase \App\Jobs\EncodeTrackFile::class, \App\Jobs\UpdateSearchIndexForEntity::class, ]); - $this->user = factory(User::class)->create(); + $this->user = User::factory()->create(); $file = $this->getTestFileForUpload('ponyfm-test.flac'); From bf00a958ccdf1bb804f332288f5170d695ffadaa Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:17 +0000 Subject: [PATCH 07/14] Namespace seeders --- database/{seeds => seeders}/.gitkeep | 0 database/{seeds => seeders}/DatabaseSeeder.php | 2 ++ database/{seeds => seeders}/GenreTableSeeder.php | 2 ++ database/{seeds => seeders}/ShowSongTableSeeder.php | 2 ++ 4 files changed, 6 insertions(+) rename database/{seeds => seeders}/.gitkeep (100%) rename database/{seeds => seeders}/DatabaseSeeder.php (97%) rename database/{seeds => seeders}/GenreTableSeeder.php (99%) rename database/{seeds => seeders}/ShowSongTableSeeder.php (99%) diff --git a/database/seeds/.gitkeep b/database/seeders/.gitkeep similarity index 100% rename from database/seeds/.gitkeep rename to database/seeders/.gitkeep diff --git a/database/seeds/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php similarity index 97% rename from database/seeds/DatabaseSeeder.php rename to database/seeders/DatabaseSeeder.php index 940fe37f..fc5b3f90 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -18,6 +18,8 @@ * along with this program. If not, see . */ +namespace Database\Seeders; + use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Seeder; diff --git a/database/seeds/GenreTableSeeder.php b/database/seeders/GenreTableSeeder.php similarity index 99% rename from database/seeds/GenreTableSeeder.php rename to database/seeders/GenreTableSeeder.php index 2ce46904..e3279b96 100644 --- a/database/seeds/GenreTableSeeder.php +++ b/database/seeders/GenreTableSeeder.php @@ -18,6 +18,8 @@ * along with this program. If not, see . */ +namespace Database\Seeders; + use Illuminate\Database\Seeder; class GenreTableSeeder extends Seeder diff --git a/database/seeds/ShowSongTableSeeder.php b/database/seeders/ShowSongTableSeeder.php similarity index 99% rename from database/seeds/ShowSongTableSeeder.php rename to database/seeders/ShowSongTableSeeder.php index 0fd6476f..3f621670 100644 --- a/database/seeds/ShowSongTableSeeder.php +++ b/database/seeders/ShowSongTableSeeder.php @@ -18,6 +18,8 @@ * along with this program. If not, see . */ +namespace Database\Seeders; + use Illuminate\Database\Seeder; class ShowSongTableSeeder extends Seeder From 8890012fec57a068ab01cf3515451afde1f8d2e9 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:17 +0000 Subject: [PATCH 08/14] Shift PSR-4 autoloading --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 01037a55..89bf4d7a 100644 --- a/composer.json +++ b/composer.json @@ -46,13 +46,13 @@ }, "autoload": { "classmap": [ - "database/factories", "database/migrations", - "database/seeds", "app/Library" ], "psr-4": { - "App\\": "app/" + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" } }, "autoload-dev": { From cc27d6b4107e685b15d201dea59f8456e5ae8c07 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:18 +0000 Subject: [PATCH 09/14] Shift config files --- .env.example | 49 +++++++++++++++++++++++++++++++++++++++++ config/broadcasting.php | 5 +++++ config/cache.php | 8 ++++--- config/logging.php | 12 +++++----- config/queue.php | 2 +- 5 files changed, 66 insertions(+), 10 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..c3ed2a91 --- /dev/null +++ b/.env.example @@ -0,0 +1,49 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=laravel +DB_USERNAME=root +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mailhog +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS=null +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/config/broadcasting.php b/config/broadcasting.php index 3bba1103..ef208598 100644 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -41,6 +41,11 @@ return [ ], ], + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], + 'redis' => [ 'driver' => 'redis', 'connection' => 'default', diff --git a/config/cache.php b/config/cache.php index 4f41fdf9..e32a2fd3 100644 --- a/config/cache.php +++ b/config/cache.php @@ -13,9 +13,6 @@ return [ | using this caching library. This connection is used when another is | not explicitly specified when executing a given caching function. | - | Supported: "apc", "array", "database", "file", - | "memcached", "redis", "dynamodb" - | */ 'default' => env('CACHE_DRIVER', 'file'), @@ -29,6 +26,9 @@ return [ | well as their drivers. You may even define multiple stores for the | same cache driver to group types of items stored in your caches. | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "null" + | */ 'stores' => [ @@ -46,6 +46,7 @@ return [ 'driver' => 'database', 'table' => 'cache', 'connection' => null, + 'lock_connection' => null, ], 'file' => [ @@ -75,6 +76,7 @@ return [ 'redis' => [ 'driver' => 'redis', 'connection' => 'cache', + 'lock_connection' => 'default', ], 'dynamodb' => [ diff --git a/config/logging.php b/config/logging.php index 088c204e..6aa77fe2 100644 --- a/config/logging.php +++ b/config/logging.php @@ -44,13 +44,13 @@ return [ 'single' => [ 'driver' => 'single', 'path' => storage_path('logs/laravel.log'), - 'level' => 'debug', + 'level' => env('LOG_LEVEL', 'debug'), ], 'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), - 'level' => 'debug', + 'level' => env('LOG_LEVEL', 'debug'), 'days' => 14, ], @@ -59,12 +59,12 @@ return [ 'url' => env('LOG_SLACK_WEBHOOK_URL'), 'username' => 'Laravel Log', 'emoji' => ':boom:', - 'level' => 'critical', + 'level' => env('LOG_LEVEL', 'critical'), ], 'papertrail' => [ 'driver' => 'monolog', - 'level' => 'debug', + 'level' => env('LOG_LEVEL', 'debug'), 'handler' => SyslogUdpHandler::class, 'handler_with' => [ 'host' => env('PAPERTRAIL_URL'), @@ -83,12 +83,12 @@ return [ 'syslog' => [ 'driver' => 'syslog', - 'level' => 'debug', + 'level' => env('LOG_LEVEL', 'debug'), ], 'errorlog' => [ 'driver' => 'errorlog', - 'level' => 'debug', + 'level' => env('LOG_LEVEL', 'debug'), ], 'null' => [ diff --git a/config/queue.php b/config/queue.php index 00b76d65..12222966 100644 --- a/config/queue.php +++ b/config/queue.php @@ -81,7 +81,7 @@ return [ */ 'failed' => [ - 'driver' => env('QUEUE_FAILED_DRIVER', 'database'), + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), 'database' => env('DB_CONNECTION', 'mysql'), 'table' => 'failed_jobs', ], From ef0ff909382e0e0f792ce8c6983907b695548fbf Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:18 +0000 Subject: [PATCH 10/14] Default config files In an effort to make upgrading the constantly changing config files easier, Shift defaulted them and merged your true customizations - where ENV variables may not be used. --- config/cors.php | 2 +- config/filesystems.php | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/config/cors.php b/config/cors.php index 1e02e5ef..a160a390 100644 --- a/config/cors.php +++ b/config/cors.php @@ -15,7 +15,7 @@ return [ | */ - 'paths' => ['api/*'], + 'paths' => ['api/*', 'sanctum/csrf-cookie'], 'allowed_methods' => ['*'], diff --git a/config/filesystems.php b/config/filesystems.php index e675e886..ad0d8255 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -15,19 +15,6 @@ return [ 'default' => env('FILESYSTEM_DRIVER', 'local'), - /* - |-------------------------------------------------------------------------- - | Default Cloud Filesystem Disk - |-------------------------------------------------------------------------- - | - | Many applications store files both locally and in the cloud. For this - | reason, you may specify a default "cloud" driver here. This driver - | will be bound as the Cloud disk implementation in the container. - | - */ - - 'cloud' => env('FILESYSTEM_CLOUD', 's3'), - /* |-------------------------------------------------------------------------- | Filesystem Disks From a7e6e56356ee218ac4b53e6aab3038ba63deaadf Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:18 +0000 Subject: [PATCH 11/14] Shift Laravel dependencies --- composer.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index 89bf4d7a..7e87d6c2 100644 --- a/composer.json +++ b/composer.json @@ -10,10 +10,10 @@ "license": "AGPL", "type": "project", "require": { - "php": "^7.2.5|^8.0", - "laravel/framework": "^7.29", + "php": "^7.3|^8.0", + "laravel/framework": "^8.27", "codescale/ffmpeg-php": "2.7.0", - "guzzlehttp/guzzle": "^6.3.1|^7.0.1", + "guzzlehttp/guzzle": "^7.0.1", "doctrine/dbal": "^3.0", "venturecraft/revisionable": "^1.36", "pda/pheanstalk": "^4.0", @@ -34,15 +34,15 @@ "fideloper/proxy": "^4.4" }, "require-dev": { - "mockery/mockery": "^1.3.1", - "phpunit/phpunit": "^8.5.8|^9.3.3", + "mockery/mockery": "^1.4.2", + "phpunit/phpunit": "^9.3.3", "symfony/dom-crawler": "^5.2", "symfony/css-selector": "^5.2", "laravel/browser-kit-testing": "^6.2", "nategood/httpful": "^0.2.20", - "nunomaduro/collision": "^4.3", + "nunomaduro/collision": "^5.0", "fakerphp/faker": "^1.9.1", - "facade/ignition": "^2.0" + "facade/ignition": "^2.5" }, "autoload": { "classmap": [ From 4a37c6387698b41d201e0e2bd1778f53379cd4f4 Mon Sep 17 00:00:00 2001 From: Laravel Shift Date: Sun, 14 Feb 2021 19:11:44 +0000 Subject: [PATCH 12/14] Shift cleanup --- app/Models/Album.php | 3 +-- app/Models/Genre.php | 2 +- app/Models/Track.php | 3 +-- app/Models/User.php | 3 +-- database/factories/AlbumFactory.php | 2 +- database/factories/GenreFactory.php | 4 +--- database/factories/TrackFactory.php | 2 +- database/factories/UserFactory.php | 2 +- database/seeders/GenreTableSeeder.php | 1 + database/seeders/ShowSongTableSeeder.php | 1 + 10 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/Models/Album.php b/app/Models/Album.php index cc88c867..3c902b0b 100644 --- a/app/Models/Album.php +++ b/app/Models/Album.php @@ -20,7 +20,6 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Contracts\Commentable; use App\Contracts\Favouritable; use App\Contracts\Searchable; @@ -34,6 +33,7 @@ use DB; use Exception; use Gate; use Helpers; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; @@ -91,7 +91,6 @@ use Venturecraft\Revisionable\RevisionableTrait; class Album extends Model implements Searchable, Commentable, Favouritable { use HasFactory; - use SoftDeletes, SlugTrait, TrackCollection, RevisionableTrait, IndexedInElasticsearchTrait; protected $elasticsearchType = 'album'; diff --git a/app/Models/Genre.php b/app/Models/Genre.php index 0b9f2131..291c56e2 100644 --- a/app/Models/Genre.php +++ b/app/Models/Genre.php @@ -20,9 +20,9 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Traits\SlugTrait; use DB; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Database\Eloquent\SoftDeletes; diff --git a/app/Models/Track.php b/app/Models/Track.php index 4ba00926..ecae76bd 100644 --- a/app/Models/Track.php +++ b/app/Models/Track.php @@ -20,7 +20,6 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Contracts\Commentable; use App\Contracts\Favouritable; use App\Contracts\Searchable; @@ -37,6 +36,7 @@ use External; use Gate; use getid3_writetags; use Helpers; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; @@ -150,7 +150,6 @@ use Venturecraft\Revisionable\RevisionableTrait; class Track extends Model implements Searchable, Commentable, Favouritable { use HasFactory; - use SoftDeletes, IndexedInElasticsearchTrait; protected $elasticsearchType = 'track'; diff --git a/app/Models/User.php b/app/Models/User.php index 1426793d..b4511177 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -20,7 +20,6 @@ namespace App\Models; -use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Contracts\Commentable; use App\Contracts\Searchable; use App\Traits\IndexedInElasticsearchTrait; @@ -32,6 +31,7 @@ use Illuminate\Auth\Authenticatable; use Illuminate\Auth\Passwords\CanResetPassword; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; @@ -106,7 +106,6 @@ use Venturecraft\Revisionable\RevisionableTrait; class User extends Model implements AuthenticatableContract, CanResetPasswordContract, \Illuminate\Contracts\Auth\Access\Authorizable, Searchable, Commentable { use HasFactory; - use Authenticatable, CanResetPassword, Authorizable, RevisionableTrait, IndexedInElasticsearchTrait; protected $elasticsearchType = 'user'; diff --git a/database/factories/AlbumFactory.php b/database/factories/AlbumFactory.php index 2017e0ae..d235906d 100644 --- a/database/factories/AlbumFactory.php +++ b/database/factories/AlbumFactory.php @@ -31,8 +31,8 @@ namespace Database\Factories; -use Illuminate\Database\Eloquent\Factories\Factory; use App\Models\User; +use Illuminate\Database\Eloquent\Factories\Factory; class AlbumFactory extends Factory { diff --git a/database/factories/GenreFactory.php b/database/factories/GenreFactory.php index 69014a44..4842867b 100644 --- a/database/factories/GenreFactory.php +++ b/database/factories/GenreFactory.php @@ -31,9 +31,8 @@ namespace Database\Factories; -use Illuminate\Database\Eloquent\Factories\Factory; use App\Models\User; - +use Illuminate\Database\Eloquent\Factories\Factory; /** * @property int $id @@ -51,7 +50,6 @@ use App\Models\User; * @property string $updated_at * @property \Carbon\Carbon $deleted_at */ - class GenreFactory extends Factory { /** diff --git a/database/factories/TrackFactory.php b/database/factories/TrackFactory.php index 7120d694..8d2790f2 100644 --- a/database/factories/TrackFactory.php +++ b/database/factories/TrackFactory.php @@ -31,8 +31,8 @@ namespace Database\Factories; -use Illuminate\Database\Eloquent\Factories\Factory; use App\Models\User; +use Illuminate\Database\Eloquent\Factories\Factory; class TrackFactory extends Factory { diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 79ce36ad..3fe15915 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -31,8 +31,8 @@ namespace Database\Factories; -use Illuminate\Database\Eloquent\Factories\Factory; use App\Models\User; +use Illuminate\Database\Eloquent\Factories\Factory; class UserFactory extends Factory { diff --git a/database/seeders/GenreTableSeeder.php b/database/seeders/GenreTableSeeder.php index e3279b96..d6689df5 100644 --- a/database/seeders/GenreTableSeeder.php +++ b/database/seeders/GenreTableSeeder.php @@ -21,6 +21,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class GenreTableSeeder extends Seeder { diff --git a/database/seeders/ShowSongTableSeeder.php b/database/seeders/ShowSongTableSeeder.php index 3f621670..4fffb973 100644 --- a/database/seeders/ShowSongTableSeeder.php +++ b/database/seeders/ShowSongTableSeeder.php @@ -21,6 +21,7 @@ namespace Database\Seeders; use Illuminate\Database\Seeder; +use Illuminate\Support\Facades\DB; class ShowSongTableSeeder extends Seeder { From 15e01fcc8dbdf669b456ac93e9ae62df6f42dd2e Mon Sep 17 00:00:00 2001 From: Adam Lavin Date: Sun, 14 Feb 2021 19:34:53 +0000 Subject: [PATCH 13/14] Updates after 8.0 shift --- app/Exceptions/Handler.php | 25 +- .../Middleware/RedirectIfAuthenticated.php | 13 +- app/Providers/RouteServiceProvider.php | 54 +- composer.json | 12 +- composer.lock | 1699 ++++++++++++++--- phpunit.xml | 13 +- 6 files changed, 1483 insertions(+), 333 deletions(-) diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 8a859378..49853ce9 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -28,7 +28,7 @@ use Throwable; class Handler extends ExceptionHandler { /** - * A list of the exception types that should not be reported. + * A list of the exception types that are not reported. * * @var array */ @@ -47,27 +47,14 @@ class Handler extends ExceptionHandler ]; /** - * Report or log an exception. + * Register the exception handling callbacks for the application. * - * This is a great spot to send exceptions to Sentry, Bugsnag, etc. - * - * @param \Exception $e * @return void */ - public function report(Throwable $e) + public function register() { - parent::report($e); - } - - /** - * Render an exception into an HTTP response. - * - * @param \Illuminate\Http\Request $request - * @param \Exception $e - * @return \Illuminate\Http\Response - */ - public function render($request, Throwable $e) - { - return parent::render($request, $e); + $this->reportable(function (Throwable $e) { + // + }); } } diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php index e11d2db0..e5dc4b2f 100644 --- a/app/Http/Middleware/RedirectIfAuthenticated.php +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -22,6 +22,7 @@ namespace App\Http\Middleware; use App\Providers\RouteServiceProvider; use Closure; +use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class RedirectIfAuthenticated @@ -31,13 +32,17 @@ class RedirectIfAuthenticated * * @param \Illuminate\Http\Request $request * @param \Closure $next - * @param string|null $guard + * @param string|null ...$guards * @return mixed */ - public function handle($request, Closure $next, $guard = null) + public function handle(Request $request, Closure $next, ...$guards) { - if (Auth::guard($guard)->check()) { - return redirect(RouteServiceProvider::HOME); + $guards = empty($guards) ? [null] : $guards; + + foreach ($guards as $guard) { + if (Auth::guard($guard)->check()) { + return redirect(RouteServiceProvider::HOME); + } } return $next($request); diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index cd820235..1f80b4e2 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -21,28 +21,32 @@ namespace App\Providers; use App\Models\User; +use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; -use Illuminate\Routing\Router; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Facades\Route; class RouteServiceProvider extends ServiceProvider { - /** - * This namespace is applied to the controller routes in your routes file. - * - * In addition, it is set as the URL generator's root namespace. - * - * @var string - */ - protected $namespace = 'App\Http\Controllers'; - /** * The path to the "home" route for your application. * + * This is used by Laravel authentication to redirect users after login. + * * @var string */ public const HOME = '/home'; + /** + * The controller namespace for the application. + * + * When present, controller route declarations will automatically be prefixed with this namespace. + * + * @var string|null + */ + // protected $namespace = 'App\\Http\\Controllers'; + /** * Define your route model bindings, pattern filters, etc. * @@ -50,26 +54,34 @@ class RouteServiceProvider extends ServiceProvider */ public function boot() { - parent::boot(); + $this->configureRateLimiting(); - Route::model('userId', User::class); - Route::bind('userSlug', function ($value) { - return User::where('slug', $value)->first(); + $this->routes(function () { + Route::model('userId', User::class); + Route::bind('userSlug', function ($value) { + return User::where('slug', $value)->first(); + }); + + Route::prefix('api') + ->middleware('api') + ->namespace($this->namespace) + ->group(base_path('routes/api.php')); + + Route::middleware('web') + ->namespace($this->namespace) + ->group(base_path('routes/web.php')); }); } /** - * Define the routes for the application. + * Configure the rate limiters for the application. * * @return void */ - public function map() + protected function configureRateLimiting() { - Route::group([ - 'middleware' => 'web', - 'namespace' => $this->namespace, - ], function ($router) { - require base_path('routes/web.php'); + RateLimiter::for('api', function (Request $request) { + return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); }); } } diff --git a/composer.json b/composer.json index 7e87d6c2..52298412 100644 --- a/composer.json +++ b/composer.json @@ -10,14 +10,14 @@ "license": "AGPL", "type": "project", "require": { - "php": "^7.3|^8.0", + "php": "^7.4|^8.0", "laravel/framework": "^8.27", "codescale/ffmpeg-php": "2.7.0", "guzzlehttp/guzzle": "^7.0.1", "doctrine/dbal": "^3.0", "venturecraft/revisionable": "^1.36", "pda/pheanstalk": "^4.0", - "cviebrock/laravel-elasticsearch": "^4.0", + "cviebrock/laravel-elasticsearch": "^8.0", "barryvdh/laravel-debugbar": "^3.5", "predis/predis": "^1.1", "ksubileau/color-thief-php": "^1.3", @@ -42,7 +42,8 @@ "nategood/httpful": "^0.2.20", "nunomaduro/collision": "^5.0", "fakerphp/faker": "^1.9.1", - "facade/ignition": "^2.5" + "facade/ignition": "^2.5", + "barryvdh/laravel-ide-helper": "^2.9" }, "autoload": { "classmap": [ @@ -67,6 +68,11 @@ "post-create-project-cmd": [ "@php artisan key:generate --ansi" ], + "post-update-cmd": [ + "Illuminate\\Foundation\\ComposerScripts::postUpdate", + "@php artisan ide-helper:generate", + "@php artisan ide-helper:meta" + ], "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" diff --git a/composer.lock b/composer.lock index 2f55f73c..5687a0be 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "cbf8c951a749c8ab4693b63d5753df3e", + "content-hash": "7f2545ffed83497275a9edc99215cdf8", "packages": [ { "name": "alsofronie/eloquent-uuid", @@ -425,28 +425,31 @@ }, { "name": "cviebrock/laravel-elasticsearch", - "version": "4.2.2", + "version": "8.0.3", "source": { "type": "git", "url": "https://github.com/cviebrock/laravel-elasticsearch.git", - "reference": "094ce7b41621005c0e8889625c9e3cf7d759b7d4" + "reference": "32ad18b0ad2315b3f0c3438a2c455e6cf383738a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cviebrock/laravel-elasticsearch/zipball/094ce7b41621005c0e8889625c9e3cf7d759b7d4", - "reference": "094ce7b41621005c0e8889625c9e3cf7d759b7d4", + "url": "https://api.github.com/repos/cviebrock/laravel-elasticsearch/zipball/32ad18b0ad2315b3f0c3438a2c455e6cf383738a", + "reference": "32ad18b0ad2315b3f0c3438a2c455e6cf383738a", "shasum": "" }, "require": { - "elasticsearch/elasticsearch": "^7.0", - "illuminate/contracts": "^6.0|^7.0", - "illuminate/support": "^6.0|^7.0", - "php": "^7.2.5" + "elasticsearch/elasticsearch": "^7.10", + "ext-json": "*", + "guzzlehttp/psr7": "^1.7", + "illuminate/contracts": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3", + "psr/http-message": "^1.0" }, "require-dev": { - "limedeck/phpunit-detailed-printer": "^5.0", - "orchestra/testbench": "^4.0|^5.0", - "phpunit/phpunit": "^8.0" + "limedeck/phpunit-detailed-printer": "^6.0", + "orchestra/testbench": "^6.5", + "phpunit/phpunit": "^9.4" }, "suggest": { "aws/aws-sdk-php": "Required to connect to an Elasticsearch host on AWS (^3.80)" @@ -487,9 +490,9 @@ ], "support": { "issues": "https://github.com/cviebrock/laravel-elasticsearch/issues", - "source": "https://github.com/cviebrock/laravel-elasticsearch/tree/4.2.2" + "source": "https://github.com/cviebrock/laravel-elasticsearch/tree/8.0.3" }, - "time": "2020-09-10T23:21:28+00:00" + "time": "2020-12-28T18:49:27+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -1223,30 +1226,32 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v2.3.1", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "65b2d8ee1f10915efb3b55597da3404f096acba2" + "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/65b2d8ee1f10915efb3b55597da3404f096acba2", - "reference": "65b2d8ee1f10915efb3b55597da3404f096acba2", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", + "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", "shasum": "" }, "require": { - "php": "^7.0|^8.0" + "php": "^7.2|^8.0", + "webmozart/assert": "^1.7.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^6.4|^7.0|^8.0|^9.0" + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-webmozart-assert": "^0.12.7", + "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -1257,11 +1262,6 @@ "MIT" ], "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, { "name": "Chris Tankersley", "email": "chris@ctankersley.com", @@ -1275,7 +1275,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v2.3.1" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0" }, "funding": [ { @@ -1283,7 +1283,7 @@ "type": "github" } ], - "time": "2020-10-13T00:52:37+00:00" + "time": "2020-11-24T19:55:57+00:00" }, { "name": "egulias/email-validator", @@ -1827,38 +1827,110 @@ "time": "2021-01-25T20:34:47+00:00" }, { - "name": "guzzlehttp/guzzle", - "version": "6.5.5", + "name": "graham-campbell/result-type", + "version": "v1.0.1", "source": { "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", - "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", + "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", + "shasum": "" + }, + "require": { + "php": "^7.0|^8.0", + "phpoption/phpoption": "^1.7.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2020-04-13T13:17:36+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", + "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.17.0" + "guzzlehttp/promises": "^1.4", + "guzzlehttp/psr7": "^1.7", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", "psr/log": "^1.1" }, "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5-dev" + "dev-master": "7.1-dev" } }, "autoload": { @@ -1878,6 +1950,11 @@ "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "Guzzle is a PHP HTTP client library", @@ -1888,14 +1965,34 @@ "framework", "http", "http client", + "psr-18", + "psr-7", "rest", "web service" ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/6.5" + "source": "https://github.com/guzzle/guzzle/tree/7.2.0" }, - "time": "2020-06-16T21:01:06+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://github.com/alexeyshockov", + "type": "github" + }, + { + "url": "https://github.com/gmponos", + "type": "github" + } + ], + "time": "2020-10-10T11:47:56+00:00" }, { "name": "guzzlehttp/promises", @@ -2028,37 +2125,45 @@ "time": "2020-09-30T07:37:11+00:00" }, { - "name": "ircmaxell/random-lib", - "version": "v1.2.0", + "name": "kriswallsmith/buzz", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/ircmaxell/RandomLib.git", - "reference": "e9e0204f40e49fa4419946c677eccd3fa25b8cf4" + "url": "https://github.com/kriswallsmith/Buzz.git", + "reference": "e7468d13f33fb6656068372533f2a446602fef09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ircmaxell/RandomLib/zipball/e9e0204f40e49fa4419946c677eccd3fa25b8cf4", - "reference": "e9e0204f40e49fa4419946c677eccd3fa25b8cf4", + "url": "https://api.github.com/repos/kriswallsmith/Buzz/zipball/e7468d13f33fb6656068372533f2a446602fef09", + "reference": "e7468d13f33fb6656068372533f2a446602fef09", "shasum": "" }, "require": { - "ircmaxell/security-lib": "^1.1", - "php": ">=5.3.2" + "php": "^7.1 || ^8.0", + "php-http/httplug": "^1.1 || ^2.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "symfony/options-resolver": "^3.4 || ^4.0 || ^5.0" + }, + "provide": { + "php-http/client-implementation": "1.0", + "psr/http-client-implementation": "1.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^1.11", - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "^4.8|^5.0" + "nyholm/psr7": "^1.0", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^7.5 || ^9.4", + "psr/log": "^1.0" + }, + "suggest": { + "ext-curl": "To use our cUrl clients", + "nyholm/psr7": "For PSR-7 and PSR-17 implementation" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, "autoload": { - "psr-0": { - "RandomLib": "lib" + "psr-4": { + "Buzz\\": "lib" } }, "notification-url": "https://packagist.org/downloads/", @@ -2067,74 +2172,27 @@ ], "authors": [ { - "name": "Anthony Ferrara", - "email": "ircmaxell@ircmaxell.com", - "homepage": "http://blog.ircmaxell.com" + "name": "Kris Wallsmith", + "email": "kris.wallsmith@gmail.com", + "homepage": "https://kriswallsmith.net/" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://tnyholm.se/" } ], - "description": "A Library For Generating Secure Random Numbers", - "homepage": "https://github.com/ircmaxell/RandomLib", + "description": "Lightweight HTTP client", + "homepage": "https://github.com/kriswallsmith/Buzz", "keywords": [ - "cryptography", - "random", - "random-numbers", - "random-strings" + "curl", + "http client" ], "support": { - "issues": "https://github.com/ircmaxell/RandomLib/issues", - "source": "https://github.com/ircmaxell/RandomLib/tree/master" + "issues": "https://github.com/kriswallsmith/Buzz/issues", + "source": "https://github.com/kriswallsmith/Buzz/tree/1.2.0" }, - "time": "2016-09-07T15:52:06+00:00" - }, - { - "name": "ircmaxell/security-lib", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/ircmaxell/SecurityLib.git", - "reference": "f3db6de12c20c9bcd1aa3db4353a1bbe0e44e1b5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ircmaxell/SecurityLib/zipball/f3db6de12c20c9bcd1aa3db4353a1bbe0e44e1b5", - "reference": "f3db6de12c20c9bcd1aa3db4353a1bbe0e44e1b5", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "require-dev": { - "mikey179/vfsstream": "1.1.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "SecurityLib": "lib" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthony Ferrara", - "email": "ircmaxell@ircmaxell.com", - "homepage": "http://blog.ircmaxell.com" - } - ], - "description": "A Base Security Library", - "homepage": "https://github.com/ircmaxell/SecurityLib", - "support": { - "issues": "https://github.com/ircmaxell/SecurityLib/issues", - "source": "https://github.com/ircmaxell/SecurityLib/tree/master" - }, - "time": "2015-03-20T14:31:23+00:00" + "time": "2020-10-22T09:05:42+00:00" }, { "name": "ksubileau/color-thief-php", @@ -2195,21 +2253,21 @@ }, { "name": "laravel/framework", - "version": "v7.30.4", + "version": "v8.27.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "9dd38140dc2924daa1a020a3d7a45f9ceff03df3" + "reference": "a6680d98f9dadaa363aa7d5218517a08706cee64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/9dd38140dc2924daa1a020a3d7a45f9ceff03df3", - "reference": "9dd38140dc2924daa1a020a3d7a45f9ceff03df3", + "url": "https://api.github.com/repos/laravel/framework/zipball/a6680d98f9dadaa363aa7d5218517a08706cee64", + "reference": "a6680d98f9dadaa363aa7d5218517a08706cee64", "shasum": "" }, "require": { "doctrine/inflector": "^1.4|^2.0", - "dragonmantank/cron-expression": "^2.3.1", + "dragonmantank/cron-expression": "^3.0.2", "egulias/email-validator": "^2.1.10", "ext-json": "*", "ext-mbstring": "*", @@ -2219,23 +2277,22 @@ "monolog/monolog": "^2.0", "nesbot/carbon": "^2.31", "opis/closure": "^3.6", - "php": "^7.2.5|^8.0", + "php": "^7.3|^8.0", "psr/container": "^1.0", "psr/simple-cache": "^1.0", - "ramsey/uuid": "^3.7|^4.0", + "ramsey/uuid": "^4.0", "swiftmailer/swiftmailer": "^6.0", - "symfony/console": "^5.0", - "symfony/error-handler": "^5.0", - "symfony/finder": "^5.0", - "symfony/http-foundation": "^5.0", - "symfony/http-kernel": "^5.0", - "symfony/mime": "^5.0", - "symfony/polyfill-php73": "^1.17", - "symfony/process": "^5.0", - "symfony/routing": "^5.0", - "symfony/var-dumper": "^5.0", + "symfony/console": "^5.1.4", + "symfony/error-handler": "^5.1.4", + "symfony/finder": "^5.1.4", + "symfony/http-foundation": "^5.1.4", + "symfony/http-kernel": "^5.1.4", + "symfony/mime": "^5.1.4", + "symfony/process": "^5.1.4", + "symfony/routing": "^5.1.4", + "symfony/var-dumper": "^5.1.4", "tijsverkoyen/css-to-inline-styles": "^2.2.2", - "vlucas/phpdotenv": "^4.0", + "vlucas/phpdotenv": "^5.2", "voku/portable-ascii": "^1.4.8" }, "conflict": { @@ -2249,6 +2306,7 @@ "illuminate/broadcasting": "self.version", "illuminate/bus": "self.version", "illuminate/cache": "self.version", + "illuminate/collections": "self.version", "illuminate/config": "self.version", "illuminate/console": "self.version", "illuminate/container": "self.version", @@ -2261,6 +2319,7 @@ "illuminate/hashing": "self.version", "illuminate/http": "self.version", "illuminate/log": "self.version", + "illuminate/macroable": "self.version", "illuminate/mail": "self.version", "illuminate/notifications": "self.version", "illuminate/pagination": "self.version", @@ -2277,21 +2336,21 @@ }, "require-dev": { "aws/aws-sdk-php": "^3.155", - "doctrine/dbal": "^2.6", + "doctrine/dbal": "^2.6|^3.0", "filp/whoops": "^2.8", - "guzzlehttp/guzzle": "^6.3.1|^7.0.1", + "guzzlehttp/guzzle": "^6.5.5|^7.0.1", "league/flysystem-cached-adapter": "^1.0", - "mockery/mockery": "~1.3.3|^1.4.2", - "moontoast/math": "^1.1", - "orchestra/testbench-core": "^5.8", + "mockery/mockery": "^1.4.2", + "orchestra/testbench-core": "^6.8", "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.4|^9.3.3", + "phpunit/phpunit": "^8.5.8|^9.3.3", "predis/predis": "^1.1.1", - "symfony/cache": "^5.0" + "symfony/cache": "^5.1.4" }, "suggest": { "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.155).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6).", + "brianium/paratest": "Required to run tests in parallel (^6.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).", "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", "ext-memcached": "Required to use the memcache cache driver.", @@ -2300,37 +2359,42 @@ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "filp/whoops": "Required for friendly error pages in development (^2.8).", - "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.3.1|^7.0.1).", + "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", - "mockery/mockery": "Required to use mocking (~1.3.3|^1.4.2).", - "moontoast/math": "Required to use ordered UUIDs (^1.1).", + "mockery/mockery": "Required to use mocking (^1.4.2).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "phpunit/phpunit": "Required to use assertions and run tests (^8.4|^9.3.3).", + "phpunit/phpunit": "Required to use assertions and run tests (^8.5.8|^9.3.3).", "predis/predis": "Required to use the predis connector (^1.1.2).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.0).", - "symfony/filesystem": "Required to create relative storage directory symbolic links (^5.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).", "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { "files": [ + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", "src/Illuminate/Foundation/helpers.php", "src/Illuminate/Support/helpers.php" ], "psr-4": { - "Illuminate\\": "src/Illuminate/" + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/" + ] } }, "notification-url": "https://packagist.org/downloads/", @@ -2353,7 +2417,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-01-21T14:10:48+00:00" + "time": "2021-02-09T15:14:54+00:00" }, { "name": "laravel/tinker", @@ -2677,35 +2741,33 @@ }, { "name": "league/oauth2-client", - "version": "1.4.2", + "version": "2.6.0", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth2-client.git", - "reference": "01f955b85040b41cf48885b078f7fd39a8be5411" + "reference": "badb01e62383430706433191b82506b6df24ad98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/01f955b85040b41cf48885b078f7fd39a8be5411", - "reference": "01f955b85040b41cf48885b078f7fd39a8be5411", + "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/badb01e62383430706433191b82506b6df24ad98", + "reference": "badb01e62383430706433191b82506b6df24ad98", "shasum": "" }, "require": { - "ext-curl": "*", - "guzzlehttp/guzzle": "~6.0", - "ircmaxell/random-lib": "~1.1", - "php": ">=5.5.0" + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "paragonie/random_compat": "^1 || ^2 || ^9.99", + "php": "^5.6 || ^7.0 || ^8.0" }, "require-dev": { - "jakub-onderka/php-parallel-lint": "0.8.*", - "mockery/mockery": "~0.9", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "0.6.*", - "squizlabs/php_codesniffer": "~2.0" + "mockery/mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpunit/phpunit": "^5.7 || ^6.0 || ^9.3", + "squizlabs/php_codesniffer": "^2.3 || ^3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-2.x": "2.0.x-dev" } }, "autoload": { @@ -2723,6 +2785,11 @@ "email": "hello@alexbilbie.com", "homepage": "http://www.alexbilbie.com", "role": "Developer" + }, + { + "name": "Woody Gilk", + "homepage": "https://github.com/shadowhand", + "role": "Contributor" } ], "description": "OAuth 2.0 Client Library", @@ -2738,9 +2805,9 @@ ], "support": { "issues": "https://github.com/thephpleague/oauth2-client/issues", - "source": "https://github.com/thephpleague/oauth2-client/tree/master" + "source": "https://github.com/thephpleague/oauth2-client/tree/2.6.0" }, - "time": "2016-07-28T13:20:43+00:00" + "time": "2020-10-28T02:03:40+00:00" }, { "name": "maximebf/debugbar", @@ -2879,29 +2946,29 @@ }, { "name": "minishlink/web-push", - "version": "v1.4.3", + "version": "v1.3.4", "source": { "type": "git", "url": "https://github.com/web-push-libs/web-push-php.git", - "reference": "65fcd80fccecc29a4df7fbf47c3fbc9558e07d94" + "reference": "8651c6ea5a8b26db3fb58ad399a33b8ee59046b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-push-libs/web-push-php/zipball/65fcd80fccecc29a4df7fbf47c3fbc9558e07d94", - "reference": "65fcd80fccecc29a4df7fbf47c3fbc9558e07d94", + "url": "https://api.github.com/repos/web-push-libs/web-push-php/zipball/8651c6ea5a8b26db3fb58ad399a33b8ee59046b0", + "reference": "8651c6ea5a8b26db3fb58ad399a33b8ee59046b0", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "^6.2", + "kriswallsmith/buzz": ">=0.6", "lib-openssl": "*", "mdanter/ecc": "^0.4.0", - "php": "^5.6 || ^7.0", + "php": ">=5.6", "spomky-labs/base64url": "^1.0", "spomky-labs/jose": "^6.0", - "spomky-labs/php-aes-gcm": "^1.2" + "spomky-labs/php-aes-gcm": "^1.0" }, "require-dev": { - "phpunit/phpunit": "5.7.*" + "phpunit/phpunit": "4.8.*" }, "type": "library", "autoload": { @@ -2933,7 +3000,7 @@ "issues": "https://github.com/web-push-libs/web-push-php/issues", "source": "https://github.com/web-push-libs/web-push-php/tree/master" }, - "time": "2017-06-28T19:03:40+00:00" + "time": "2016-11-30T12:24:44+00:00" }, { "name": "monolog/monolog", @@ -3354,6 +3421,125 @@ }, "time": "2020-09-22T07:17:48+00:00" }, + { + "name": "php-http/httplug", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/httplug.git", + "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/httplug/zipball/191a0a1b41ed026b717421931f8d3bd2514ffbf9", + "reference": "191a0a1b41ed026b717421931f8d3bd2514ffbf9", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/promise": "^1.1", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.1", + "phpspec/phpspec": "^5.1 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "HTTPlug, the HTTP client abstraction for PHP", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "http" + ], + "support": { + "issues": "https://github.com/php-http/httplug/issues", + "source": "https://github.com/php-http/httplug/tree/master" + }, + "time": "2020-07-13T15:43:23+00:00" + }, + { + "name": "php-http/promise", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/promise.git", + "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88", + "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.3.2", + "phpspec/phpspec": "^5.1.2 || ^6.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joel Wurtz", + "email": "joel.wurtz@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Promise used for asynchronous HTTP requests", + "homepage": "http://httplug.io", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/php-http/promise/issues", + "source": "https://github.com/php-http/promise/tree/1.1.0" + }, + "time": "2020-07-07T09:29:14+00:00" + }, { "name": "phpoption/phpoption", "version": "1.7.5", @@ -3429,19 +3615,19 @@ "source": { "type": "git", "url": "https://github.com/Poniverse/poniverse-php.git", - "reference": "ff45a2a34ea2ff5b1fe49411d6d4ba3b96a67fdf" + "reference": "ca5fb08750978ce9d1652a42cb106f5c15c8af56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Poniverse/poniverse-php/zipball/ff45a2a34ea2ff5b1fe49411d6d4ba3b96a67fdf", - "reference": "ff45a2a34ea2ff5b1fe49411d6d4ba3b96a67fdf", + "url": "https://api.github.com/repos/Poniverse/poniverse-php/zipball/ca5fb08750978ce9d1652a42cb106f5c15c8af56", + "reference": "ca5fb08750978ce9d1652a42cb106f5c15c8af56", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "~6.0", - "illuminate/support": "5.*|6.*|7.*", - "league/oauth2-client": "^1.1", - "php": ">=5.5.0" + "guzzlehttp/guzzle": "^7.0", + "illuminate/support": "^8.0", + "league/oauth2-client": "^2.6", + "php": ">=7.4.0" }, "require-dev": { "mockery/mockery": "0.9.*", @@ -3474,7 +3660,7 @@ "issues": "https://github.com/Poniverse/poniverse-php/issues", "source": "https://github.com/Poniverse/poniverse-php/tree/rewrite" }, - "time": "2021-02-14T03:30:49+00:00" + "time": "2021-02-14T19:24:08+00:00" }, { "name": "predis/predis", @@ -3707,6 +3893,113 @@ }, "time": "2019-01-08T18:20:26+00:00" }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -5486,6 +5779,75 @@ ], "time": "2021-02-02T06:10:15+00:00" }, + { + "name": "symfony/options-resolver", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "reference": "5d0f633f9bbfcf7ec642a2b5037268e61b0a62ce", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.15" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.2.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T12:56:27+00:00" + }, { "name": "symfony/polyfill-ctype", "version": "v1.22.0", @@ -6975,37 +7337,39 @@ }, { "name": "vlucas/phpdotenv", - "version": "v4.2.0", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "da64796370fc4eb03cc277088f6fede9fde88482" + "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/da64796370fc4eb03cc277088f6fede9fde88482", - "reference": "da64796370fc4eb03cc277088f6fede9fde88482", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", + "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", - "phpoption/phpoption": "^1.7.3", - "symfony/polyfill-ctype": "^1.17" + "ext-pcre": "*", + "graham-campbell/result-type": "^1.0.1", + "php": "^7.1.3 || ^8.0", + "phpoption/phpoption": "^1.7.4", + "symfony/polyfill-ctype": "^1.17", + "symfony/polyfill-mbstring": "^1.17", + "symfony/polyfill-php80": "^1.17" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", - "ext-pcre": "*", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20" + "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1" }, "suggest": { - "ext-filter": "Required to use the boolean validator.", - "ext-pcre": "Required to use most of the library." + "ext-filter": "Required to use the boolean validator." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "5.3-dev" } }, "autoload": { @@ -7037,7 +7401,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v4.2.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.0" }, "funding": [ { @@ -7049,7 +7413,7 @@ "type": "tidelift" } ], - "time": "2021-01-20T15:11:48+00:00" + "time": "2021-01-20T15:23:13+00:00" }, { "name": "voku/portable-ascii", @@ -7125,6 +7489,59 @@ ], "time": "2020-11-12T00:07:28+00:00" }, + { + "name": "webmozart/assert", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.9.1" + }, + "time": "2020-07-08T17:02:28+00:00" + }, { "name": "webpatser/laravel-uuid", "version": "2.2.1", @@ -7185,6 +7602,540 @@ } ], "packages-dev": [ + { + "name": "barryvdh/laravel-ide-helper", + "version": "v2.9.0", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-ide-helper.git", + "reference": "64a6b902583802c162cdccf7e76dc8619368bf1a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/64a6b902583802c162cdccf7e76dc8619368bf1a", + "reference": "64a6b902583802c162cdccf7e76dc8619368bf1a", + "shasum": "" + }, + "require": { + "barryvdh/reflection-docblock": "^2.0.6", + "composer/composer": "^1.6 || ^2", + "doctrine/dbal": "^2.6 || ^3", + "ext-json": "*", + "illuminate/console": "^8", + "illuminate/filesystem": "^8", + "illuminate/support": "^8", + "php": "^7.3 || ^8.0", + "phpdocumentor/type-resolver": "^1.1.0" + }, + "require-dev": { + "ext-pdo_sqlite": "*", + "friendsofphp/php-cs-fixer": "^2", + "illuminate/config": "^8", + "illuminate/view": "^8", + "mockery/mockery": "^1.4", + "orchestra/testbench": "^6", + "phpunit/phpunit": "^8.5 || ^9", + "spatie/phpunit-snapshot-assertions": "^3 || ^4", + "vimeo/psalm": "^3.12" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\LaravelIdeHelper\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", + "keywords": [ + "autocomplete", + "codeintel", + "helper", + "ide", + "laravel", + "netbeans", + "phpdoc", + "phpstorm", + "sublime" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.9.0" + }, + "funding": [ + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2020-12-29T10:11:05+00:00" + }, + { + "name": "barryvdh/reflection-docblock", + "version": "v2.0.6", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/ReflectionDocBlock.git", + "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/6b69015d83d3daf9004a71a89f26e27d27ef6a16", + "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0,<4.5" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Barryvdh": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" + } + ], + "support": { + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.0.6" + }, + "time": "2018-12-13T10:34:14+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.2.9", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5", + "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.55", + "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.2.9" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-01-12T12:10:35+00:00" + }, + { + "name": "composer/composer", + "version": "2.0.9", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "591c2c155cac0d2d7f34af41d3b1e29bcbfc685e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/591c2c155cac0d2d7f34af41d3b1e29bcbfc685e", + "reference": "591c2c155cac0d2d7f34af41d3b1e29bcbfc685e", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "composer/semver": "^3.0", + "composer/spdx-licenses": "^1.2", + "composer/xdebug-handler": "^1.1", + "justinrainbow/json-schema": "^5.2.10", + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0", + "react/promise": "^1.2 || ^2.7", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0" + }, + "require-dev": { + "phpspec/prophecy": "^1.10", + "symfony/phpunit-bridge": "^4.2 || ^5.0" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "https://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/composer/issues", + "source": "https://github.com/composer/composer/tree/2.0.9" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-01-27T15:09:27+00:00" + }, + { + "name": "composer/semver", + "version": "3.2.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:59:24+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.5.5", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "de30328a7af8680efdc03e396aad24befd513200" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200", + "reference": "de30328a7af8680efdc03e396aad24befd513200", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/spdx-licenses/issues", + "source": "https://github.com/composer/spdx-licenses/tree/1.5.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-12-03T16:04:16+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f28d44c286812c714741478d968104c5e604a1d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:04:11+00:00" + }, { "name": "facade/flare-client-php", "version": "1.3.7", @@ -7554,6 +8505,76 @@ }, "time": "2020-07-09T08:09:16+00:00" }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.10", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.10" + }, + "time": "2020-05-27T16:41:55+00:00" + }, { "name": "laravel/browser-kit-testing", "version": "v6.2.2", @@ -7806,35 +8827,35 @@ }, { "name": "nunomaduro/collision", - "version": "v4.3.0", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "7c125dc2463f3e144ddc7e05e63077109508c94e" + "reference": "aca63581f380f63a492b1e3114604e411e39133a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/7c125dc2463f3e144ddc7e05e63077109508c94e", - "reference": "7c125dc2463f3e144ddc7e05e63077109508c94e", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/aca63581f380f63a492b1e3114604e411e39133a", + "reference": "aca63581f380f63a492b1e3114604e411e39133a", "shasum": "" }, "require": { "facade/ignition-contracts": "^1.0", - "filp/whoops": "^2.4", - "php": "^7.2.5 || ^8.0", + "filp/whoops": "^2.7.2", + "php": "^7.3 || ^8.0", "symfony/console": "^5.0" }, "require-dev": { - "facade/ignition": "^2.0", - "fideloper/proxy": "^4.2", - "friendsofphp/php-cs-fixer": "^2.16", - "fruitcake/laravel-cors": "^1.0", - "laravel/framework": "^7.0", - "laravel/tinker": "^2.0", - "nunomaduro/larastan": "^0.6", - "orchestra/testbench": "^5.0", - "phpstan/phpstan": "^0.12.3", - "phpunit/phpunit": "^8.5.1 || ^9.0" + "brianium/paratest": "^6.1", + "fideloper/proxy": "^4.4.1", + "friendsofphp/php-cs-fixer": "^2.17.3", + "fruitcake/laravel-cors": "^2.0.3", + "laravel/framework": "^9.0", + "nunomaduro/larastan": "^0.6.2", + "nunomaduro/mock-final-classes": "^1.0", + "orchestra/testbench": "^7.0", + "phpstan/phpstan": "^0.12.64", + "phpunit/phpunit": "^9.5.0" }, "type": "library", "extra": { @@ -7890,7 +8911,7 @@ "type": "patreon" } ], - "time": "2020-10-29T15:12:23+00:00" + "time": "2021-01-25T15:34:13+00:00" }, { "name": "phar-io/manifest", @@ -9613,6 +10634,117 @@ ], "time": "2020-09-28T06:39:44+00:00" }, + { + "name": "seld/jsonlint", + "version": "1.8.3", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2020-11-11T09:19:24+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "support": { + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/master" + }, + "time": "2020-07-07T18:42:57+00:00" + }, { "name": "symfony/dom-crawler", "version": "v5.2.3", @@ -9687,6 +10819,68 @@ ], "time": "2021-01-27T10:01:46+00:00" }, + { + "name": "symfony/filesystem", + "version": "v5.2.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/262d033b57c73e8b59cd6e68a45c528318b15038", + "reference": "262d033b57c73e8b59cd6e68a45c528318b15038", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.2.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:01:46+00:00" + }, { "name": "theseer/tokenizer", "version": "1.2.0", @@ -9736,59 +10930,6 @@ } ], "time": "2020-07-12T23:59:07+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.9.1", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", - "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0 || ^8.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<3.9.1" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" - }, - "type": "library", - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.9.1" - }, - "time": "2020-07-08T17:02:28+00:00" } ], "aliases": [], @@ -9799,7 +10940,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.2.5|^8.0" + "php": "^7.4|^8.0" }, "platform-dev": [], "plugin-api-version": "2.0.0" diff --git a/phpunit.xml b/phpunit.xml index 3e3a57b9..bad17df8 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,18 +1,17 @@ + + + app/ + + ./tests/ - - - app/ - - From 0af1dfa71dd8cbe3eb064460127b7b86d90954a0 Mon Sep 17 00:00:00 2001 From: Adam Lavin Date: Sun, 14 Feb 2021 19:35:26 +0000 Subject: [PATCH 14/14] Add missing migration --- ...4_193058_add_uuid_to_failed_jobs_table.php | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 database/migrations/2021_02_14_193058_add_uuid_to_failed_jobs_table.php diff --git a/database/migrations/2021_02_14_193058_add_uuid_to_failed_jobs_table.php b/database/migrations/2021_02_14_193058_add_uuid_to_failed_jobs_table.php new file mode 100644 index 00000000..dc62b948 --- /dev/null +++ b/database/migrations/2021_02_14_193058_add_uuid_to_failed_jobs_table.php @@ -0,0 +1,38 @@ +string('uuid')->after('id')->nullable()->unique(); + }); + + DB::table('failed_jobs')->whereNull('uuid')->cursor()->each(function ($job) { + DB::table('failed_jobs') + ->where('id', $job->id) + ->update(['uuid' => (string) Str::uuid()]); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('failed_jobs', function (Blueprint $table) { + $table->dropColumn('uuid'); + }); + } +}