Browse Source

Complete phpDocs type-hints

Bubka 2 years ago
parent
commit
d84dd6659e

+ 1 - 1
app/Api/v1/Controllers/SettingController.php

@@ -18,7 +18,7 @@ class SettingController extends Controller
     public function index()
     {
         $settings = Settings::all();
-        $settingsResources = collect();
+        $settingsResources = collect([]);
         $settings->each(function (mixed $item, string $key) use ($settingsResources) {
             $settingsResources->push([
                 'key' => $key,

+ 3 - 2
app/Api/v1/Resources/TwoFAccountCollection.php

@@ -3,6 +3,7 @@
 namespace App\Api\v1\Resources;
 
 use Illuminate\Http\Resources\Json\ResourceCollection;
+use App\Api\v1\Resources\TwoFAccountReadResource;
 
 class TwoFAccountCollection extends ResourceCollection
 {
@@ -11,14 +12,14 @@ class TwoFAccountCollection extends ResourceCollection
      *
      * @var string
      */
-    public $collects = 'App\Api\v1\Resources\TwoFAccountReadResource';
+    public $collects = TwoFAccountReadResource::class;
 
 
     /**
      * Transform the resource collection into an array.
      *
      * @param  \Illuminate\Http\Request  $request
-     * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
+     * @return \Illuminate\Support\Collection<int|string, TwoFAccountReadResource>
      */
     public function toArray($request)
     {

+ 1 - 1
app/Http/Controllers/SinglePageController.php

@@ -27,7 +27,7 @@ class SinglePageController extends Controller
             'lang' => App::currentLocale(),
             'isDemoApp' => config("2fauth.config.isDemoApp") ? 'true' : 'false',
             'isTestingApp' => config("2fauth.config.isTestingApp") ? 'true' : 'false',
-            'locales' => collect(config("2fauth.locales"))->toJson()
+            'locales' => collect(config("2fauth.locales"))->toJson() /** @phpstan-ignore-line */
         ]);
     }
 }

+ 1 - 1
app/Models/Group.php

@@ -79,7 +79,7 @@ class Group extends Model
     /**
      * Get the TwoFAccounts of the group.
      * 
-     * @return \Illuminate\Database\Eloquent\Relations\HasMany
+     * @return \Illuminate\Database\Eloquent\Relations\HasMany<TwoFAccount>
      */
     public function twofaccounts()
     {

+ 2 - 2
app/Services/GroupService.php

@@ -14,7 +14,7 @@ class GroupService
     /**
      * Returns all existing groups
      * 
-     * @return Collection
+     * @return Collection<int, Group>
      */
     public static function getAll() : Collection
     {
@@ -147,7 +147,7 @@ class GroupService
      * Finds twofaccounts assigned to the group
      * 
      * @param \App\Models\Group $group The group
-     * @return Collection The assigned accounts
+     * @return Collection<int, TwoFAccount> The assigned accounts
      */
     public static function getAccounts(Group $group) : Collection
     {

+ 5 - 4
app/Services/LogoService.php

@@ -2,6 +2,7 @@
 
 namespace App\Services;
 
+use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\Http;
 use Illuminate\Support\Facades\Storage;
 use Illuminate\Support\Facades\Log;
@@ -10,7 +11,7 @@ use Illuminate\Support\Str;
 class LogoService
 {
     /**
-     * @var \Illuminate\Support\Collection
+     * @var \Illuminate\Support\Collection<string, string>
      */
     protected $tfas;
 
@@ -85,8 +86,8 @@ class LogoService
         }
 
         $this->tfas = Storage::disk('logos')->exists(self::TFA_JSON)
-            ? collect(json_decode(Storage::disk('logos')->get(self::TFA_JSON)))
-            : collect();
+            ? new Collection(json_decode(Storage::disk('logos')->get(self::TFA_JSON)))
+            : collect([]);
     }
 
 
@@ -100,7 +101,7 @@ class LogoService
         try {
             $response = Http::retry(3, 100)->get(self::TFA_URL);
 
-            $coll = collect(json_decode(htmlspecialchars_decode($response->body()), true))
+            $coll = collect(json_decode(htmlspecialchars_decode($response->body()), true)) /** @phpstan-ignore-line */
                     ->mapWithKeys(function ($item, $key) {
                         return [
                             strtolower(head($item)) => $item[1]["domain"]

+ 1 - 1
app/Services/Migrators/AegisMigrator.php

@@ -38,7 +38,7 @@ class AegisMigrator extends Migrator
      * Convert migration data to a TwoFAccounts collection.
      *
      * @param  mixed  $migrationPayload
-     * @return \Illuminate\Support\Collection The converted accounts
+     * @return \Illuminate\Support\Collection<int|string, \App\Models\TwoFAccount> The converted accounts
      */
     public function migrate(mixed $migrationPayload) : Collection
     {

+ 2 - 3
app/Services/Migrators/GoogleAuthMigrator.php

@@ -21,10 +21,9 @@ class GoogleAuthMigrator extends Migrator
 
     /**
      * Convert Google Authenticator migration URI to a set of TwoFAccount objects.
-     *
-     * @param  mixed  $migrationPayload migration uri provided by Google Authenticator export feature
      * 
-     * @return \Illuminate\Support\Collection The converted accounts
+     * @param  mixed  $migrationPayload migration uri provided by Google Authenticator export feature
+     * @return \Illuminate\Support\Collection<int|string, \App\Models\TwoFAccount> The converted accounts
      */
     public function migrate(mixed $migrationPayload) : Collection
     {

+ 1 - 1
app/Services/Migrators/Migrator.php

@@ -10,7 +10,7 @@ abstract class Migrator
      * Convert migration data to a 2FAccounts collection.
      *
      * @param  mixed  $migrationPayload
-     * @return \Illuminate\Support\Collection The converted accounts
+     * @return \Illuminate\Support\Collection<int|string, \App\Models\TwoFAccount> The converted accounts
      */
     abstract public function migrate(mixed $migrationPayload) : Collection;
 

+ 1 - 1
app/Services/Migrators/PlainTextMigrator.php

@@ -17,7 +17,7 @@ class PlainTextMigrator extends Migrator
      * Convert migration data to a TwoFAccounts collection.
      *
      * @param  mixed  $migrationPayload
-     * @return \Illuminate\Support\Collection The converted accounts
+     * @return \Illuminate\Support\Collection<int|string, \App\Models\TwoFAccount> The converted accounts
      */
     public function migrate(mixed $migrationPayload) : Collection
     {

+ 1 - 1
app/Services/Migrators/TwoFASMigrator.php

@@ -70,7 +70,7 @@ class TwoFASMigrator extends Migrator
      * Convert migration data to a TwoFAccounts collection.
      *
      * @param  mixed  $migrationPayload
-     * @return \Illuminate\Support\Collection The converted accounts
+     * @return \Illuminate\Support\Collection<int|string, \App\Models\TwoFAccount> The converted accounts
      */
     public function migrate(mixed $migrationPayload) : Collection
     {

+ 3 - 3
app/Services/SettingService.php

@@ -19,7 +19,7 @@ class SettingService
     /**
      * All user settings
      * 
-     * @var Collection
+     * @var Collection<string, mixed>
      */
     private Collection $settings;
 
@@ -48,7 +48,7 @@ class SettingService
     /**
      * Get all settings
      * 
-     * @return Collection the Settings collection
+     * @return Collection<string, mixed> the Settings collection
      */
     public function all() : Collection
     {
@@ -122,7 +122,7 @@ class SettingService
         });
 
         // Merge 2fauth/app config values as fallback values
-        $settings = collect(config('2fauth.options'))->merge($userOptions);
+        $settings = collect(config('2fauth.options'))->merge($userOptions); /** @phpstan-ignore-line */
         
         if(!Arr::has($settings, 'lang')) {
             $settings['lang'] = 'browser';

+ 3 - 3
app/Services/TwoFAccountService.php

@@ -51,7 +51,7 @@ class TwoFAccountService
      * Convert a migration payload to a set of TwoFAccount objects
      * 
      * @param string $migrationPayload Migration payload from 2FA apps export feature
-     * @return \Illuminate\Support\Collection The converted accounts
+     * @return \Illuminate\Support\Collection<int|string, TwoFAccount> The converted accounts
      */
     public function migrate(string $migrationPayload) : Collection
     {
@@ -83,8 +83,8 @@ class TwoFAccountService
     /**
      * Return the given collection with items marked as Duplicates (using id=-1) if a similar record exists in database
      * 
-     * @param \Illuminate\Support\Collection $twofaccounts
-     * @return \Illuminate\Support\Collection
+     * @param \Illuminate\Support\Collection<int|string, TwoFAccount> $twofaccounts
+     * @return \Illuminate\Support\Collection<int|string, TwoFAccount>
      */
     private static function markAsDuplicate(Collection $twofaccounts) : Collection
     {

+ 3 - 1
database/factories/GroupFactory.php

@@ -3,8 +3,10 @@
 namespace Database\Factories;
 
 use Illuminate\Database\Eloquent\Factories\Factory;
-use Illuminate\Support\Str;
 
+/**
+ * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Group>
+ */
 class GroupFactory extends Factory
 {
     /**

+ 3 - 1
database/factories/TwoFAccountFactory.php

@@ -4,8 +4,10 @@ namespace Database\Factories;
 
 use ParagonIE\ConstantTime\Base32;
 use Illuminate\Database\Eloquent\Factories\Factory;
-use Illuminate\Support\Str;
 
+/**
+ * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\TwoFAccount>
+ */
 class TwoFAccountFactory extends Factory
 {
     /**

+ 4 - 1
database/factories/UserFactory.php

@@ -5,6 +5,9 @@ namespace Database\Factories;
 use Illuminate\Database\Eloquent\Factories\Factory;
 use Illuminate\Support\Str;
 
+/**
+ * @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User>
+ */
 class UserFactory extends Factory
 {
 
@@ -29,7 +32,7 @@ class UserFactory extends Factory
     /**
      * Indicate that the model's email address should be unverified.
      *
-     * @return \Illuminate\Database\Eloquent\Factories\Factory
+     * @return \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\User>
      */
     public function unverified()
     {