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/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/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/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/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;
}
diff --git a/app/Models/Album.php b/app/Models/Album.php
index c43b343f..3c902b0b 100644
--- a/app/Models/Album.php
+++ b/app/Models/Album.php
@@ -33,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;
@@ -89,6 +90,7 @@ 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..291c56e2 100644
--- a/app/Models/Genre.php
+++ b/app/Models/Genre.php
@@ -22,6 +22,7 @@ namespace App\Models;
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;
@@ -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..ecae76bd 100644
--- a/app/Models/Track.php
+++ b/app/Models/Track.php
@@ -36,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;
@@ -148,6 +149,7 @@ 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..b4511177 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -31,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;
@@ -104,6 +105,7 @@ 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/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();
//
}
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 01037a55..52298412 100644
--- a/composer.json
+++ b/composer.json
@@ -10,14 +10,14 @@
"license": "AGPL",
"type": "project",
"require": {
- "php": "^7.2.5|^8.0",
- "laravel/framework": "^7.29",
+ "php": "^7.4|^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",
- "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",
@@ -34,25 +34,26 @@
"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",
+ "barryvdh/laravel-ide-helper": "^2.9"
},
"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": {
@@ -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/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/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
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',
],
diff --git a/database/factories/AlbumFactory.php b/database/factories/AlbumFactory.php
new file mode 100644
index 00000000..d235906d
--- /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 App\Models\User;
+use Illuminate\Database\Eloquent\Factories\Factory;
+
+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..4842867b
--- /dev/null
+++ b/database/factories/GenreFactory.php
@@ -0,0 +1,74 @@
+.
+ */
+
+/*
+|--------------------------------------------------------------------------
+| 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 App\Models\User;
+use Illuminate\Database\Eloquent\Factories\Factory;
+
+/**
+ * @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..8d2790f2
--- /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 App\Models\User;
+use Illuminate\Database\Eloquent\Factories\Factory;
+
+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..3fe15915
--- /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 App\Models\User;
+use Illuminate\Database\Eloquent\Factories\Factory;
+
+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/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');
+ });
+ }
+}
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 98%
rename from database/seeds/GenreTableSeeder.php
rename to database/seeders/GenreTableSeeder.php
index 2ce46904..d6689df5 100644
--- a/database/seeds/GenreTableSeeder.php
+++ b/database/seeders/GenreTableSeeder.php
@@ -18,7 +18,10 @@
* along with this program. If not, see .
*/
+namespace Database\Seeders;
+
use Illuminate\Database\Seeder;
+use Illuminate\Support\Facades\DB;
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..4fffb973 100644
--- a/database/seeds/ShowSongTableSeeder.php
+++ b/database/seeders/ShowSongTableSeeder.php
@@ -18,7 +18,10 @@
* along with this program. If not, see .
*/
+namespace Database\Seeders;
+
use Illuminate\Database\Seeder;
+use Illuminate\Support\Facades\DB;
class ShowSongTableSeeder extends Seeder
{
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/
-
-
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.',
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');
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
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');