Merge pull request #936 from jonnybarnes/935-fix-psalm-issues

Implement Psalm improvements
This commit is contained in:
Jonny Barnes 2023-07-28 13:02:07 +01:00 committed by GitHub
commit 235521589f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
68 changed files with 442 additions and 102 deletions

View file

@ -33,7 +33,7 @@ jobs:
- name: Setup PHP with pecl extensions
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
php-version: '8.2'
extensions: phpredis,imagick
- name: Copy .env

View file

@ -16,7 +16,7 @@ jobs:
- name: Setup PHP with pecl extensions
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
php-version: '8.2'
- name: Get Composer Cache Directory
id: composer-cache

View file

@ -8,6 +8,8 @@ use Illuminate\Support\Facades\DB;
/**
* @codeCoverageIgnore
*
* @psalm-suppress UnusedClass
*/
class MigratePlaceDataFromPostgis extends Command
{

View file

@ -9,6 +9,9 @@ use Illuminate\Console\Command;
use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Illuminate\FileSystem\FileSystem;
/**
* @psalm-suppress UnusedClass
*/
class ParseCachedWebMentions extends Command
{
/**

View file

@ -8,6 +8,9 @@ use App\Jobs\DownloadWebMention;
use App\Models\WebMention;
use Illuminate\Console\Command;
/**
* @psalm-suppress UnusedClass
*/
class ReDownloadWebMentions extends Command
{
/**

View file

@ -7,23 +7,12 @@ use Throwable;
class Handler extends ExceptionHandler
{
/**
* The list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*/
public function register(): void
{
$this->reportable(function (Throwable $e) {
$this->reportable(function (Throwable $_e) {
//
});
}

View file

@ -1,7 +0,0 @@
<?php
namespace App\Exceptions;
class TwitterContentException extends \Exception
{
}

View file

@ -9,6 +9,9 @@ use App\Models\Article;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class ArticlesController extends Controller
{
public function index(): View

View file

@ -10,6 +10,9 @@ use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class BioController extends Controller
{
public function show(): View

View file

@ -9,6 +9,9 @@ use App\Models\MicropubClient;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class ClientsController extends Controller
{
/**

View file

@ -12,6 +12,9 @@ use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Arr;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class ContactsController extends Controller
{
/**

View file

@ -7,6 +7,9 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class HomeController extends Controller
{
/**

View file

@ -10,6 +10,9 @@ use App\Models\Like;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class LikesController extends Controller
{
/**

View file

@ -11,6 +11,9 @@ use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class NotesController extends Controller
{
/**

View file

@ -10,6 +10,9 @@ use App\Services\PlaceService;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class PlacesController extends Controller
{
protected PlaceService $placeService;

View file

@ -10,6 +10,9 @@ use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class SyndicationTargetsController extends Controller
{
/**

View file

@ -10,6 +10,9 @@ use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
use Jonnybarnes\IndieWeb\Numbers;
/**
* @psalm-suppress UnusedClass
*/
class ArticlesController extends Controller
{
/**

View file

@ -9,6 +9,9 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class AuthController extends Controller
{
/**

View file

@ -7,6 +7,9 @@ namespace App\Http\Controllers;
use App\Models\Bookmark;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class BookmarksController extends Controller
{
/**

View file

@ -8,6 +8,9 @@ use App\Models\Contact;
use Illuminate\Filesystem\Filesystem;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class ContactsController extends Controller
{
/**

View file

@ -9,6 +9,9 @@ use App\Models\Note;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Response;
/**
* @psalm-suppress UnusedClass
*/
class FeedsController extends Controller
{
/**

View file

@ -7,16 +7,18 @@ use App\Models\Bio;
use App\Models\Bookmark;
use App\Models\Like;
use App\Models\Note;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class FrontPageController extends Controller
{
/**
* Show all the recent activity.
*/
public function index(Request $request): Response|View
public function index(): Response|View
{
$notes = Note::latest()->with(['media', 'client', 'place'])->get();
$articles = Article::latest()->get();

View file

@ -7,6 +7,9 @@ namespace App\Http\Controllers;
use App\Models\Like;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class LikesController extends Controller
{
/**

View file

@ -19,6 +19,9 @@ use Lcobucci\JWT\Validation\RequiredConstraintsViolated;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
/**
* @psalm-suppress UnusedClass
*/
class MicropubController extends Controller
{
protected TokenService $tokenService;

View file

@ -24,6 +24,9 @@ use Lcobucci\JWT\Token\InvalidTokenStructure;
use Lcobucci\JWT\Validation\RequiredConstraintsViolated;
use Ramsey\Uuid\Uuid;
/**
* @psalm-suppress UnusedClass
*/
class MicropubMediaController extends Controller
{
protected TokenService $tokenService;

View file

@ -8,19 +8,21 @@ use App\Models\Note;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\View\View;
use Jonnybarnes\IndieWeb\Numbers;
// Need to sort out Twitter and webmentions!
/**
* @todo Need to sort out Twitter and webmentions!
*
* @psalm-suppress UnusedClass
*/
class NotesController extends Controller
{
/**
* Show all the notes. This is also the homepage.
*/
public function index(Request $request): View|Response
public function index(): View|Response
{
$notes = Note::latest()
->with('place', 'media', 'client')

View file

@ -7,6 +7,9 @@ namespace App\Http\Controllers;
use App\Models\Place;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class PlacesController extends Controller
{
/**

View file

@ -6,6 +6,9 @@ use App\Models\Note;
use Illuminate\Http\Request;
use Illuminate\View\View;
/**
* @psalm-suppress UnusedClass
*/
class SearchController extends Controller
{
public function search(Request $request): View

View file

@ -6,6 +6,9 @@ namespace App\Http\Controllers;
use Illuminate\Http\RedirectResponse;
/**
* @psalm-suppress UnusedClass
*/
class ShortURLsController extends Controller
{
/*

View file

@ -12,6 +12,9 @@ use Illuminate\Http\Request;
use IndieAuth\Client;
use JsonException;
/**
* @psalm-suppress UnusedClass
*/
class TokenEndpointController extends Controller
{
/**

View file

@ -12,6 +12,9 @@ use Illuminate\Http\Response;
use Illuminate\View\View;
use Jonnybarnes\IndieWeb\Numbers;
/**
* @psalm-suppress UnusedClass
*/
class WebMentionsController extends Controller
{
/**

View file

@ -11,6 +11,8 @@ class CSPHeader
{
/**
* Handle an incoming request.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function handle(Request $request, Closure $next): Response
{

View file

@ -10,6 +10,8 @@ class CorsHeaders
{
/**
* Handle an incoming request.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function handle(Request $request, Closure $next): Response
{

View file

@ -10,6 +10,8 @@ class LinkHeadersMiddleware
{
/**
* Handle an incoming request.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function handle(Request $request, Closure $next): Response
{

View file

@ -14,6 +14,8 @@ class LocalhostSessionMiddleware
* Whilst we are developing locally, automatically log in as
* `['me' => config('app.url')]` as I cant manually log in as
* a .localhost domain.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function handle(Request $request, Closure $next): Response
{

View file

@ -13,6 +13,8 @@ class MyAuthMiddleware
{
/**
* Check the user is logged in.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function handle(Request $request, Closure $next): Response
{

View file

@ -10,6 +10,8 @@ class ValidateSignature extends Middleware
* The names of the query string parameters that should be ignored.
*
* @var array<int, string>
*
* @psalm-suppress PossiblyUnusedProperty
*/
protected $except = [
// 'fbclid',

View file

@ -12,6 +12,8 @@ class VerifyMicropubToken
{
/**
* Handle an incoming request.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function handle(Request $request, Closure $next): Response
{

View file

@ -71,7 +71,6 @@ class SendWebMentions implements ShouldQueue
$endpoint = null;
/** @var Client $guzzle */
$guzzle = resolve(Client::class);
$response = $guzzle->get($url);
//check HTTP Headers for webmention endpoint

View file

@ -9,10 +9,15 @@ use App\Models\Tag;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
/**
* @todo Do we need psalm-suppress for these observer methods?
*/
class NoteObserver
{
/**
* Listen to the Note created event.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function created(Note $note): void
{
@ -35,6 +40,8 @@ class NoteObserver
/**
* Listen to the Note updated event.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function updated(Note $note): void
{
@ -59,6 +66,8 @@ class NoteObserver
/**
* Listen to the Note deleting event.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function deleting(Note $note): void
{

View file

@ -6,6 +6,9 @@ use Illuminate\Support\Facades\Gate;
use Laravel\Horizon\Horizon;
use Laravel\Horizon\HorizonApplicationServiceProvider;
/**
* @psalm-suppress UnusedClass
*/
class HorizonServiceProvider extends HorizonApplicationServiceProvider
{
/**

View file

@ -5,7 +5,7 @@
"keywords": ["laravel", "framework", "indieweb"],
"license": "CC0-1.0",
"require": {
"php": "^8.1",
"php": "^8.2",
"ext-dom": "*",
"ext-intl": "*",
"ext-json": "*",
@ -42,6 +42,7 @@
"openai-php/client": "^0.6.1",
"phpunit/php-code-coverage": "^10.0",
"phpunit/phpunit": "^10.1",
"psalm/plugin-laravel": "^2.8",
"spatie/laravel-ray": "^1.12",
"vimeo/psalm": "^5.0"
},

331
composer.lock generated
View file

@ -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": "ebd4c00143a4dfb090f4d12d808d4782",
"content-hash": "a0824739b9d145bf875bf9ae54e89b07",
"packages": [
{
"name": "aws/aws-crt-php",
@ -62,16 +62,16 @@
},
{
"name": "aws/aws-sdk-php",
"version": "3.273.4",
"version": "3.277.2",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "36a039d5dfcaa7dc9101b121cf1dfb6ca2abd605"
"reference": "483c9edf258527a6916f7e9fac224fdb2d474aff"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/36a039d5dfcaa7dc9101b121cf1dfb6ca2abd605",
"reference": "36a039d5dfcaa7dc9101b121cf1dfb6ca2abd605",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/483c9edf258527a6916f7e9fac224fdb2d474aff",
"reference": "483c9edf258527a6916f7e9fac224fdb2d474aff",
"shasum": ""
},
"require": {
@ -151,9 +151,9 @@
"support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
"issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.273.4"
"source": "https://github.com/aws/aws-sdk-php/tree/3.277.2"
},
"time": "2023-06-20T19:54:39+00:00"
"time": "2023-07-28T00:20:24+00:00"
},
{
"name": "brick/math",
@ -4282,16 +4282,16 @@
},
{
"name": "psy/psysh",
"version": "v0.11.18",
"version": "v0.11.19",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
"reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec"
"reference": "1724ceff278daeeac5a006744633bacbb2dc4706"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/4f00ee9e236fa6a48f4560d1300b9c961a70a7ec",
"reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/1724ceff278daeeac5a006744633bacbb2dc4706",
"reference": "1724ceff278daeeac5a006744633bacbb2dc4706",
"shasum": ""
},
"require": {
@ -4352,9 +4352,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
"source": "https://github.com/bobthecow/psysh/tree/v0.11.18"
"source": "https://github.com/bobthecow/psysh/tree/v0.11.19"
},
"time": "2023-05-23T02:31:11+00:00"
"time": "2023-07-15T19:42:19+00:00"
},
{
"name": "ralouphie/getallheaders",
@ -4777,16 +4777,16 @@
},
{
"name": "spatie/flare-client-php",
"version": "1.4.0",
"version": "1.4.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/flare-client-php.git",
"reference": "82138174d5fe2829a7f085a6bdb2a06f6def9f7a"
"reference": "5f2c6a7a0d2c1d90c12559dc7828fd942911a544"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/flare-client-php/zipball/82138174d5fe2829a7f085a6bdb2a06f6def9f7a",
"reference": "82138174d5fe2829a7f085a6bdb2a06f6def9f7a",
"url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5f2c6a7a0d2c1d90c12559dc7828fd942911a544",
"reference": "5f2c6a7a0d2c1d90c12559dc7828fd942911a544",
"shasum": ""
},
"require": {
@ -4835,7 +4835,7 @@
],
"support": {
"issues": "https://github.com/spatie/flare-client-php/issues",
"source": "https://github.com/spatie/flare-client-php/tree/1.4.0"
"source": "https://github.com/spatie/flare-client-php/tree/1.4.2"
},
"funding": [
{
@ -4843,7 +4843,7 @@
"type": "github"
}
],
"time": "2023-06-28T11:08:09+00:00"
"time": "2023-07-28T08:07:24+00:00"
},
{
"name": "spatie/ignition",
@ -7949,16 +7949,16 @@
},
{
"name": "barryvdh/reflection-docblock",
"version": "v2.1.0",
"version": "v2.1.1",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/ReflectionDocBlock.git",
"reference": "bf44b757feb8ba1734659029357646466ded673e"
"reference": "e6811e927f0ecc37cc4deaa6627033150343e597"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/bf44b757feb8ba1734659029357646466ded673e",
"reference": "bf44b757feb8ba1734659029357646466ded673e",
"url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/e6811e927f0ecc37cc4deaa6627033150343e597",
"reference": "e6811e927f0ecc37cc4deaa6627033150343e597",
"shasum": ""
},
"require": {
@ -7995,9 +7995,9 @@
}
],
"support": {
"source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.0"
"source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.1"
},
"time": "2022-10-31T15:35:43+00:00"
"time": "2023-06-14T05:06:27+00:00"
},
{
"name": "beyondcode/laravel-dump-server",
@ -8066,22 +8066,22 @@
},
{
"name": "composer/class-map-generator",
"version": "1.0.0",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/composer/class-map-generator.git",
"reference": "1e1cb2b791facb2dfe32932a7718cf2571187513"
"reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/class-map-generator/zipball/1e1cb2b791facb2dfe32932a7718cf2571187513",
"reference": "1e1cb2b791facb2dfe32932a7718cf2571187513",
"url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9",
"reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9",
"shasum": ""
},
"require": {
"composer/pcre": "^2 || ^3",
"composer/pcre": "^2.1 || ^3.1",
"php": "^7.2 || ^8.0",
"symfony/finder": "^4.4 || ^5.3 || ^6"
"symfony/finder": "^4.4 || ^5.3 || ^6 || ^7"
},
"require-dev": {
"phpstan/phpstan": "^1.6",
@ -8119,7 +8119,7 @@
],
"support": {
"issues": "https://github.com/composer/class-map-generator/issues",
"source": "https://github.com/composer/class-map-generator/tree/1.0.0"
"source": "https://github.com/composer/class-map-generator/tree/1.1.0"
},
"funding": [
{
@ -8135,7 +8135,7 @@
"type": "tidelift"
}
],
"time": "2022-06-19T11:31:27+00:00"
"time": "2023-06-30T13:58:57+00:00"
},
{
"name": "composer/pcre",
@ -8487,16 +8487,16 @@
},
{
"name": "doctrine/dbal",
"version": "3.6.3",
"version": "3.6.5",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "9a747d29e7e6b39509b8f1847e37a23a0163ea6a"
"reference": "96d5a70fd91efdcec81fc46316efc5bf3da17ddf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/9a747d29e7e6b39509b8f1847e37a23a0163ea6a",
"reference": "9a747d29e7e6b39509b8f1847e37a23a0163ea6a",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/96d5a70fd91efdcec81fc46316efc5bf3da17ddf",
"reference": "96d5a70fd91efdcec81fc46316efc5bf3da17ddf",
"shasum": ""
},
"require": {
@ -8511,10 +8511,10 @@
"require-dev": {
"doctrine/coding-standard": "12.0.0",
"fig/log-test": "^1",
"jetbrains/phpstorm-stubs": "2022.3",
"phpstan/phpstan": "1.10.14",
"jetbrains/phpstorm-stubs": "2023.1",
"phpstan/phpstan": "1.10.21",
"phpstan/phpstan-strict-rules": "^1.5",
"phpunit/phpunit": "9.6.7",
"phpunit/phpunit": "9.6.9",
"psalm/plugin-phpunit": "0.18.4",
"squizlabs/php_codesniffer": "3.7.2",
"symfony/cache": "^5.4|^6.0",
@ -8579,7 +8579,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.6.3"
"source": "https://github.com/doctrine/dbal/tree/3.6.5"
},
"funding": [
{
@ -8595,7 +8595,7 @@
"type": "tidelift"
}
],
"time": "2023-06-01T05:46:46+00:00"
"time": "2023-07-17T09:15:50+00:00"
},
{
"name": "doctrine/deprecations",
@ -8967,16 +8967,16 @@
},
{
"name": "filp/whoops",
"version": "2.15.2",
"version": "2.15.3",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
"reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73"
"reference": "c83e88a30524f9360b11f585f71e6b17313b7187"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
"reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
"url": "https://api.github.com/repos/filp/whoops/zipball/c83e88a30524f9360b11f585f71e6b17313b7187",
"reference": "c83e88a30524f9360b11f585f71e6b17313b7187",
"shasum": ""
},
"require": {
@ -9026,7 +9026,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
"source": "https://github.com/filp/whoops/tree/2.15.2"
"source": "https://github.com/filp/whoops/tree/2.15.3"
},
"funding": [
{
@ -9034,7 +9034,7 @@
"type": "github"
}
],
"time": "2023-04-12T12:00:00+00:00"
"time": "2023-07-13T12:00:00+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@ -9743,6 +9743,142 @@
],
"time": "2023-07-18T22:59:43+00:00"
},
{
"name": "orchestra/testbench",
"version": "v8.5.11",
"source": {
"type": "git",
"url": "https://github.com/orchestral/testbench.git",
"reference": "ebf15be83cfb734760319a122216a6c4799a2c38"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/orchestral/testbench/zipball/ebf15be83cfb734760319a122216a6c4799a2c38",
"reference": "ebf15be83cfb734760319a122216a6c4799a2c38",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2.2",
"fakerphp/faker": "^1.21",
"laravel/framework": ">=10.14.0 <10.17.0",
"mockery/mockery": "^1.5.1",
"orchestra/testbench-core": ">=8.5.7 <8.6.0",
"php": "^8.1",
"phpunit/phpunit": "^9.6 || ^10.1",
"spatie/laravel-ray": "^1.32.4",
"symfony/process": "^6.2",
"symfony/yaml": "^6.2",
"vlucas/phpdotenv": "^5.4.1"
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mior Muhammad Zaki",
"email": "crynobone@gmail.com",
"homepage": "https://github.com/crynobone"
}
],
"description": "Laravel Testing Helper for Packages Development",
"homepage": "https://packages.tools/testbench/",
"keywords": [
"BDD",
"TDD",
"dev",
"laravel",
"laravel-packages",
"testing"
],
"support": {
"issues": "https://github.com/orchestral/testbench/issues",
"source": "https://github.com/orchestral/testbench/tree/v8.5.11"
},
"time": "2023-07-25T11:54:53+00:00"
},
{
"name": "orchestra/testbench-core",
"version": "v8.5.9",
"source": {
"type": "git",
"url": "https://github.com/orchestral/testbench-core.git",
"reference": "03049a27967ab80972a7c0c0a5be87e421b27ff4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/orchestral/testbench-core/zipball/03049a27967ab80972a7c0c0a5be87e421b27ff4",
"reference": "03049a27967ab80972a7c0c0a5be87e421b27ff4",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2.2",
"php": "^8.1"
},
"require-dev": {
"fakerphp/faker": "^1.21",
"laravel/framework": "^10.13.5",
"laravel/pint": "^1.6",
"mockery/mockery": "^1.5.1",
"phpstan/phpstan": "^1.10.7",
"phpunit/phpunit": "^10.1",
"spatie/laravel-ray": "^1.32.4",
"symfony/process": "^6.2",
"symfony/yaml": "^6.2",
"vlucas/phpdotenv": "^5.4.1"
},
"suggest": {
"brianium/paratest": "Allow using parallel tresting (^6.4 || ^7.1.4).",
"fakerphp/faker": "Allow using Faker for testing (^1.21).",
"laravel/framework": "Required for testing (^10.13.5).",
"mockery/mockery": "Allow using Mockery for testing (^1.5.1).",
"nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^6.4 || ^7.4).",
"orchestra/testbench-browser-kit": "Allow using legacy Laravel BrowserKit for testing (^8.0).",
"orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^8.0).",
"phpunit/phpunit": "Allow using PHPUnit for testing (^9.6 || ^10.1).",
"symfony/yaml": "Required for CLI Commander (^6.2).",
"vlucas/phpdotenv": "Required for CLI Commander (^5.4.1)."
},
"bin": [
"testbench"
],
"type": "library",
"autoload": {
"files": [
"src/helpers.php"
],
"psr-4": {
"Orchestra\\Testbench\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mior Muhammad Zaki",
"email": "crynobone@gmail.com",
"homepage": "https://github.com/crynobone"
}
],
"description": "Testing Helper for Laravel Development",
"homepage": "https://packages.tools/testbench",
"keywords": [
"BDD",
"TDD",
"dev",
"laravel",
"laravel-packages",
"testing"
],
"support": {
"issues": "https://github.com/orchestral/testbench/issues",
"source": "https://github.com/orchestral/testbench-core"
},
"time": "2023-07-12T00:16:23+00:00"
},
{
"name": "phar-io/manifest",
"version": "2.0.3",
@ -10224,16 +10360,16 @@
},
{
"name": "phpstan/phpdoc-parser",
"version": "1.22.0",
"version": "1.23.0",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
"reference": "ec58baf7b3c7f1c81b3b00617c953249fb8cf30c"
"reference": "a2b24135c35852b348894320d47b3902a94bc494"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/ec58baf7b3c7f1c81b3b00617c953249fb8cf30c",
"reference": "ec58baf7b3c7f1c81b3b00617c953249fb8cf30c",
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a2b24135c35852b348894320d47b3902a94bc494",
"reference": "a2b24135c35852b348894320d47b3902a94bc494",
"shasum": ""
},
"require": {
@ -10265,9 +10401,9 @@
"description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.22.0"
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.23.0"
},
"time": "2023-06-01T12:35:21+00:00"
"time": "2023-07-23T22:17:56+00:00"
},
{
"name": "phpunit/php-code-coverage",
@ -10743,6 +10879,79 @@
},
"time": "2021-10-28T11:13:42+00:00"
},
{
"name": "psalm/plugin-laravel",
"version": "v2.8.0",
"source": {
"type": "git",
"url": "https://github.com/psalm/psalm-plugin-laravel.git",
"reference": "0b42a51f977d216e0b5d649f68346e2f324f4a55"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/psalm/psalm-plugin-laravel/zipball/0b42a51f977d216e0b5d649f68346e2f324f4a55",
"reference": "0b42a51f977d216e0b5d649f68346e2f324f4a55",
"shasum": ""
},
"require": {
"barryvdh/laravel-ide-helper": "^2.13",
"ext-simplexml": "*",
"illuminate/config": "^9.48 || ^10.0",
"illuminate/container": "^9.48 || ^10.0",
"illuminate/contracts": "^9.48 || ^10.0",
"illuminate/database": "^9.48 || ^10.0",
"illuminate/events": "^9.48 || ^10.0",
"illuminate/http": "^9.48 || ^10.0",
"illuminate/routing": "^9.48 || ^10.0",
"illuminate/support": "^9.48 || ^10.0",
"illuminate/view": "^9.48 || ^10.0",
"nikic/php-parser": "^4.13",
"orchestra/testbench": "^7.19 || ^8.0",
"php": "^8.0.2",
"symfony/console": "^6.0",
"vimeo/psalm": "^4.30 || ^5.1"
},
"require-dev": {
"codeception/codeception": "^5.0",
"codeception/module-asserts": "^3.0",
"codeception/module-cli": "^2.0",
"codeception/module-filesystem": "^3.0",
"codeception/module-phpbrowser": "^3.0",
"phpunit/phpunit": "^9.6 || ^10.0",
"ramsey/collection": "^1.3",
"slevomat/coding-standard": "^8.8",
"squizlabs/php_codesniffer": "*",
"symfony/http-foundation": "^6.0"
},
"type": "psalm-plugin",
"extra": {
"psalm": {
"pluginClass": "Psalm\\LaravelPlugin\\Plugin"
}
},
"autoload": {
"psr-4": {
"Psalm\\LaravelPlugin\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Matthew Brown",
"email": "github@muglug.com"
}
],
"description": "A Laravel plugin for Psalm",
"homepage": "https://github.com/psalm/psalm-plugin-laravel",
"support": {
"issues": "https://github.com/psalm/psalm-plugin-laravel/issues",
"source": "https://github.com/psalm/psalm-plugin-laravel/tree/v2.8.0"
},
"time": "2023-02-26T18:23:48+00:00"
},
{
"name": "psr/cache",
"version": "3.0.0",
@ -11705,16 +11914,16 @@
},
{
"name": "spatie/array-to-xml",
"version": "3.1.6",
"version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/array-to-xml.git",
"reference": "e210b98957987c755372465be105d32113f339a4"
"reference": "f9ab39c808500c347d5a8b6b13310bd5221e39e7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/array-to-xml/zipball/e210b98957987c755372465be105d32113f339a4",
"reference": "e210b98957987c755372465be105d32113f339a4",
"url": "https://api.github.com/repos/spatie/array-to-xml/zipball/f9ab39c808500c347d5a8b6b13310bd5221e39e7",
"reference": "f9ab39c808500c347d5a8b6b13310bd5221e39e7",
"shasum": ""
},
"require": {
@ -11752,7 +11961,7 @@
"xml"
],
"support": {
"source": "https://github.com/spatie/array-to-xml/tree/3.1.6"
"source": "https://github.com/spatie/array-to-xml/tree/3.2.0"
},
"funding": [
{
@ -11764,7 +11973,7 @@
"type": "github"
}
],
"time": "2023-05-11T14:04:07+00:00"
"time": "2023-07-19T18:30:26+00:00"
},
{
"name": "spatie/laravel-ray",
@ -12628,7 +12837,7 @@
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": "^8.1",
"php": "^8.2",
"ext-dom": "*",
"ext-intl": "*",
"ext-json": "*"

View file

@ -7,6 +7,8 @@ use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Article>
*/
class ArticleFactory extends Factory

View file

@ -5,6 +5,8 @@ namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Bio>
*/
class BioFactory extends Factory

View file

@ -7,6 +7,8 @@ use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Bookmark>
*/
class BookmarkFactory extends Factory

View file

@ -7,6 +7,8 @@ use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Contact>
*/
class ContactFactory extends Factory

View file

@ -7,6 +7,8 @@ use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Like>
*/
class LikeFactory extends Factory

View file

@ -7,6 +7,8 @@ use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Media>
*/
class MediaFactory extends Factory

View file

@ -6,6 +6,8 @@ use App\Models\MicropubClient;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\MicropubClient>
*/
class MicropubClientFactory extends Factory

View file

@ -8,6 +8,8 @@ use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Carbon;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Note>
*/
class NoteFactory extends Factory

View file

@ -6,6 +6,8 @@ use App\Models\Place;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Place>
*/
class PlaceFactory extends Factory

View file

@ -5,6 +5,8 @@ namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\SyndicationTarget>
*/
class SyndicationTargetFactory extends Factory

View file

@ -6,6 +6,8 @@ use App\Models\Tag;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Tag>
*/
class TagFactory extends Factory

View file

@ -7,6 +7,8 @@ use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User>
*/
class UserFactory extends Factory

View file

@ -6,6 +6,8 @@ use App\Models\WebMention;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @psalm-suppress UnusedClass
*
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\WebMention>
*/
class WebMentionFactory extends Factory

View file

@ -11,6 +11,8 @@ class ArticlesTableSeeder extends Seeder
{
/**
* Seed the articles table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -5,6 +5,9 @@ namespace Database\Seeders;
use App\Models\Bio;
use Illuminate\Database\Seeder;
/**
* @psalm-suppress UnusedClass
*/
class BioSeeder extends Seeder
{
/**

View file

@ -10,6 +10,8 @@ class BookmarksTableSeeder extends Seeder
{
/**
* Seed the bookmarks table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -11,6 +11,8 @@ class ClientsTableSeeder extends Seeder
{
/**
* Seed the clients table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -10,6 +10,8 @@ class ContactsTableSeeder extends Seeder
{
/**
* Seed the contacts table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -4,6 +4,9 @@ namespace Database\Seeders;
use Illuminate\Database\Seeder;
/**
* @psalm-suppress UnusedClass
*/
class DatabaseSeeder extends Seeder
{
/**

View file

@ -12,6 +12,8 @@ class LikesTableSeeder extends Seeder
{
/**
* Seed the likes table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -14,6 +14,8 @@ class NotesTableSeeder extends Seeder
{
/**
* Seed the notes table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -9,6 +9,8 @@ class PlacesTableSeeder extends Seeder
{
/**
* Seed the places table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -9,6 +9,8 @@ class UsersTableSeeder extends Seeder
{
/**
* Seed the users table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -9,6 +9,8 @@ class WebMentionsTableSeeder extends Seeder
{
/**
* Seed the webmentions table.
*
* @psalm-suppress PossiblyUnusedMethod
*/
public function run(): void
{

View file

@ -1,23 +1,18 @@
<?xml version="1.0"?>
<psalm
errorLevel="7"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
findUnusedBaselineEntry="true"
findUnusedCode="true"
>
<projectFiles>
<directory name="app" />
<directory name="app"/>
<directory name="database/factories"/>
<directory name="database/seeders"/>
<ignoreFiles>
<directory name="vendor" />
<directory name="vendor"/>
</ignoreFiles>
</projectFiles>
<issueHandlers>
<InvalidStaticInvocation>
<errorLevel type="suppress">
<file name="app/Providers/RouteServiceProvider.php" />
</errorLevel>
</InvalidStaticInvocation>
</issueHandlers>
</psalm>
<plugins><pluginClass class="Psalm\LaravelPlugin\Plugin"/></plugins></psalm>