From f0f0d0003df58e0f3c4b769013ff3d79beae77fc Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Wed, 13 Mar 2024 20:23:33 +0200 Subject: [PATCH 01/16] Import volunteers from excel --- .../Pages/ListVolunteers.php | 107 ++ composer.json | 3 +- composer.lock | 1536 +++++++++-------- lang/ro/volunteer.php | 1 + 4 files changed, 883 insertions(+), 764 deletions(-) diff --git a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php index 7c582df..cf38f91 100644 --- a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php +++ b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php @@ -4,10 +4,18 @@ namespace App\Filament\Resources\VolunteerResource\Pages; +use App\Enum\VolunteerRole; +use App\Enum\VolunteerSpecialization; use App\Filament\Resources\VolunteerResource; +use App\Models\City; +use App\Models\County; +use App\Models\Organisation; +use App\Models\Volunteer; use Filament\Pages\Actions; use Filament\Resources\Pages\ListRecords; use Illuminate\Database\Eloquent\Builder; +use Konnco\FilamentImport\Actions\ImportAction; +use Konnco\FilamentImport\Actions\ImportField; class ListVolunteers extends ListRecords { @@ -17,6 +25,105 @@ protected function getActions(): array { return [ Actions\CreateAction::make(), + ImportAction::make() + ->fields([ + ImportField::make('organisation_name') + ->label(__('volunteer.field.organisation')) + ->required(), + ImportField::make('first_name') + ->label(__('volunteer.field.first_name')) + ->required(), + ImportField::make('last_name') + ->label(__('volunteer.field.last_name')) + ->required(), + ImportField::make('email') + ->label(__('volunteer.field.email')) + ->required(), + ImportField::make('phone') + ->label(__('volunteer.field.phone')), + ImportField::make('cnp') + ->label(__('volunteer.field.cnp')), + ImportField::make('role') + ->label(__('volunteer.field.role')) + ->required(), + ImportField::make('specializations') + ->label(__('volunteer.field.specializations')) + ->required(), + ImportField::make('has_first_aid_accreditation') + ->label(__('volunteer.field.has_first_aid_accreditation')), + ImportField::make('county') + ->label(__('general.county')), + ImportField::make('city') + ->label(__('general.city')), + ]) + ->handleRecordCreation(function (array $data) { + if (! isset($data['organisation_name']) || + ! isset($data['first_name']) || + ! isset($data['last_name']) || + ! isset($data['email']) || + ! isset($data['role']) || + ! isset($data['specializations'])) { + return new Volunteer(); + } + + $organisation = Organisation::query() + ->where('name', 'like', $data['organisation_name']) + ->first(); + + if (! $organisation) { + return new Volunteer(); + } + + $roles = VolunteerRole::options(); + $role = array_search($data['role'], $roles); + + $specializations = explode(',', $data['specializations']); + $allSpecializations = VolunteerSpecialization::options(); + $newSpecializations = []; + foreach ($specializations as $specialization) { + $newSpecializations[] = array_search(trim($specialization), $allSpecializations); + } + + $firstAID = false; + if (isset($data['has_first_aid_accreditation'])) { + $firstAID = (bool) $data['has_first_aid_accreditation']; + } + + $fields = ['organisation_id' => $organisation->id, + 'first_name' => $data['first_name'], + 'last_name' => $data['last_name'], + 'email' => $data['email'], + 'phone' => $data['phone'] ?? null, + 'cnp' => $data['cnp'] ?? null, + 'role' => $role, + 'specializations' => $newSpecializations, + 'has_first_aid_accreditation' => $firstAID, + ]; + + if (isset($data['county'])) { + $county = County::query() + ->where('name', 'like', $data['county']) + ->first(); + + if ($county) { + $fields['county_id'] = $county->id; + + if ($data['city']) { + $city = City::query() + ->search($data['city']) + ->where('county_id', $county->id) + ->first(); + + if ($city) { + $fields['city_id'] = $city->id; + } + } + } + } + + return Volunteer::create($fields); + }) + ->label(__('volunteer.field.import')), ]; } diff --git a/composer.json b/composer.json index c4df8f1..8755012 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,8 @@ "laravel/tinker": "^2.8", "league/flysystem-aws-s3-v3": "^3.21", "pxlrbt/filament-excel": "^1.1", - "sentry/sentry-laravel": "^4.1" + "sentry/sentry-laravel": "^4.1", + "konnco/filament-import": "1.6.0" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.9", diff --git a/composer.lock b/composer.lock index b3f69af..2687758 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": "79a19b0d407e1357a655d548caaa5847", + "content-hash": "972d6927b55ad0cb697cec8b424cf54b", "packages": [ { "name": "akaunting/laravel-money", @@ -132,28 +132,29 @@ }, { "name": "anourvalar/eloquent-serialize", - "version": "1.2.16", + "version": "1.2.20", "source": { "type": "git", "url": "https://github.com/AnourValar/eloquent-serialize.git", - "reference": "d929c743e70e7ce6eb8a18781c54dc6b00130c8f" + "reference": "f8408e92768ff295990e3a1edb7e47950e008c63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/d929c743e70e7ce6eb8a18781c54dc6b00130c8f", - "reference": "d929c743e70e7ce6eb8a18781c54dc6b00130c8f", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/f8408e92768ff295990e3a1edb7e47950e008c63", + "reference": "f8408e92768ff295990e3a1edb7e47950e008c63", "shasum": "" }, "require": { - "laravel/framework": "^6.0|^7.0|^8.0|^9.0|^10.0", - "php": "^7.1|^8.0" + "laravel/framework": "^8.0|^9.0|^10.0|^11.0", + "php": "^7.4|^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.26", "laravel/legacy-factories": "^1.1", - "orchestra/testbench": "~3.6.0|~3.7.0|~3.8.0|^4.0|^5.0|^6.0|^7.0|^8.0", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^9.5|^10.5", + "psalm/plugin-laravel": "^2.8", "squizlabs/php_codesniffer": "^3.7" }, "type": "library", @@ -191,22 +192,22 @@ ], "support": { "issues": "https://github.com/AnourValar/eloquent-serialize/issues", - "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.16" + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.20" }, - "time": "2023-09-16T15:09:21+00:00" + "time": "2024-03-08T14:48:54+00:00" }, { "name": "aws/aws-crt-php", - "version": "v1.2.3", + "version": "v1.2.4", "source": { "type": "git", "url": "https://github.com/awslabs/aws-crt-php.git", - "reference": "5545a4fa310aec39f54279fdacebcce33b3ff382" + "reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/5545a4fa310aec39f54279fdacebcce33b3ff382", - "reference": "5545a4fa310aec39f54279fdacebcce33b3ff382", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/eb0c6e4e142224a10b08f49ebf87f32611d162b2", + "reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2", "shasum": "" }, "require": { @@ -245,22 +246,22 @@ ], "support": { "issues": "https://github.com/awslabs/aws-crt-php/issues", - "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.3" + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.4" }, - "time": "2023-10-16T20:10:06+00:00" + "time": "2023-11-08T00:42:13+00:00" }, { "name": "aws/aws-sdk-php", - "version": "3.288.1", + "version": "3.300.16", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "a1dfa12c7165de0b731ae8074c4ba1f3ae733f89" + "reference": "d6afaeaa0c0e2c3be5f5223f72c0b5e2b2667b67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a1dfa12c7165de0b731ae8074c4ba1f3ae733f89", - "reference": "a1dfa12c7165de0b731ae8074c4ba1f3ae733f89", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d6afaeaa0c0e2c3be5f5223f72c0b5e2b2667b67", + "reference": "d6afaeaa0c0e2c3be5f5223f72c0b5e2b2667b67", "shasum": "" }, "require": { @@ -340,9 +341,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.288.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.300.16" }, - "time": "2023-11-22T19:35:38+00:00" + "time": "2024-03-12T18:04:55+00:00" }, { "name": "bacon/bacon-qr-code", @@ -469,31 +470,31 @@ }, { "name": "blade-ui-kit/blade-icons", - "version": "1.5.3", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/blade-ui-kit/blade-icons.git", - "reference": "b5e6603218e2347ac81cb780bc6f71c8c3b31f5b" + "reference": "89660d93f9897d231e9113ba203cd17f4c5efade" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/b5e6603218e2347ac81cb780bc6f71c8c3b31f5b", - "reference": "b5e6603218e2347ac81cb780bc6f71c8c3b31f5b", + "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/89660d93f9897d231e9113ba203cd17f4c5efade", + "reference": "89660d93f9897d231e9113ba203cd17f4c5efade", "shasum": "" }, "require": { - "illuminate/contracts": "^8.0|^9.0|^10.0", - "illuminate/filesystem": "^8.0|^9.0|^10.0", - "illuminate/support": "^8.0|^9.0|^10.0", - "illuminate/view": "^8.0|^9.0|^10.0", + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "illuminate/view": "^8.0|^9.0|^10.0|^11.0", "php": "^7.4|^8.0", - "symfony/console": "^5.3|^6.0", - "symfony/finder": "^5.3|^6.0" + "symfony/console": "^5.3|^6.0|^7.0", + "symfony/finder": "^5.3|^6.0|^7.0" }, "require-dev": { - "mockery/mockery": "^1.3", - "orchestra/testbench": "^6.0|^7.0|^8.0", - "phpunit/phpunit": "^9.0" + "mockery/mockery": "^1.5.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" }, "bin": [ "bin/blade-icons-generate" @@ -546,7 +547,7 @@ "type": "paypal" } ], - "time": "2023-10-18T10:50:13+00:00" + "time": "2024-02-07T16:09:20+00:00" }, { "name": "brick/math", @@ -806,26 +807,26 @@ }, { "name": "danharrin/livewire-rate-limiting", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/danharrin/livewire-rate-limiting.git", - "reference": "bc2cc0a0b5b517fdc5bba8671013dd71081f70a8" + "reference": "bf16003f0d977b5a41071526d697eec94ac41735" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/bc2cc0a0b5b517fdc5bba8671013dd71081f70a8", - "reference": "bc2cc0a0b5b517fdc5bba8671013dd71081f70a8", + "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/bf16003f0d977b5a41071526d697eec94ac41735", + "reference": "bf16003f0d977b5a41071526d697eec94ac41735", "shasum": "" }, "require": { - "illuminate/support": "^9.0|^10.0", + "illuminate/support": "^9.0|^10.0|^11.0", "php": "^8.0" }, "require-dev": { "livewire/livewire": "^3.0", "livewire/volt": "^1.3", - "orchestra/testbench": "^7.0|^8.0", + "orchestra/testbench": "^7.0|^8.0|^9.0", "phpunit/phpunit": "^9.0|^10.0" }, "type": "library", @@ -856,7 +857,7 @@ "type": "github" } ], - "time": "2023-10-27T15:01:19+00:00" + "time": "2024-01-21T14:53:34+00:00" }, { "name": "dasprid/enum", @@ -910,16 +911,16 @@ }, { "name": "dedoc/scramble", - "version": "v0.8.5", + "version": "v0.8.6", "source": { "type": "git", "url": "https://github.com/dedoc/scramble.git", - "reference": "cc61cc79843c6e2206dc5d0f15ae705494de8249" + "reference": "f0331d5cde68cf14ce6287006ae536e5b9ed6df2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dedoc/scramble/zipball/cc61cc79843c6e2206dc5d0f15ae705494de8249", - "reference": "cc61cc79843c6e2206dc5d0f15ae705494de8249", + "url": "https://api.github.com/repos/dedoc/scramble/zipball/f0331d5cde68cf14ce6287006ae536e5b9ed6df2", + "reference": "f0331d5cde68cf14ce6287006ae536e5b9ed6df2", "shasum": "" }, "require": { @@ -973,7 +974,7 @@ ], "support": { "issues": "https://github.com/dedoc/scramble/issues", - "source": "https://github.com/dedoc/scramble/tree/v0.8.5" + "source": "https://github.com/dedoc/scramble/tree/v0.8.6" }, "funding": [ { @@ -981,7 +982,7 @@ "type": "github" } ], - "time": "2023-12-02T09:58:18+00:00" + "time": "2024-03-03T18:32:22+00:00" }, { "name": "dflydev/dot-access-data", @@ -1060,16 +1061,16 @@ }, { "name": "doctrine/inflector", - "version": "2.0.8", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", "shasum": "" }, "require": { @@ -1131,7 +1132,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.8" + "source": "https://github.com/doctrine/inflector/tree/2.0.10" }, "funding": [ { @@ -1147,31 +1148,31 @@ "type": "tidelift" } ], - "time": "2023-06-16T13:40:37+00:00" + "time": "2024-02-18T20:23:39+00:00" }, { "name": "doctrine/lexer", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "84a527db05647743d50373e0ec53a152f2cde568" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568", - "reference": "84a527db05647743d50373e0ec53a152f2cde568", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^9.5", + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.0" + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { @@ -1208,7 +1209,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.0" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -1224,7 +1225,7 @@ "type": "tidelift" } ], - "time": "2022-12-15T16:57:16+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1867,16 +1868,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9" + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { @@ -1891,11 +1892,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -1973,7 +1974,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { @@ -1989,7 +1990,7 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:20:53+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { "name": "guzzlehttp/promises", @@ -2362,16 +2363,16 @@ }, { "name": "jean85/pretty-package-versions", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af" + "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af", - "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4", + "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4", "shasum": "" }, "require": { @@ -2379,9 +2380,9 @@ "php": "^7.1|^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.17", + "friendsofphp/php-cs-fixer": "^3.2", "jean85/composer-provided-replaced-stub-package": "^1.0", - "phpstan/phpstan": "^0.12.66", + "phpstan/phpstan": "^1.4", "phpunit/phpunit": "^7.5|^8.5|^9.4", "vimeo/psalm": "^4.3" }, @@ -2415,22 +2416,22 @@ ], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5" + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6" }, - "time": "2021-10-08T21:21:46+00:00" + "time": "2024-03-08T09:58:59+00:00" }, { "name": "jeffgreco13/filament-breezy", - "version": "v1.5.9", + "version": "v1.5.10", "source": { "type": "git", "url": "https://github.com/jeffgreco13/filament-breezy.git", - "reference": "20a853f55b5170a65ee1a61682141a7918ee594c" + "reference": "843d39731738c2073237025d607b041c82ba6196" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jeffgreco13/filament-breezy/zipball/20a853f55b5170a65ee1a61682141a7918ee594c", - "reference": "20a853f55b5170a65ee1a61682141a7918ee594c", + "url": "https://api.github.com/repos/jeffgreco13/filament-breezy/zipball/843d39731738c2073237025d607b041c82ba6196", + "reference": "843d39731738c2073237025d607b041c82ba6196", "shasum": "" }, "require": { @@ -2489,32 +2490,96 @@ ], "support": { "issues": "https://github.com/jeffgreco13/filament-breezy/issues", - "source": "https://github.com/jeffgreco13/filament-breezy/tree/v1.5.9" + "source": "https://github.com/jeffgreco13/filament-breezy/tree/v1.5.10" }, - "funding": [ + "time": "2024-01-31T15:40:42+00:00" + }, + { + "name": "konnco/filament-import", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/konnco/filament-import.git", + "reference": "00c5f09be296f039cc4090a1e546637b48a4b43a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/konnco/filament-import/zipball/00c5f09be296f039cc4090a1e546637b48a4b43a", + "reference": "00c5f09be296f039cc4090a1e546637b48a4b43a", + "shasum": "" + }, + "require": { + "filament/filament": "^2.0", + "filament/notifications": "^2.0", + "illuminate/contracts": "^9.0|^10.0", + "illuminate/support": "^9.0|^10.0", + "maatwebsite/excel": "^3.1", + "php": "^8.0", + "psr/simple-cache": "^2.0|^3.0", + "spatie/laravel-package-tools": "^1.14" + }, + "require-dev": { + "laravel/pint": "^1.0", + "nunomaduro/collision": "^6.0|^7.0", + "nunomaduro/larastan": "^2.0", + "orchestra/testbench": "^7.0", + "pestphp/pest": "^1.21", + "pestphp/pest-plugin-laravel": "^1.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5|^10.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Konnco\\FilamentImport\\FilamentImportServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Konnco\\FilamentImport\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ { - "url": "https://github.com/jeffgreco13", - "type": "github" + "name": "Franky So", + "email": "frankyso.mail@gmail.com" } ], - "time": "2023-07-22T16:01:05+00:00" + "keywords": [ + "filament-import", + "import", + "laravel" + ], + "support": { + "issues": "https://github.com/konnco/filament-import/issues", + "source": "https://github.com/konnco/filament-import/tree/1.6.0" + }, + "time": "2023-06-18T04:00:35+00:00" }, { "name": "laravel/framework", - "version": "v10.40.0", + "version": "v10.48.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "7a9470071dac9579ebf29ad1b9d73e4b8eb586fc" + "reference": "32a8bb151d748b579c3794dea53b56bd40dfbbd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/7a9470071dac9579ebf29ad1b9d73e4b8eb586fc", - "reference": "7a9470071dac9579ebf29ad1b9d73e4b8eb586fc", + "url": "https://api.github.com/repos/laravel/framework/zipball/32a8bb151d748b579c3794dea53b56bd40dfbbd3", + "reference": "32a8bb151d748b579c3794dea53b56bd40dfbbd3", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11", + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.3.2", @@ -2558,6 +2623,8 @@ "conflict": { "carbonphp/carbon-doctrine-types": ">=3.0", "doctrine/dbal": ">=4.0", + "mockery/mockery": "1.6.8", + "phpunit/phpunit": ">=11.0.0", "tightenco/collect": "<5.5.33" }, "provide": { @@ -2702,20 +2769,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-01-09T11:46:47+00:00" + "time": "2024-03-12T16:35:43+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.15", + "version": "v0.1.16", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "d814a27514d99b03c85aa42b22cfd946568636c1" + "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/d814a27514d99b03c85aa42b22cfd946568636c1", - "reference": "d814a27514d99b03c85aa42b22cfd946568636c1", + "url": "https://api.github.com/repos/laravel/prompts/zipball/ca6872ab6aec3ab61db3a61f83a6caf764ec7781", + "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781", "shasum": "" }, "require": { @@ -2757,22 +2824,22 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.15" + "source": "https://github.com/laravel/prompts/tree/v0.1.16" }, - "time": "2023-12-29T22:37:42+00:00" + "time": "2024-02-21T19:25:27+00:00" }, { "name": "laravel/sanctum", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "e1a272893bec13cf135627f7e156030b3afe1e60" + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/e1a272893bec13cf135627f7e156030b3afe1e60", - "reference": "e1a272893bec13cf135627f7e156030b3afe1e60", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", "shasum": "" }, "require": { @@ -2825,7 +2892,7 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-11-03T13:42:14+00:00" + "time": "2023-12-19T18:44:48+00:00" }, { "name": "laravel/serializable-closure", @@ -2889,25 +2956,25 @@ }, { "name": "laravel/tinker", - "version": "v2.8.2", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3" + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4|^0.11.1", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", @@ -2915,13 +2982,10 @@ "phpunit/phpunit": "^8.5.8|^9.3.3" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" @@ -2952,22 +3016,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.8.2" + "source": "https://github.com/laravel/tinker/tree/v2.9.0" }, - "time": "2023-08-15T14:27:00+00:00" + "time": "2024-01-04T16:10:04+00:00" }, { "name": "league/commonmark", - "version": "2.4.1", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5" + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5", - "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", "shasum": "" }, "require": { @@ -2980,7 +3044,7 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", + "commonmark/cmark": "0.30.3", "commonmark/commonmark.js": "0.30.0", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", @@ -2990,10 +3054,10 @@ "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", "vimeo/psalm": "^4.24.0 || ^5.0.0" }, @@ -3060,7 +3124,7 @@ "type": "tidelift" } ], - "time": "2023-08-30T16:55:00+00:00" + "time": "2024-02-02T11:59:32+00:00" }, { "name": "league/config", @@ -3146,16 +3210,16 @@ }, { "name": "league/flysystem", - "version": "3.23.0", + "version": "3.25.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc" + "reference": "4c44347133618cccd9b3df1729647a1577b4ad99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc", - "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4c44347133618cccd9b3df1729647a1577b4ad99", + "reference": "4c44347133618cccd9b3df1729647a1577b4ad99", "shasum": "" }, "require": { @@ -3175,7 +3239,7 @@ "require-dev": { "async-aws/s3": "^1.5 || ^2.0", "async-aws/simple-s3": "^1.1 || ^2.0", - "aws/aws-sdk-php": "^3.220.0", + "aws/aws-sdk-php": "^3.295.10", "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", @@ -3183,10 +3247,10 @@ "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", "microsoft/azure-storage-blob": "^1.1", - "phpseclib/phpseclib": "^3.0.34", + "phpseclib/phpseclib": "^3.0.36", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", - "sabre/dav": "^4.3.1" + "sabre/dav": "^4.6.0" }, "type": "library", "autoload": { @@ -3220,7 +3284,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.23.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.25.0" }, "funding": [ { @@ -3232,24 +3296,24 @@ "type": "github" } ], - "time": "2023-12-04T10:16:17+00:00" + "time": "2024-03-09T17:06:45+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.21.0", + "version": "3.24.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "2a1784eec09ee8e190fc27b93e725bc518338929" + "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/2a1784eec09ee8e190fc27b93e725bc518338929", - "reference": "2a1784eec09ee8e190fc27b93e725bc518338929", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", + "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", "shasum": "" }, "require": { - "aws/aws-sdk-php": "^3.220.0", + "aws/aws-sdk-php": "^3.295.10", "league/flysystem": "^3.10.0", "league/mime-type-detection": "^1.0.0", "php": "^8.0.2" @@ -3285,8 +3349,7 @@ "storage" ], "support": { - "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues", - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.21.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.24.0" }, "funding": [ { @@ -3298,20 +3361,20 @@ "type": "github" } ], - "time": "2023-11-14T11:54:45+00:00" + "time": "2024-01-26T18:43:21+00:00" }, { "name": "league/flysystem-local", - "version": "3.23.0", + "version": "3.23.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "5cf046ba5f059460e86a997c504dd781a39a109b" + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/5cf046ba5f059460e86a997c504dd781a39a109b", - "reference": "5cf046ba5f059460e86a997c504dd781a39a109b", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", "shasum": "" }, "require": { @@ -3346,7 +3409,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1" }, "funding": [ { @@ -3358,7 +3421,7 @@ "type": "github" } ], - "time": "2023-12-04T10:14:46+00:00" + "time": "2024-01-26T18:25:23+00:00" }, { "name": "league/glide", @@ -3427,16 +3490,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.14.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "b6a5854368533df0295c5761a0253656a2e52d9e" + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e", - "reference": "b6a5854368533df0295c5761a0253656a2e52d9e", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "" }, "require": { @@ -3467,7 +3530,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" }, "funding": [ { @@ -3479,7 +3542,7 @@ "type": "tidelift" } ], - "time": "2023-10-17T14:13:20+00:00" + "time": "2024-01-28T23:22:08+00:00" }, { "name": "league/uri-parser", @@ -3626,28 +3689,29 @@ }, { "name": "maatwebsite/excel", - "version": "3.1.50", + "version": "3.1.55", "source": { "type": "git", "url": "https://github.com/SpartnerNL/Laravel-Excel.git", - "reference": "d79e66391aa306983bb7e234503f5605c3e33348" + "reference": "6d9d791dcdb01a9b6fd6f48d46f0d5fff86e6260" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/d79e66391aa306983bb7e234503f5605c3e33348", - "reference": "d79e66391aa306983bb7e234503f5605c3e33348", + "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/6d9d791dcdb01a9b6fd6f48d46f0d5fff86e6260", + "reference": "6d9d791dcdb01a9b6fd6f48d46f0d5fff86e6260", "shasum": "" }, "require": { "composer/semver": "^3.3", "ext-json": "*", - "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0", + "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0||^11.0", "php": "^7.0||^8.0", "phpoffice/phpspreadsheet": "^1.18", "psr/simple-cache": "^1.0||^2.0||^3.0" }, "require-dev": { - "orchestra/testbench": "^6.0||^7.0||^8.0", + "laravel/scout": "^7.0||^8.0||^9.0||^10.0", + "orchestra/testbench": "^6.0||^7.0||^8.0||^9.0", "predis/predis": "^1.1" }, "type": "library", @@ -3690,7 +3754,7 @@ ], "support": { "issues": "https://github.com/SpartnerNL/Laravel-Excel/issues", - "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.50" + "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.55" }, "funding": [ { @@ -3702,7 +3766,7 @@ "type": "github" } ], - "time": "2023-11-06T11:29:48+00:00" + "time": "2024-02-20T08:27:10+00:00" }, { "name": "maennchen/zipstream-php", @@ -4128,16 +4192,16 @@ }, { "name": "nesbot/carbon", - "version": "2.72.1", + "version": "2.72.3", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78" + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2b3b3db0a2d0556a177392ff1a3bf5608fa09f78", - "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", "shasum": "" }, "require": { @@ -4231,35 +4295,35 @@ "type": "tidelift" } ], - "time": "2023-12-08T23:47:49+00:00" + "time": "2024-01-25T10:35:09+00:00" }, { "name": "nette/schema", - "version": "v1.2.5", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": "7.1 - 8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.3" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", + "nette/tester": "^2.4", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -4291,22 +4355,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.5" + "source": "https://github.com/nette/schema/tree/v1.3.0" }, - "time": "2023-10-05T20:37:59+00:00" + "time": "2023-12-11T11:54:22+00:00" }, { "name": "nette/utils", - "version": "v4.0.3", + "version": "v4.0.4", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { @@ -4377,22 +4441,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.3" + "source": "https://github.com/nette/utils/tree/v4.0.4" }, - "time": "2023-10-29T21:02:13+00:00" + "time": "2024-01-17T16:50:36+00:00" }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v4.18.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", "shasum": "" }, "require": { @@ -4433,9 +4497,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2023-12-10T21:03:43+00:00" }, { "name": "nunomaduro/termwind", @@ -4850,16 +4914,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.3", + "version": "1.26.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "12f01d214f1c73b9c91fdb3b1c415e4c70652083" + "reference": "231e3186624c03d7e7c890ec662b81e6b0405227" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/12f01d214f1c73b9c91fdb3b1c415e4c70652083", - "reference": "12f01d214f1c73b9c91fdb3b1c415e4c70652083", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/231e3186624c03d7e7c890ec662b81e6b0405227", + "reference": "231e3186624c03d7e7c890ec662b81e6b0405227", "shasum": "" }, "require": { @@ -4891,9 +4955,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.24.3" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.26.0" }, - "time": "2023-11-18T20:15:32+00:00" + "time": "2024-02-23T16:05:55+00:00" }, { "name": "pragmarx/google2fa", @@ -5361,25 +5425,25 @@ }, { "name": "psy/psysh", - "version": "v0.11.22", + "version": "v0.12.0", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b" + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", + "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", "shasum": "" }, "require": { "ext-json": "*", "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" @@ -5390,8 +5454,7 @@ "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ "bin/psysh" @@ -5399,7 +5462,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-0.11": "0.11.x-dev" + "dev-main": "0.12.x-dev" }, "bamarni-bin": { "bin-links": false, @@ -5435,9 +5498,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.22" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" }, - "time": "2023-10-14T21:56:36+00:00" + "time": "2023-12-20T15:28:09+00:00" }, { "name": "pxlrbt/filament-excel", @@ -5811,16 +5874,16 @@ }, { "name": "sentry/sentry", - "version": "4.3.1", + "version": "4.6.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "cd89f230bda0833cb9992ebe9a1b7d24d6ee245b" + "reference": "5a94184175e5830b589bf923da8c9c3af2c0f409" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/cd89f230bda0833cb9992ebe9a1b7d24d6ee245b", - "reference": "cd89f230bda0833cb9992ebe9a1b7d24d6ee245b", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/5a94184175e5830b589bf923da8c9c3af2c0f409", + "reference": "5a94184175e5830b589bf923da8c9c3af2c0f409", "shasum": "" }, "require": { @@ -5884,7 +5947,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.3.1" + "source": "https://github.com/getsentry/sentry-php/tree/4.6.1" }, "funding": [ { @@ -5896,37 +5959,37 @@ "type": "custom" } ], - "time": "2023-12-22T18:46:49+00:00" + "time": "2024-03-08T08:18:09+00:00" }, { "name": "sentry/sentry-laravel", - "version": "4.1.1", + "version": "4.3.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-laravel.git", - "reference": "792944c1d0b7342d1635ac6d72fbdc2f32486310" + "reference": "631a5eb59c9469ce1722233337c11747fc620a8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/792944c1d0b7342d1635ac6d72fbdc2f32486310", - "reference": "792944c1d0b7342d1635ac6d72fbdc2f32486310", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/631a5eb59c9469ce1722233337c11747fc620a8d", + "reference": "631a5eb59c9469ce1722233337c11747fc620a8d", "shasum": "" }, "require": { - "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0", + "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0", "nyholm/psr7": "^1.0", "php": "^7.2 | ^8.0", - "sentry/sentry": "^4.0", - "symfony/psr-http-message-bridge": "^1.0 | ^2.0" + "sentry/sentry": "^4.5", + "symfony/psr-http-message-bridge": "^1.0 | ^2.0 | ^6.0 | ^7.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.11", "guzzlehttp/guzzle": "^7.2", - "laravel/folio": "^1.0", - "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0", + "laravel/folio": "^1.1", + "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0", "livewire/livewire": "^2.0 | ^3.0", "mockery/mockery": "^1.3", - "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0", + "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0 | ^9.0", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^8.4 | ^9.3 | ^10.4" }, @@ -5973,7 +6036,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-laravel/issues", - "source": "https://github.com/getsentry/sentry-laravel/tree/4.1.1" + "source": "https://github.com/getsentry/sentry-laravel/tree/4.3.1" }, "funding": [ { @@ -5985,7 +6048,7 @@ "type": "custom" } ], - "time": "2023-12-12T22:17:13+00:00" + "time": "2024-03-13T09:37:21+00:00" }, { "name": "spatie/image", @@ -6287,20 +6350,20 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.16.1", + "version": "1.16.3", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d" + "reference": "59db18c2e20d49a0b6d447bb1c654f6c123beb9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/cc7c991555a37f9fa6b814aa03af73f88026a83d", - "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/59db18c2e20d49a0b6d447bb1c654f6c123beb9e", + "reference": "59db18c2e20d49a0b6d447bb1c654f6c123beb9e", "shasum": "" }, "require": { - "illuminate/contracts": "^9.28|^10.0", + "illuminate/contracts": "^9.28|^10.0|^11.0", "php": "^8.0" }, "require-dev": { @@ -6335,7 +6398,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.1" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.3" }, "funding": [ { @@ -6343,20 +6406,20 @@ "type": "github" } ], - "time": "2023-08-23T09:04:39+00:00" + "time": "2024-03-07T07:35:57+00:00" }, { "name": "spatie/temporary-directory", - "version": "2.2.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/spatie/temporary-directory.git", - "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c" + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/efc258c9f4da28f0c7661765b8393e4ccee3d19c", - "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", "shasum": "" }, "require": { @@ -6392,7 +6455,7 @@ ], "support": { "issues": "https://github.com/spatie/temporary-directory/issues", - "source": "https://github.com/spatie/temporary-directory/tree/2.2.0" + "source": "https://github.com/spatie/temporary-directory/tree/2.2.1" }, "funding": [ { @@ -6404,20 +6467,20 @@ "type": "github" } ], - "time": "2023-09-25T07:13:36+00:00" + "time": "2023-12-25T11:46:58+00:00" }, { "name": "symfony/console", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625" + "reference": "0d9e4eb5ad413075624378f474c4167ea202de78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0254811a143e6bc6c8deea08b589a7e68a37f625", - "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625", + "url": "https://api.github.com/repos/symfony/console/zipball/0d9e4eb5ad413075624378f474c4167ea202de78", + "reference": "0d9e4eb5ad413075624378f474c4167ea202de78", "shasum": "" }, "require": { @@ -6482,7 +6545,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.2" + "source": "https://github.com/symfony/console/tree/v6.4.4" }, "funding": [ { @@ -6498,20 +6561,20 @@ "type": "tidelift" } ], - "time": "2023-12-10T16:15:48+00:00" + "time": "2024-02-22T20:27:10+00:00" }, { "name": "symfony/css-selector", - "version": "v7.0.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e" + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/bb51d46e53ef8d50d523f0c5faedba056a27943e", - "reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", "shasum": "" }, "require": { @@ -6547,7 +6610,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.0.0" + "source": "https://github.com/symfony/css-selector/tree/v7.0.3" }, "funding": [ { @@ -6563,7 +6626,7 @@ "type": "tidelift" } ], - "time": "2023-10-31T17:59:56+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6634,16 +6697,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.0", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788" + "reference": "c725219bdf2afc59423c32793d5019d2a904e13a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/c873490a1c97b3a0a4838afc36ff36c112d02788", - "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c725219bdf2afc59423c32793d5019d2a904e13a", + "reference": "c725219bdf2afc59423c32793d5019d2a904e13a", "shasum": "" }, "require": { @@ -6689,7 +6752,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.0" + "source": "https://github.com/symfony/error-handler/tree/v6.4.4" }, "funding": [ { @@ -6705,20 +6768,20 @@ "type": "tidelift" } ], - "time": "2023-10-18T09:43:34+00:00" + "time": "2024-02-22T20:27:10+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.2", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a" + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/098b62ae81fdd6cbf941f355059f617db28f4f9a", - "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", "shasum": "" }, "require": { @@ -6769,7 +6832,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.2" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.3" }, "funding": [ { @@ -6785,7 +6848,7 @@ "type": "tidelift" } ], - "time": "2023-12-27T22:24:19+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6929,16 +6992,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271" + "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/172d807f9ef3fc3fbed8377cc57c20d389269271", - "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ebc713bc6e6f4b53f46539fc158be85dfcd77304", + "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304", "shasum": "" }, "require": { @@ -6986,7 +7049,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.2" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.4" }, "funding": [ { @@ -7002,20 +7065,20 @@ "type": "tidelift" } ], - "time": "2023-12-27T22:16:42+00:00" + "time": "2024-02-08T15:01:18+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.2", + "version": "v6.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "13e8387320b5942d0dc408440c888e2d526efef4" + "reference": "f6947cb939d8efee137797382cb4db1af653ef75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/13e8387320b5942d0dc408440c888e2d526efef4", - "reference": "13e8387320b5942d0dc408440c888e2d526efef4", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f6947cb939d8efee137797382cb4db1af653ef75", + "reference": "f6947cb939d8efee137797382cb4db1af653ef75", "shasum": "" }, "require": { @@ -7064,7 +7127,7 @@ "symfony/process": "^5.4|^6.0|^7.0", "symfony/property-access": "^5.4.5|^6.0.5|^7.0", "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.3|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", "symfony/stopwatch": "^5.4|^6.0|^7.0", "symfony/translation": "^5.4|^6.0|^7.0", "symfony/translation-contracts": "^2.5|^3", @@ -7099,7 +7162,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.2" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.5" }, "funding": [ { @@ -7115,20 +7178,20 @@ "type": "tidelift" } ], - "time": "2023-12-30T15:31:44+00:00" + "time": "2024-03-04T21:00:47+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "6da89e5c9202f129717a770a03183fb140720168" + "reference": "791c5d31a8204cf3db0c66faab70282307f4376b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/6da89e5c9202f129717a770a03183fb140720168", - "reference": "6da89e5c9202f129717a770a03183fb140720168", + "url": "https://api.github.com/repos/symfony/mailer/zipball/791c5d31a8204cf3db0c66faab70282307f4376b", + "reference": "791c5d31a8204cf3db0c66faab70282307f4376b", "shasum": "" }, "require": { @@ -7179,7 +7242,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.2" + "source": "https://github.com/symfony/mailer/tree/v6.4.4" }, "funding": [ { @@ -7195,20 +7258,20 @@ "type": "tidelift" } ], - "time": "2023-12-19T09:12:31+00:00" + "time": "2024-02-03T21:33:47+00:00" }, { "name": "symfony/mime", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205" + "reference": "5017e0a9398c77090b7694be46f20eb796262a34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/ca4f58b2ef4baa8f6cecbeca2573f88cd577d205", - "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205", + "url": "https://api.github.com/repos/symfony/mime/zipball/5017e0a9398c77090b7694be46f20eb796262a34", + "reference": "5017e0a9398c77090b7694be46f20eb796262a34", "shasum": "" }, "require": { @@ -7263,7 +7326,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.0" + "source": "https://github.com/symfony/mime/tree/v6.4.3" }, "funding": [ { @@ -7279,7 +7342,7 @@ "type": "tidelift" } ], - "time": "2023-10-17T11:49:05+00:00" + "time": "2024-01-30T08:32:12+00:00" }, { "name": "symfony/options-resolver", @@ -7350,16 +7413,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -7373,9 +7436,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7412,7 +7472,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -7428,20 +7488,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -7452,9 +7512,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7493,7 +7550,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -7509,20 +7566,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", - "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", "shasum": "" }, "require": { @@ -7535,9 +7592,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7580,7 +7634,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" }, "funding": [ { @@ -7596,20 +7650,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:30:37+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -7620,9 +7674,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7664,7 +7715,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -7680,20 +7731,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -7707,9 +7758,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7747,7 +7795,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -7763,20 +7811,20 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", - "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", "shasum": "" }, "require": { @@ -7784,9 +7832,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7823,7 +7868,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" }, "funding": [ { @@ -7839,20 +7884,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { @@ -7860,9 +7905,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7906,7 +7948,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" }, "funding": [ { @@ -7922,20 +7964,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", "shasum": "" }, "require": { @@ -7944,9 +7986,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7986,7 +8025,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" }, "funding": [ { @@ -8002,20 +8041,20 @@ "type": "tidelift" } ], - "time": "2023-08-16T06:22:46+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e" + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/9c44518a5aff8da565c8a55dbe85d2769e6f630e", - "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", "shasum": "" }, "require": { @@ -8029,9 +8068,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -8068,7 +8104,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" }, "funding": [ { @@ -8084,20 +8120,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/process", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241" + "reference": "710e27879e9be3395de2b98da3f52a946039f297" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/c4b1ef0bc80533d87a2e969806172f1c2a980241", - "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241", + "url": "https://api.github.com/repos/symfony/process/zipball/710e27879e9be3395de2b98da3f52a946039f297", + "reference": "710e27879e9be3395de2b98da3f52a946039f297", "shasum": "" }, "require": { @@ -8129,7 +8165,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.2" + "source": "https://github.com/symfony/process/tree/v6.4.4" }, "funding": [ { @@ -8145,47 +8181,42 @@ "type": "tidelift" } ], - "time": "2023-12-22T16:42:54+00:00" + "time": "2024-02-20T12:31:00+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v2.3.1", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e" + "reference": "d9fadaf9541d7c01c307e48905d7ce1dbee6bf38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e", - "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d9fadaf9541d7c01c307e48905d7ce1dbee6bf38", + "reference": "d9fadaf9541d7c01c307e48905d7ce1dbee6bf38", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/http-message": "^1.0 || ^2.0", - "symfony/deprecation-contracts": "^2.5 || ^3.0", - "symfony/http-foundation": "^5.4 || ^6.0" + "php": ">=8.2", + "psr/http-message": "^1.0|^2.0", + "symfony/http-foundation": "^6.4|^7.0" + }, + "conflict": { + "php-http/discovery": "<1.15", + "symfony/http-kernel": "<6.4" }, "require-dev": { "nyholm/psr7": "^1.1", - "psr/log": "^1.1 || ^2 || ^3", - "symfony/browser-kit": "^5.4 || ^6.0", - "symfony/config": "^5.4 || ^6.0", - "symfony/event-dispatcher": "^5.4 || ^6.0", - "symfony/framework-bundle": "^5.4 || ^6.0", - "symfony/http-kernel": "^5.4 || ^6.0", - "symfony/phpunit-bridge": "^6.2" - }, - "suggest": { - "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" + "php-http/discovery": "^1.15", + "psr/log": "^1.1.4|^2|^3", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/framework-bundle": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0" }, "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-main": "2.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\PsrHttpMessage\\": "" @@ -8205,11 +8236,11 @@ }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "PSR HTTP message bridge", - "homepage": "http://symfony.com", + "homepage": "https://symfony.com", "keywords": [ "http", "http-message", @@ -8217,8 +8248,7 @@ "psr-7" ], "support": { - "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.0.3" }, "funding": [ { @@ -8234,20 +8264,20 @@ "type": "tidelift" } ], - "time": "2023-07-26T11:53:26+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/routing", - "version": "v6.4.2", + "version": "v6.4.5", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "98eab13a07fddc85766f1756129c69f207ffbc21" + "reference": "7fe30068e207d9c31c0138501ab40358eb2d49a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/98eab13a07fddc85766f1756129c69f207ffbc21", - "reference": "98eab13a07fddc85766f1756129c69f207ffbc21", + "url": "https://api.github.com/repos/symfony/routing/zipball/7fe30068e207d9c31c0138501ab40358eb2d49a4", + "reference": "7fe30068e207d9c31c0138501ab40358eb2d49a4", "shasum": "" }, "require": { @@ -8301,7 +8331,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.2" + "source": "https://github.com/symfony/routing/tree/v6.4.5" }, "funding": [ { @@ -8317,7 +8347,7 @@ "type": "tidelift" } ], - "time": "2023-12-29T15:34:34+00:00" + "time": "2024-02-27T12:33:30+00:00" }, { "name": "symfony/service-contracts", @@ -8403,16 +8433,16 @@ }, { "name": "symfony/string", - "version": "v7.0.2", + "version": "v7.0.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5" + "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/cc78f14f91f5e53b42044d0620961c48028ff9f5", - "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5", + "url": "https://api.github.com/repos/symfony/string/zipball/f5832521b998b0bec40bee688ad5de98d4cf111b", + "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b", "shasum": "" }, "require": { @@ -8469,7 +8499,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.2" + "source": "https://github.com/symfony/string/tree/v7.0.4" }, "funding": [ { @@ -8485,20 +8515,20 @@ "type": "tidelift" } ], - "time": "2023-12-10T16:54:46+00:00" + "time": "2024-02-01T13:17:36+00:00" }, { "name": "symfony/translation", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681" + "reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", - "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", + "url": "https://api.github.com/repos/symfony/translation/zipball/bce6a5a78e94566641b2594d17e48b0da3184a8e", + "reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e", "shasum": "" }, "require": { @@ -8521,7 +8551,7 @@ "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", "symfony/config": "^5.4|^6.0|^7.0", "symfony/console": "^5.4|^6.0|^7.0", @@ -8564,7 +8594,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.2" + "source": "https://github.com/symfony/translation/tree/v6.4.4" }, "funding": [ { @@ -8580,7 +8610,7 @@ "type": "tidelift" } ], - "time": "2023-12-18T09:25:29+00:00" + "time": "2024-02-20T13:16:58+00:00" }, { "name": "symfony/translation-contracts", @@ -8662,16 +8692,16 @@ }, { "name": "symfony/uid", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92" + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/8092dd1b1a41372110d06374f99ee62f7f0b9a92", - "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92", + "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", "shasum": "" }, "require": { @@ -8716,7 +8746,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.0" + "source": "https://github.com/symfony/uid/tree/v6.4.3" }, "funding": [ { @@ -8732,20 +8762,20 @@ "type": "tidelift" } ], - "time": "2023-10-31T08:18:17+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f" + "reference": "b439823f04c98b84d4366c79507e9da6230944b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/68d6573ec98715ddcae5a0a85bee3c1c27a4c33f", - "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b439823f04c98b84d4366c79507e9da6230944b1", + "reference": "b439823f04c98b84d4366c79507e9da6230944b1", "shasum": "" }, "require": { @@ -8801,7 +8831,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.2" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.4" }, "funding": [ { @@ -8817,7 +8847,7 @@ "type": "tidelift" } ], - "time": "2023-12-28T19:16:56+00:00" + "time": "2024-02-15T11:23:52+00:00" }, { "name": "tgalopin/html-sanitizer", @@ -9187,36 +9217,36 @@ }, { "name": "barryvdh/laravel-debugbar", - "version": "v3.9.2", + "version": "v3.12.2", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "bfd0131c146973cab164e50f5cdd8a67cc60cab1" + "reference": "43555503052443964ce2c1c1f3b0378e58219eb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/bfd0131c146973cab164e50f5cdd8a67cc60cab1", - "reference": "bfd0131c146973cab164e50f5cdd8a67cc60cab1", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/43555503052443964ce2c1c1f3b0378e58219eb8", + "reference": "43555503052443964ce2c1c1f3b0378e58219eb8", "shasum": "" }, "require": { - "illuminate/routing": "^9|^10", - "illuminate/session": "^9|^10", - "illuminate/support": "^9|^10", - "maximebf/debugbar": "^1.18.2", + "illuminate/routing": "^9|^10|^11", + "illuminate/session": "^9|^10|^11", + "illuminate/support": "^9|^10|^11", + "maximebf/debugbar": "~1.21.0", "php": "^8.0", - "symfony/finder": "^6" + "symfony/finder": "^6|^7" }, "require-dev": { "mockery/mockery": "^1.3.3", - "orchestra/testbench-dusk": "^5|^6|^7|^8", - "phpunit/phpunit": "^8.5.30|^9.0", + "orchestra/testbench-dusk": "^5|^6|^7|^8|^9", + "phpunit/phpunit": "^9.6|^10.5", "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.8-dev" + "dev-master": "3.10-dev" }, "laravel": { "providers": [ @@ -9255,7 +9285,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.9.2" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.12.2" }, "funding": [ { @@ -9267,44 +9297,44 @@ "type": "github" } ], - "time": "2023-08-25T18:43:57+00:00" + "time": "2024-03-13T09:50:34+00:00" }, { "name": "barryvdh/laravel-ide-helper", - "version": "v2.13.0", + "version": "v2.15.1", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "81d5b223ff067a1f38e14c100997e153b837fe4a" + "reference": "77831852bb7bc54f287246d32eb91274eaf87f8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/81d5b223ff067a1f38e14c100997e153b837fe4a", - "reference": "81d5b223ff067a1f38e14c100997e153b837fe4a", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/77831852bb7bc54f287246d32eb91274eaf87f8b", + "reference": "77831852bb7bc54f287246d32eb91274eaf87f8b", "shasum": "" }, "require": { "barryvdh/reflection-docblock": "^2.0.6", "composer/class-map-generator": "^1.0", - "doctrine/dbal": "^2.6 || ^3", + "doctrine/dbal": "^2.6 || ^3.1.4", "ext-json": "*", - "illuminate/console": "^8 || ^9 || ^10", - "illuminate/filesystem": "^8 || ^9 || ^10", - "illuminate/support": "^8 || ^9 || ^10", - "nikic/php-parser": "^4.7", - "php": "^7.3 || ^8.0", + "illuminate/console": "^9 || ^10", + "illuminate/filesystem": "^9 || ^10", + "illuminate/support": "^9 || ^10", + "nikic/php-parser": "^4.18 || ^5", + "php": "^8.0", "phpdocumentor/type-resolver": "^1.1.0" }, "require-dev": { "ext-pdo_sqlite": "*", - "friendsofphp/php-cs-fixer": "^2", - "illuminate/config": "^8 || ^9 || ^10", - "illuminate/view": "^8 || ^9 || ^10", + "friendsofphp/php-cs-fixer": "^3", + "illuminate/config": "^9 || ^10", + "illuminate/view": "^9 || ^10", "mockery/mockery": "^1.4", - "orchestra/testbench": "^6 || ^7 || ^8", - "phpunit/phpunit": "^8.5 || ^9", - "spatie/phpunit-snapshot-assertions": "^3 || ^4", - "vimeo/psalm": "^3.12" + "orchestra/testbench": "^7 || ^8", + "phpunit/phpunit": "^9", + "spatie/phpunit-snapshot-assertions": "^4", + "vimeo/psalm": "^5.4" }, "suggest": { "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10)." @@ -9312,7 +9342,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.12-dev" + "dev-master": "2.15-dev" }, "laravel": { "providers": [ @@ -9349,7 +9379,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.13.0" + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.15.1" }, "funding": [ { @@ -9361,7 +9391,7 @@ "type": "github" } ], - "time": "2023-02-04T13:56:40+00:00" + "time": "2024-02-15T14:23:20+00:00" }, { "name": "barryvdh/reflection-docblock", @@ -9490,16 +9520,16 @@ }, { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/4775f35b2d70865807c89d32c8e7385b86eb0ace", + "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace", "shasum": "" }, "require": { @@ -9541,7 +9571,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.1.2" }, "funding": [ { @@ -9557,7 +9587,7 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" + "time": "2024-03-07T15:38:35+00:00" }, { "name": "composer/xdebug-handler", @@ -9720,16 +9750,16 @@ }, { "name": "doctrine/dbal", - "version": "3.7.2", + "version": "3.8.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2" + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/0ac3c270590e54910715e9a1a044cc368df282b2", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/db922ba9436b7b18a23d1653a0b41ff2369ca41c", + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c", "shasum": "" }, "require": { @@ -9745,14 +9775,14 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.42", + "phpstan/phpstan": "1.10.58", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.13", + "phpunit/phpunit": "9.6.16", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", + "squizlabs/php_codesniffer": "3.9.0", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" }, "suggest": { @@ -9813,7 +9843,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.7.2" + "source": "https://github.com/doctrine/dbal/tree/3.8.3" }, "funding": [ { @@ -9829,20 +9859,20 @@ "type": "tidelift" } ], - "time": "2023-11-19T08:06:58+00:00" + "time": "2024-03-03T15:55:06+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { @@ -9874,9 +9904,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" }, - "time": "2023-09-27T20:04:15+00:00" + "time": "2024-01-30T19:34:25+00:00" }, { "name": "doctrine/event-manager", @@ -9971,29 +10001,29 @@ }, { "name": "dragon-code/contracts", - "version": "v2.21.0", + "version": "2.23.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/contracts.git", - "reference": "c69d7183a4ec35892ca208b2863d3ccad9465d7b" + "reference": "44dbad923f152e0dc2699fbac2d33b65dd6a8f7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/c69d7183a4ec35892ca208b2863d3ccad9465d7b", - "reference": "c69d7183a4ec35892ca208b2863d3ccad9465d7b", + "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/44dbad923f152e0dc2699fbac2d33b65dd6a8f7d", + "reference": "44dbad923f152e0dc2699fbac2d33b65dd6a8f7d", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-message": "^1.0.1 || ^2.0", - "symfony/http-kernel": "^4.0 || ^5.0 || ^6.0", + "symfony/http-kernel": "^4.0 || ^5.0 || ^6.0 || ^7.0", "symfony/polyfill-php80": "^1.23" }, "conflict": { "andrey-helldar/contracts": "*" }, "require-dev": { - "illuminate/database": "^10.0", + "illuminate/database": "^10.0 || ^11.0", "phpdocumentor/reflection-docblock": "^5.0" }, "type": "library", @@ -10010,7 +10040,7 @@ { "name": "Andrey Helldar", "email": "helldar@dragon-code.pro", - "homepage": "https://github.com/andrey-helldar" + "homepage": "https://dragon-code.pro" } ], "description": "A set of contracts for any project", @@ -10030,20 +10060,12 @@ "url": "https://www.donationalerts.com/r/dragon_code", "type": "donationalerts" }, - { - "url": "https://github.com/sponsors/TheDragonCode", - "type": "github" - }, - { - "url": "https://opencollective.com/dragon-code", - "type": "open_collective" - }, { "url": "https://yoomoney.ru/to/410012608840929", "type": "yoomoney" } ], - "time": "2023-11-14T20:01:25+00:00" + "time": "2024-03-11T20:15:12+00:00" }, { "name": "dragon-code/pretty-array", @@ -10124,26 +10146,26 @@ }, { "name": "dragon-code/support", - "version": "v6.11.3", + "version": "6.13.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/support.git", - "reference": "3dbf1715e83e216ae1fea31eecc022829dc864df" + "reference": "a6f0468e32581efbccb23190b6d5c880cc519747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/support/zipball/3dbf1715e83e216ae1fea31eecc022829dc864df", - "reference": "3dbf1715e83e216ae1fea31eecc022829dc864df", + "url": "https://api.github.com/repos/TheDragonCode/support/zipball/a6f0468e32581efbccb23190b6d5c880cc519747", + "reference": "a6f0468e32581efbccb23190b6d5c880cc519747", "shasum": "" }, "require": { - "dragon-code/contracts": "^2.19.1", + "dragon-code/contracts": "^2.22.0", "ext-bcmath": "*", "ext-ctype": "*", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", - "php": "^8.0", + "php": "^8.1", "psr/http-message": "^1.0.1 || ^2.0", "symfony/polyfill-php81": "^1.25", "voku/portable-ascii": "^1.4.8 || ^2.0.1" @@ -10152,9 +10174,9 @@ "andrey-helldar/support": "*" }, "require-dev": { - "illuminate/contracts": "^9.0 || ^10.0", - "phpunit/phpunit": "^9.6", - "symfony/var-dumper": "^6.0" + "illuminate/contracts": "^9.0 || ^10.0 || ^11.0", + "phpunit/phpunit": "^9.6 || ^11.0", + "symfony/var-dumper": "^6.0 || ^7.0" }, "suggest": { "dragon-code/laravel-support": "Various helper files for the Laravel and Lumen frameworks", @@ -10184,7 +10206,7 @@ { "name": "Andrey Helldar", "email": "helldar@dragon-code.pro", - "homepage": "https://github.com/andrey-helldar" + "homepage": "https://dragon-code.pro" } ], "description": "Support package is a collection of helpers and tools for any project.", @@ -10214,33 +10236,25 @@ "url": "https://www.donationalerts.com/r/dragon_code", "type": "donationalerts" }, - { - "url": "https://github.com/sponsors/TheDragonCode", - "type": "github" - }, - { - "url": "https://opencollective.com/dragon-code", - "type": "open_collective" - }, { "url": "https://yoomoney.ru/to/410012608840929", "type": "yoomoney" } ], - "time": "2023-08-03T09:43:52+00:00" + "time": "2024-03-12T20:45:00+00:00" }, { "name": "fakerphp/faker", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01" + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", "shasum": "" }, "require": { @@ -10266,11 +10280,6 @@ "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.21-dev" - } - }, "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -10293,9 +10302,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" }, - "time": "2023-06-12T08:44:38+00:00" + "time": "2024-01-02T13:46:09+00:00" }, { "name": "filp/whoops", @@ -10370,49 +10379,48 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.39.0", + "version": "v3.51.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "04bf7b28fc847185b247d112cab617da941e3cca" + "reference": "127fa74f010da99053e3f5b62672615b72dd6efd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/04bf7b28fc847185b247d112cab617da941e3cca", - "reference": "04bf7b28fc847185b247d112cab617da941e3cca", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/127fa74f010da99053e3f5b62672615b72dd6efd", + "reference": "127fa74f010da99053e3f5b62672615b72dd6efd", "shasum": "" }, "require": { - "composer/semver": "^3.3", + "composer/semver": "^3.4", "composer/xdebug-handler": "^3.0.3", + "ext-filter": "*", "ext-json": "*", "ext-tokenizer": "*", "php": "^7.4 || ^8.0", - "sebastian/diff": "^4.0 || ^5.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0", "symfony/console": "^5.4 || ^6.0 || ^7.0", "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", "symfony/finder": "^5.4 || ^6.0 || ^7.0", "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0", - "symfony/polyfill-mbstring": "^1.27", - "symfony/polyfill-php80": "^1.27", - "symfony/polyfill-php81": "^1.27", + "symfony/polyfill-mbstring": "^1.28", + "symfony/polyfill-php80": "^1.28", + "symfony/polyfill-php81": "^1.28", "symfony/process": "^5.4 || ^6.0 || ^7.0", "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { "facile-it/paraunit": "^1.3 || ^2.0", "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^2.0", + "keradus/cli-executor": "^2.1", "mikey179/vfsstream": "^1.6.11", - "php-coveralls/php-coveralls": "^2.5.3", + "php-coveralls/php-coveralls": "^2.7", "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy": "^1.16", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", - "symfony/phpunit-bridge": "^6.2.3 || ^7.0", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4", + "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2", + "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0", "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "suggest": { @@ -10451,7 +10459,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.39.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.51.0" }, "funding": [ { @@ -10459,7 +10467,7 @@ "type": "github" } ], - "time": "2023-11-22T11:20:09+00:00" + "time": "2024-02-28T19:50:06+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -10514,22 +10522,29 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.1.12", + "version": "v5.2.0", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b" + "reference": "df52c7c4d8d60443ea1d14bcf9b182d4eaaeec26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b", - "reference": "c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/df52c7c4d8d60443ea1d14bcf9b182d4eaaeec26", + "reference": "df52c7c4d8d60443ea1d14bcf9b182d4eaaeec26", "shasum": "" }, "require": { "ext-json": "*", "php": ">=5.6" }, + "suggest": { + "ext-pdo": "Needed in order to use a SQL database for metadata storage", + "ext-pdo_mysql": "Needed in order to use MySQL for metadata storage", + "ext-pdo_postgres": "Needed in order to use Postgres for metadata storage", + "ext-pdo_sqlite": "Needed in order to use a SQLite for metadata storage", + "ext-redis": "Needed in order to use Redis for metadata storage" + }, "type": "library", "extra": { "laravel": { @@ -10570,7 +10585,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.12" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.2.0" }, "funding": [ { @@ -10578,31 +10593,31 @@ "type": "github" } ], - "time": "2022-12-13T00:04:12+00:00" + "time": "2024-02-20T22:36:44+00:00" }, { "name": "laravel-lang/attributes", - "version": "2.5.1", + "version": "2.9.4", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/attributes.git", - "reference": "d98d19ce3e6a7a98bb837a3ad7e32fa8db9eda81" + "reference": "398008ea9df5f568a7195c47f9853d983161e478" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/attributes/zipball/d98d19ce3e6a7a98bb837a3ad7e32fa8db9eda81", - "reference": "d98d19ce3e6a7a98bb837a3ad7e32fa8db9eda81", + "url": "https://api.github.com/repos/Laravel-Lang/attributes/zipball/398008ea9df5f568a7195c47f9853d983161e478", + "reference": "398008ea9df5f568a7195c47f9853d983161e478", "shasum": "" }, "require": { "ext-json": "*", - "laravel-lang/publisher": "^14.0 || ^15.0", + "laravel-lang/publisher": "^14.0 || ^15.0 || ^16.0", "php": "^8.1" }, "require-dev": { "laravel-lang/status-generator": "^1.19 || ^2.0", "phpunit/phpunit": "^10.0", - "symfony/var-dumper": "^6.0" + "symfony/var-dumper": "^6.0 || ^7.0" }, "type": "library", "extra": { @@ -10631,7 +10646,7 @@ "homepage": "https://github.com/Laravel-Lang" } ], - "description": "List of 78 languages for form field names", + "description": "List of 126 languages for form field names", "keywords": [ "attributes", "fields", @@ -10645,9 +10660,9 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/attributes/issues", - "source": "https://github.com/Laravel-Lang/attributes/tree/2.5.1" + "source": "https://github.com/Laravel-Lang/attributes/tree/2.9.4" }, - "time": "2023-11-21T17:42:19+00:00" + "time": "2024-01-25T00:41:17+00:00" }, { "name": "laravel-lang/common", @@ -10735,30 +10750,27 @@ }, { "name": "laravel-lang/http-statuses", - "version": "3.6.2", + "version": "3.8.2", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/http-statuses.git", - "reference": "d7acdcba3bbf834a77b0d132f62817b16d762f1c" + "reference": "b408ea74292df2e4fbec2be93858a3e697189b29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/http-statuses/zipball/d7acdcba3bbf834a77b0d132f62817b16d762f1c", - "reference": "d7acdcba3bbf834a77b0d132f62817b16d762f1c", + "url": "https://api.github.com/repos/Laravel-Lang/http-statuses/zipball/b408ea74292df2e4fbec2be93858a3e697189b29", + "reference": "b408ea74292df2e4fbec2be93858a3e697189b29", "shasum": "" }, "require": { "ext-json": "*", - "laravel-lang/publisher": "^14.1 || ^15.0", + "laravel-lang/publisher": "^14.1 || ^15.0 || ^16.0", "php": "^8.1" }, - "conflict": { - "laravel-lang/publisher": "<14.0" - }, "require-dev": { "laravel-lang/status-generator": "^1.19 || ^2.0", "phpunit/phpunit": "^10.0", - "symfony/var-dumper": "^6.0" + "symfony/var-dumper": "^6.0 || ^7.0" }, "type": "library", "extra": { @@ -10787,7 +10799,7 @@ "homepage": "https://github.com/Laravel-Lang" } ], - "description": "List of 78 languages for HTTP statuses", + "description": "List of 126 languages for HTTP statuses", "keywords": [ "http", "lang", @@ -10799,33 +10811,33 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/http-statuses/issues", - "source": "https://github.com/Laravel-Lang/http-statuses/tree/3.6.2" + "source": "https://github.com/Laravel-Lang/http-statuses/tree/3.8.2" }, - "time": "2023-11-21T17:40:36+00:00" + "time": "2024-03-11T01:33:17+00:00" }, { "name": "laravel-lang/lang", - "version": "13.8.0", + "version": "13.12.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/lang.git", - "reference": "54bb87a2644fb3cb222a20861b1f7c877a6d1c2a" + "reference": "25a5a07b635f0694cb34a37b58cfb78d0f4ee19e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/54bb87a2644fb3cb222a20861b1f7c877a6d1c2a", - "reference": "54bb87a2644fb3cb222a20861b1f7c877a6d1c2a", + "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/25a5a07b635f0694cb34a37b58cfb78d0f4ee19e", + "reference": "25a5a07b635f0694cb34a37b58cfb78d0f4ee19e", "shasum": "" }, "require": { "ext-json": "*", - "laravel-lang/publisher": "^14.0 || ^15.0", + "laravel-lang/publisher": "^14.0 || ^15.0 || ^16.0", "php": "^8.1" }, "require-dev": { "laravel-lang/status-generator": "^1.19 || ^2.0", "phpunit/phpunit": "^10.0", - "symfony/var-dumper": "^6.0" + "symfony/var-dumper": "^6.0 || ^7.0" }, "type": "library", "extra": { @@ -10861,7 +10873,7 @@ "issues": "https://github.com/Laravel-Lang/lang/issues", "source": "https://github.com/Laravel-Lang/lang" }, - "time": "2023-11-22T08:33:39+00:00" + "time": "2023-12-16T17:26:12+00:00" }, { "name": "laravel-lang/locales", @@ -11108,22 +11120,22 @@ }, { "name": "laravel/sail", - "version": "v1.26.1", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed" + "reference": "e40cc7ffb5186c45698dbd47e9477e0e429396d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed", - "reference": "7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed", + "url": "https://api.github.com/repos/laravel/sail/zipball/e40cc7ffb5186c45698dbd47e9477e0e429396d0", + "reference": "e40cc7ffb5186c45698dbd47e9477e0e429396d0", "shasum": "" }, "require": { - "illuminate/console": "^9.0|^10.0|^11.0", - "illuminate/contracts": "^9.0|^10.0|^11.0", - "illuminate/support": "^9.0|^10.0|^11.0", + "illuminate/console": "^9.52.16|^10.0|^11.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0", + "illuminate/support": "^9.52.16|^10.0|^11.0", "php": "^8.0", "symfony/yaml": "^6.0|^7.0" }, @@ -11136,9 +11148,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - }, "laravel": { "providers": [ "Laravel\\Sail\\SailServiceProvider" @@ -11169,20 +11178,20 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-11-20T15:56:47+00:00" + "time": "2024-03-08T16:32:33+00:00" }, { "name": "laravel/telescope", - "version": "v4.17.3", + "version": "v4.17.6", "source": { "type": "git", "url": "https://github.com/laravel/telescope.git", - "reference": "17a420d0121b03ea90648dd4484b62abe6d3e261" + "reference": "2d453dc629b27e8cf39fb1217aba062f8c54e690" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/telescope/zipball/17a420d0121b03ea90648dd4484b62abe6d3e261", - "reference": "17a420d0121b03ea90648dd4484b62abe6d3e261", + "url": "https://api.github.com/repos/laravel/telescope/zipball/2d453dc629b27e8cf39fb1217aba062f8c54e690", + "reference": "2d453dc629b27e8cf39fb1217aba062f8c54e690", "shasum": "" }, "require": { @@ -11238,28 +11247,28 @@ ], "support": { "issues": "https://github.com/laravel/telescope/issues", - "source": "https://github.com/laravel/telescope/tree/v4.17.3" + "source": "https://github.com/laravel/telescope/tree/v4.17.6" }, - "time": "2023-12-11T22:00:12+00:00" + "time": "2024-02-08T15:04:38+00:00" }, { "name": "maximebf/debugbar", - "version": "v1.19.1", + "version": "v1.21.3", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "03dd40a1826f4d585ef93ef83afa2a9874a00523" + "reference": "0b407703b08ea0cf6ebc61e267cc96ff7000911b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/03dd40a1826f4d585ef93ef83afa2a9874a00523", - "reference": "03dd40a1826f4d585ef93ef83afa2a9874a00523", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0b407703b08ea0cf6ebc61e267cc96ff7000911b", + "reference": "0b407703b08ea0cf6ebc61e267cc96ff7000911b", "shasum": "" }, "require": { "php": "^7.1|^8", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4|^5|^6" + "symfony/var-dumper": "^4|^5|^6|^7" }, "require-dev": { "phpunit/phpunit": ">=7.5.20 <10.0", @@ -11273,7 +11282,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-master": "1.21-dev" } }, "autoload": { @@ -11304,22 +11313,22 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.19.1" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.21.3" }, - "time": "2023-10-12T08:10:52+00:00" + "time": "2024-03-12T14:23:07+00:00" }, { "name": "mockery/mockery", - "version": "1.6.6", + "version": "1.6.9", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e" + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/b8e0bb7d8c604046539c1115994632c74dcb361e", - "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e", + "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", "shasum": "" }, "require": { @@ -11332,9 +11341,7 @@ }, "require-dev": { "phpunit/phpunit": "^8.5 || ^9.6.10", - "psalm/plugin-phpunit": "^0.18.4", - "symplify/easy-coding-standard": "^11.5.0", - "vimeo/psalm": "^4.30" + "symplify/easy-coding-standard": "^12.0.8" }, "type": "library", "autoload": { @@ -11391,7 +11398,7 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2023-08-09T00:03:52+00:00" + "time": "2023-12-10T02:24:34+00:00" }, { "name": "myclabs/deep-copy", @@ -11550,20 +11557,21 @@ }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -11604,9 +11612,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -11714,21 +11728,21 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.3", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" + "reference": "153ae662783729388a584b4361f2545e4d841e3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", + "reference": "153ae662783729388a584b4361f2545e4d841e3c", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", "phpstan/phpdoc-parser": "^1.13" }, @@ -11766,29 +11780,29 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" }, - "time": "2023-08-12T11:01:26+00:00" + "time": "2024-02-23T11:10:43+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.8", + "version": "10.1.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297" + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/84838eed9ded511f61dc3e8b5944a52d9017b297", - "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1", "phpunit/php-file-iterator": "^4.0", "phpunit/php-text-template": "^3.0", @@ -11838,7 +11852,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.8" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" }, "funding": [ { @@ -11846,7 +11860,7 @@ "type": "github" } ], - "time": "2023-11-15T13:31:15+00:00" + "time": "2024-03-12T15:33:41+00:00" }, { "name": "phpunit/php-file-iterator", @@ -12093,16 +12107,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.4.2", + "version": "10.5.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1" + "reference": "20a63fc1c6db29b15da3bd02d4b6cf59900088a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", - "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/20a63fc1c6db29b15da3bd02d4b6cf59900088a7", + "reference": "20a63fc1c6db29b15da3bd02d4b6cf59900088a7", "shasum": "" }, "require": { @@ -12142,7 +12156,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.4-dev" + "dev-main": "10.5-dev" } }, "autoload": { @@ -12174,7 +12188,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.2" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.13" }, "funding": [ { @@ -12190,7 +12204,7 @@ "type": "tidelift" } ], - "time": "2023-10-26T07:21:45+00:00" + "time": "2024-03-12T15:37:41+00:00" }, { "name": "psr/cache", @@ -12243,16 +12257,16 @@ }, { "name": "sebastian/cli-parser", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", "shasum": "" }, "require": { @@ -12287,7 +12301,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" }, "funding": [ { @@ -12295,7 +12310,7 @@ "type": "github" } ], - "time": "2023-02-03T06:58:15+00:00" + "time": "2024-03-02T07:12:49+00:00" }, { "name": "sebastian/code-unit", @@ -12487,20 +12502,20 @@ }, { "name": "sebastian/complexity", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -12509,7 +12524,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -12533,7 +12548,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, "funding": [ { @@ -12541,20 +12556,20 @@ "type": "github" } ], - "time": "2023-09-28T11:50:59+00:00" + "time": "2023-12-21T08:37:17+00:00" }, { "name": "sebastian/diff", - "version": "5.0.3", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { @@ -12562,12 +12577,12 @@ }, "require-dev": { "phpunit/phpunit": "^10.0", - "symfony/process": "^4.2 || ^5" + "symfony/process": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -12600,7 +12615,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -12608,7 +12623,7 @@ "type": "github" } ], - "time": "2023-05-01T07:48:21+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "sebastian/environment", @@ -12676,16 +12691,16 @@ }, { "name": "sebastian/exporter", - "version": "5.1.1", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", "shasum": "" }, "require": { @@ -12742,7 +12757,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" }, "funding": [ { @@ -12750,20 +12765,20 @@ "type": "github" } ], - "time": "2023-09-24T13:22:09+00:00" + "time": "2024-03-02T07:17:12+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", "shasum": "" }, "require": { @@ -12797,14 +12812,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" }, "funding": [ { @@ -12812,24 +12827,24 @@ "type": "github" } ], - "time": "2023-07-19T07:19:23+00:00" + "time": "2024-03-02T07:19:19+00:00" }, { "name": "sebastian/lines-of-code", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d" + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -12862,7 +12877,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -12870,7 +12885,7 @@ "type": "github" } ], - "time": "2023-08-31T09:25:50+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { "name": "sebastian/object-enumerator", @@ -13220,21 +13235,20 @@ }, { "name": "spatie/flare-client-php", - "version": "1.4.3", + "version": "1.4.4", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec" + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", - "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/17082e780752d346c2db12ef5d6bee8e835e399c", + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c", "shasum": "" }, "require": { "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", - "nesbot/carbon": "^2.62.1", "php": "^8.0", "spatie/backtrace": "^1.5.2", "symfony/http-foundation": "^5.2|^6.0|^7.0", @@ -13278,7 +13292,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.4.3" + "source": "https://github.com/spatie/flare-client-php/tree/1.4.4" }, "funding": [ { @@ -13286,20 +13300,20 @@ "type": "github" } ], - "time": "2023-10-17T15:54:07+00:00" + "time": "2024-01-31T14:18:45+00:00" }, { "name": "spatie/ignition", - "version": "1.11.3", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044" + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", + "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d", + "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d", "shasum": "" }, "require": { @@ -13369,39 +13383,39 @@ "type": "github" } ], - "time": "2023-10-18T14:09:40+00:00" + "time": "2024-01-03T15:49:39+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.3.1", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8" + "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/bf21cd15aa47fa4ec5d73bbc932005c70261efc8", - "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/351504f4570e32908839fc5a2dc53bf77d02f85e", + "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^10.0", + "illuminate/support": "^10.0|^11.0", "php": "^8.1", "spatie/flare-client-php": "^1.3.5", "spatie/ignition": "^1.9", - "symfony/console": "^6.2.3", - "symfony/var-dumper": "^6.2.3" + "symfony/console": "^6.2.3|^7.0", + "symfony/var-dumper": "^6.2.3|^7.0" }, "require-dev": { - "livewire/livewire": "^2.11", + "livewire/livewire": "^2.11|^3.3.5", "mockery/mockery": "^1.5.1", - "openai-php/client": "^0.3.4", - "orchestra/testbench": "^8.0", - "pestphp/pest": "^1.22.3", + "openai-php/client": "^0.8.1", + "orchestra/testbench": "^8.0|^9.0", + "pestphp/pest": "^2.30", "phpstan/extension-installer": "^1.2", "phpstan/phpstan-deprecation-rules": "^1.1.1", "phpstan/phpstan-phpunit": "^1.3.3", @@ -13461,24 +13475,24 @@ "type": "github" } ], - "time": "2023-10-09T12:55:26+00:00" + "time": "2024-02-09T16:08:40+00:00" }, { "name": "symfony/filesystem", - "version": "v6.3.1", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/2890e3a825bc0c0558526c04499c13f83e1b6b12", + "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, @@ -13508,7 +13522,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.3.1" + "source": "https://github.com/symfony/filesystem/tree/v7.0.3" }, "funding": [ { @@ -13524,20 +13538,20 @@ "type": "tidelift" } ], - "time": "2023-06-01T08:30:39+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", "shasum": "" }, "require": { @@ -13545,9 +13559,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -13587,7 +13598,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" }, "funding": [ { @@ -13603,24 +13614,24 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.3.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2" + "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", - "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/983900d6fddf2b0cbaacacbbad07610854bd8112", + "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -13649,7 +13660,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.3.0" + "source": "https://github.com/symfony/stopwatch/tree/v7.0.3" }, "funding": [ { @@ -13665,32 +13676,31 @@ "type": "tidelift" } ], - "time": "2023-02-16T10:14:28+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/yaml", - "version": "v6.3.8", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92" + "reference": "2d4fca631c00700597e9442a0b2451ce234513d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/3493af8a8dad7fa91c77fa473ba23ecd95334a92", - "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92", + "url": "https://api.github.com/repos/symfony/yaml/zipball/2d4fca631c00700597e9442a0b2451ce234513d3", + "reference": "2d4fca631c00700597e9442a0b2451ce234513d3", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0" + "symfony/console": "^6.4|^7.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -13721,7 +13731,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.3.8" + "source": "https://github.com/symfony/yaml/tree/v7.0.3" }, "funding": [ { @@ -13737,20 +13747,20 @@ "type": "tidelift" } ], - "time": "2023-11-06T10:58:05+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -13779,7 +13789,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -13787,7 +13797,7 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" } ], "aliases": [], diff --git a/lang/ro/volunteer.php b/lang/ro/volunteer.php index 0891074..70597f9 100644 --- a/lang/ro/volunteer.php +++ b/lang/ro/volunteer.php @@ -22,6 +22,7 @@ 'has_first_aid_accreditation' => 'Acreditare prim ajutor', 'updated_at' => 'Ultima actualizare', 'organisation' => 'Organizație', + 'import' => 'Importa voluntari', ], 'role' => [ From d7bb0250d24e6c2494b8a96722b91d10ee261fee Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Wed, 13 Mar 2024 20:31:02 +0200 Subject: [PATCH 02/16] min --- .../Resources/VolunteerResource/Pages/ListVolunteers.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php index cf38f91..1822ff8 100644 --- a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php +++ b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php @@ -96,7 +96,7 @@ protected function getActions(): array 'phone' => $data['phone'] ?? null, 'cnp' => $data['cnp'] ?? null, 'role' => $role, - 'specializations' => $newSpecializations, + 'specializations' => array_filter($newSpecializations), 'has_first_aid_accreditation' => $firstAID, ]; From 31b919721cf786d38e0d9d82ed3765bd95a20a6b Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Mon, 1 Apr 2024 16:46:40 +0300 Subject: [PATCH 03/16] Documents - tests --- .../DocumentResource/Pages/ViewDocument.php | 4 +- composer.json | 2 + composer.lock | 2158 ++++++++++------- tests/Feature/DocumentsTest.php | 619 +++++ 4 files changed, 1965 insertions(+), 818 deletions(-) create mode 100644 tests/Feature/DocumentsTest.php diff --git a/app/Filament/Resources/DocumentResource/Pages/ViewDocument.php b/app/Filament/Resources/DocumentResource/Pages/ViewDocument.php index e88179a..fad1960 100644 --- a/app/Filament/Resources/DocumentResource/Pages/ViewDocument.php +++ b/app/Filament/Resources/DocumentResource/Pages/ViewDocument.php @@ -15,8 +15,8 @@ class ViewDocument extends ViewRecord protected function getActions(): array { return [ - Actions\EditAction::make(), - Actions\DeleteAction::make(), + 'edit' => Actions\EditAction::make(), + 'delete' => Actions\DeleteAction::make(), ]; } } diff --git a/composer.json b/composer.json index c4df8f1..7ad7b62 100644 --- a/composer.json +++ b/composer.json @@ -30,6 +30,8 @@ "laravel/telescope": "^4.17", "mockery/mockery": "^1.6", "nunomaduro/collision": "^7.10", + "pestphp/pest": "^2.34", + "pestphp/pest-plugin-livewire": "^2.1", "phpunit/phpunit": "^10.4", "spatie/laravel-ignition": "^2.3" }, diff --git a/composer.lock b/composer.lock index b3f69af..69bebc8 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": "79a19b0d407e1357a655d548caaa5847", + "content-hash": "7fd03a264f442992077905aebd39b43c", "packages": [ { "name": "akaunting/laravel-money", @@ -132,28 +132,29 @@ }, { "name": "anourvalar/eloquent-serialize", - "version": "1.2.16", + "version": "1.2.22", "source": { "type": "git", "url": "https://github.com/AnourValar/eloquent-serialize.git", - "reference": "d929c743e70e7ce6eb8a18781c54dc6b00130c8f" + "reference": "6e91093c10940859c4b0549b6a90f18d8db45998" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/d929c743e70e7ce6eb8a18781c54dc6b00130c8f", - "reference": "d929c743e70e7ce6eb8a18781c54dc6b00130c8f", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/6e91093c10940859c4b0549b6a90f18d8db45998", + "reference": "6e91093c10940859c4b0549b6a90f18d8db45998", "shasum": "" }, "require": { - "laravel/framework": "^6.0|^7.0|^8.0|^9.0|^10.0", - "php": "^7.1|^8.0" + "laravel/framework": "^8.0|^9.0|^10.0|^11.0", + "php": "^7.4|^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.26", "laravel/legacy-factories": "^1.1", - "orchestra/testbench": "~3.6.0|~3.7.0|~3.8.0|^4.0|^5.0|^6.0|^7.0|^8.0", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^9.5|^10.5", + "psalm/plugin-laravel": "^2.8", "squizlabs/php_codesniffer": "^3.7" }, "type": "library", @@ -191,22 +192,22 @@ ], "support": { "issues": "https://github.com/AnourValar/eloquent-serialize/issues", - "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.16" + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.22" }, - "time": "2023-09-16T15:09:21+00:00" + "time": "2024-03-22T12:56:46+00:00" }, { "name": "aws/aws-crt-php", - "version": "v1.2.3", + "version": "v1.2.4", "source": { "type": "git", "url": "https://github.com/awslabs/aws-crt-php.git", - "reference": "5545a4fa310aec39f54279fdacebcce33b3ff382" + "reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/5545a4fa310aec39f54279fdacebcce33b3ff382", - "reference": "5545a4fa310aec39f54279fdacebcce33b3ff382", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/eb0c6e4e142224a10b08f49ebf87f32611d162b2", + "reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2", "shasum": "" }, "require": { @@ -245,22 +246,22 @@ ], "support": { "issues": "https://github.com/awslabs/aws-crt-php/issues", - "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.3" + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.4" }, - "time": "2023-10-16T20:10:06+00:00" + "time": "2023-11-08T00:42:13+00:00" }, { "name": "aws/aws-sdk-php", - "version": "3.288.1", + "version": "3.302.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "a1dfa12c7165de0b731ae8074c4ba1f3ae733f89" + "reference": "cb343ed4fc5d86c0ddf8e948f0271052f183f937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a1dfa12c7165de0b731ae8074c4ba1f3ae733f89", - "reference": "a1dfa12c7165de0b731ae8074c4ba1f3ae733f89", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/cb343ed4fc5d86c0ddf8e948f0271052f183f937", + "reference": "cb343ed4fc5d86c0ddf8e948f0271052f183f937", "shasum": "" }, "require": { @@ -340,9 +341,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.288.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.302.0" }, - "time": "2023-11-22T19:35:38+00:00" + "time": "2024-03-29T18:07:04+00:00" }, { "name": "bacon/bacon-qr-code", @@ -469,31 +470,31 @@ }, { "name": "blade-ui-kit/blade-icons", - "version": "1.5.3", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/blade-ui-kit/blade-icons.git", - "reference": "b5e6603218e2347ac81cb780bc6f71c8c3b31f5b" + "reference": "89660d93f9897d231e9113ba203cd17f4c5efade" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/b5e6603218e2347ac81cb780bc6f71c8c3b31f5b", - "reference": "b5e6603218e2347ac81cb780bc6f71c8c3b31f5b", + "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/89660d93f9897d231e9113ba203cd17f4c5efade", + "reference": "89660d93f9897d231e9113ba203cd17f4c5efade", "shasum": "" }, "require": { - "illuminate/contracts": "^8.0|^9.0|^10.0", - "illuminate/filesystem": "^8.0|^9.0|^10.0", - "illuminate/support": "^8.0|^9.0|^10.0", - "illuminate/view": "^8.0|^9.0|^10.0", + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0", + "illuminate/view": "^8.0|^9.0|^10.0|^11.0", "php": "^7.4|^8.0", - "symfony/console": "^5.3|^6.0", - "symfony/finder": "^5.3|^6.0" + "symfony/console": "^5.3|^6.0|^7.0", + "symfony/finder": "^5.3|^6.0|^7.0" }, "require-dev": { - "mockery/mockery": "^1.3", - "orchestra/testbench": "^6.0|^7.0|^8.0", - "phpunit/phpunit": "^9.0" + "mockery/mockery": "^1.5.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" }, "bin": [ "bin/blade-icons-generate" @@ -546,7 +547,7 @@ "type": "paypal" } ], - "time": "2023-10-18T10:50:13+00:00" + "time": "2024-02-07T16:09:20+00:00" }, { "name": "brick/math", @@ -806,26 +807,26 @@ }, { "name": "danharrin/livewire-rate-limiting", - "version": "v1.2.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/danharrin/livewire-rate-limiting.git", - "reference": "bc2cc0a0b5b517fdc5bba8671013dd71081f70a8" + "reference": "bf16003f0d977b5a41071526d697eec94ac41735" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/bc2cc0a0b5b517fdc5bba8671013dd71081f70a8", - "reference": "bc2cc0a0b5b517fdc5bba8671013dd71081f70a8", + "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/bf16003f0d977b5a41071526d697eec94ac41735", + "reference": "bf16003f0d977b5a41071526d697eec94ac41735", "shasum": "" }, "require": { - "illuminate/support": "^9.0|^10.0", + "illuminate/support": "^9.0|^10.0|^11.0", "php": "^8.0" }, "require-dev": { "livewire/livewire": "^3.0", "livewire/volt": "^1.3", - "orchestra/testbench": "^7.0|^8.0", + "orchestra/testbench": "^7.0|^8.0|^9.0", "phpunit/phpunit": "^9.0|^10.0" }, "type": "library", @@ -856,7 +857,7 @@ "type": "github" } ], - "time": "2023-10-27T15:01:19+00:00" + "time": "2024-01-21T14:53:34+00:00" }, { "name": "dasprid/enum", @@ -910,16 +911,16 @@ }, { "name": "dedoc/scramble", - "version": "v0.8.5", + "version": "v0.8.6", "source": { "type": "git", "url": "https://github.com/dedoc/scramble.git", - "reference": "cc61cc79843c6e2206dc5d0f15ae705494de8249" + "reference": "f0331d5cde68cf14ce6287006ae536e5b9ed6df2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dedoc/scramble/zipball/cc61cc79843c6e2206dc5d0f15ae705494de8249", - "reference": "cc61cc79843c6e2206dc5d0f15ae705494de8249", + "url": "https://api.github.com/repos/dedoc/scramble/zipball/f0331d5cde68cf14ce6287006ae536e5b9ed6df2", + "reference": "f0331d5cde68cf14ce6287006ae536e5b9ed6df2", "shasum": "" }, "require": { @@ -973,7 +974,7 @@ ], "support": { "issues": "https://github.com/dedoc/scramble/issues", - "source": "https://github.com/dedoc/scramble/tree/v0.8.5" + "source": "https://github.com/dedoc/scramble/tree/v0.8.6" }, "funding": [ { @@ -981,7 +982,7 @@ "type": "github" } ], - "time": "2023-12-02T09:58:18+00:00" + "time": "2024-03-03T18:32:22+00:00" }, { "name": "dflydev/dot-access-data", @@ -1060,16 +1061,16 @@ }, { "name": "doctrine/inflector", - "version": "2.0.8", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", - "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", "shasum": "" }, "require": { @@ -1131,7 +1132,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.8" + "source": "https://github.com/doctrine/inflector/tree/2.0.10" }, "funding": [ { @@ -1147,31 +1148,31 @@ "type": "tidelift" } ], - "time": "2023-06-16T13:40:37+00:00" + "time": "2024-02-18T20:23:39+00:00" }, { "name": "doctrine/lexer", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "84a527db05647743d50373e0ec53a152f2cde568" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568", - "reference": "84a527db05647743d50373e0ec53a152f2cde568", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^9.5", + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^5.0" + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { @@ -1208,7 +1209,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.0" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -1224,7 +1225,7 @@ "type": "tidelift" } ], - "time": "2022-12-15T16:57:16+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1867,16 +1868,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9" + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9", - "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { @@ -1891,11 +1892,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -1973,7 +1974,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { @@ -1989,7 +1990,7 @@ "type": "tidelift" } ], - "time": "2023-08-27T10:20:53+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { "name": "guzzlehttp/promises", @@ -2362,16 +2363,16 @@ }, { "name": "jean85/pretty-package-versions", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af" + "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af", - "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/f9fdd29ad8e6d024f52678b570e5593759b550b4", + "reference": "f9fdd29ad8e6d024f52678b570e5593759b550b4", "shasum": "" }, "require": { @@ -2379,9 +2380,9 @@ "php": "^7.1|^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.17", + "friendsofphp/php-cs-fixer": "^3.2", "jean85/composer-provided-replaced-stub-package": "^1.0", - "phpstan/phpstan": "^0.12.66", + "phpstan/phpstan": "^1.4", "phpunit/phpunit": "^7.5|^8.5|^9.4", "vimeo/psalm": "^4.3" }, @@ -2415,22 +2416,22 @@ ], "support": { "issues": "https://github.com/Jean85/pretty-package-versions/issues", - "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5" + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.6" }, - "time": "2021-10-08T21:21:46+00:00" + "time": "2024-03-08T09:58:59+00:00" }, { "name": "jeffgreco13/filament-breezy", - "version": "v1.5.9", + "version": "v1.5.10", "source": { "type": "git", "url": "https://github.com/jeffgreco13/filament-breezy.git", - "reference": "20a853f55b5170a65ee1a61682141a7918ee594c" + "reference": "843d39731738c2073237025d607b041c82ba6196" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jeffgreco13/filament-breezy/zipball/20a853f55b5170a65ee1a61682141a7918ee594c", - "reference": "20a853f55b5170a65ee1a61682141a7918ee594c", + "url": "https://api.github.com/repos/jeffgreco13/filament-breezy/zipball/843d39731738c2073237025d607b041c82ba6196", + "reference": "843d39731738c2073237025d607b041c82ba6196", "shasum": "" }, "require": { @@ -2489,32 +2490,26 @@ ], "support": { "issues": "https://github.com/jeffgreco13/filament-breezy/issues", - "source": "https://github.com/jeffgreco13/filament-breezy/tree/v1.5.9" + "source": "https://github.com/jeffgreco13/filament-breezy/tree/v1.5.10" }, - "funding": [ - { - "url": "https://github.com/jeffgreco13", - "type": "github" - } - ], - "time": "2023-07-22T16:01:05+00:00" + "time": "2024-01-31T15:40:42+00:00" }, { "name": "laravel/framework", - "version": "v10.40.0", + "version": "v10.48.4", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "7a9470071dac9579ebf29ad1b9d73e4b8eb586fc" + "reference": "7e0701bf59cb76a51f7c1f7bea51c0c0c29c0b72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/7a9470071dac9579ebf29ad1b9d73e4b8eb586fc", - "reference": "7a9470071dac9579ebf29ad1b9d73e4b8eb586fc", + "url": "https://api.github.com/repos/laravel/framework/zipball/7e0701bf59cb76a51f7c1f7bea51c0c0c29c0b72", + "reference": "7e0701bf59cb76a51f7c1f7bea51c0c0c29c0b72", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11", + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.3.2", @@ -2558,6 +2553,8 @@ "conflict": { "carbonphp/carbon-doctrine-types": ">=3.0", "doctrine/dbal": ">=4.0", + "mockery/mockery": "1.6.8", + "phpunit/phpunit": ">=11.0.0", "tightenco/collect": "<5.5.33" }, "provide": { @@ -2613,7 +2610,7 @@ "league/flysystem-sftp-v3": "^3.0", "mockery/mockery": "^1.5.1", "nyholm/psr7": "^1.2", - "orchestra/testbench-core": "^8.18", + "orchestra/testbench-core": "^8.23.4", "pda/pheanstalk": "^4.0", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^10.0.7", @@ -2702,20 +2699,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-01-09T11:46:47+00:00" + "time": "2024-03-21T13:36:36+00:00" }, { "name": "laravel/prompts", - "version": "v0.1.15", + "version": "v0.1.17", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "d814a27514d99b03c85aa42b22cfd946568636c1" + "reference": "8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/d814a27514d99b03c85aa42b22cfd946568636c1", - "reference": "d814a27514d99b03c85aa42b22cfd946568636c1", + "url": "https://api.github.com/repos/laravel/prompts/zipball/8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5", + "reference": "8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5", "shasum": "" }, "require": { @@ -2757,22 +2754,22 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.15" + "source": "https://github.com/laravel/prompts/tree/v0.1.17" }, - "time": "2023-12-29T22:37:42+00:00" + "time": "2024-03-13T16:05:43+00:00" }, { "name": "laravel/sanctum", - "version": "v3.3.2", + "version": "v3.3.3", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "e1a272893bec13cf135627f7e156030b3afe1e60" + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/e1a272893bec13cf135627f7e156030b3afe1e60", - "reference": "e1a272893bec13cf135627f7e156030b3afe1e60", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5", + "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5", "shasum": "" }, "require": { @@ -2825,7 +2822,7 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2023-11-03T13:42:14+00:00" + "time": "2023-12-19T18:44:48+00:00" }, { "name": "laravel/serializable-closure", @@ -2889,25 +2886,25 @@ }, { "name": "laravel/tinker", - "version": "v2.8.2", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3" + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3", - "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3", + "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe", + "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4|^0.11.1", - "symfony/var-dumper": "^4.3.4|^5.0|^6.0" + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" }, "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", @@ -2915,13 +2912,10 @@ "phpunit/phpunit": "^8.5.8|^9.3.3" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Laravel\\Tinker\\TinkerServiceProvider" @@ -2952,22 +2946,22 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.8.2" + "source": "https://github.com/laravel/tinker/tree/v2.9.0" }, - "time": "2023-08-15T14:27:00+00:00" + "time": "2024-01-04T16:10:04+00:00" }, { "name": "league/commonmark", - "version": "2.4.1", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5" + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5", - "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/91c24291965bd6d7c46c46a12ba7492f83b1cadf", + "reference": "91c24291965bd6d7c46c46a12ba7492f83b1cadf", "shasum": "" }, "require": { @@ -2980,7 +2974,7 @@ }, "require-dev": { "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", + "commonmark/cmark": "0.30.3", "commonmark/commonmark.js": "0.30.0", "composer/package-versions-deprecated": "^1.8", "embed/embed": "^4.4", @@ -2990,10 +2984,10 @@ "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "symfony/finder": "^5.3 | ^6.0 || ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", "vimeo/psalm": "^4.24.0 || ^5.0.0" }, @@ -3060,7 +3054,7 @@ "type": "tidelift" } ], - "time": "2023-08-30T16:55:00+00:00" + "time": "2024-02-02T11:59:32+00:00" }, { "name": "league/config", @@ -3146,16 +3140,16 @@ }, { "name": "league/flysystem", - "version": "3.23.0", + "version": "3.26.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc" + "reference": "072735c56cc0da00e10716dd90d5a7f7b40b36be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc", - "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/072735c56cc0da00e10716dd90d5a7f7b40b36be", + "reference": "072735c56cc0da00e10716dd90d5a7f7b40b36be", "shasum": "" }, "require": { @@ -3175,7 +3169,7 @@ "require-dev": { "async-aws/s3": "^1.5 || ^2.0", "async-aws/simple-s3": "^1.1 || ^2.0", - "aws/aws-sdk-php": "^3.220.0", + "aws/aws-sdk-php": "^3.295.10", "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", @@ -3183,10 +3177,10 @@ "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", "microsoft/azure-storage-blob": "^1.1", - "phpseclib/phpseclib": "^3.0.34", + "phpseclib/phpseclib": "^3.0.36", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", - "sabre/dav": "^4.3.1" + "sabre/dav": "^4.6.0" }, "type": "library", "autoload": { @@ -3220,7 +3214,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.23.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.26.0" }, "funding": [ { @@ -3232,24 +3226,24 @@ "type": "github" } ], - "time": "2023-12-04T10:16:17+00:00" + "time": "2024-03-25T11:49:53+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.21.0", + "version": "3.26.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "2a1784eec09ee8e190fc27b93e725bc518338929" + "reference": "885d0a758c71ae3cd6c503544573a1fdb8dc754f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/2a1784eec09ee8e190fc27b93e725bc518338929", - "reference": "2a1784eec09ee8e190fc27b93e725bc518338929", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/885d0a758c71ae3cd6c503544573a1fdb8dc754f", + "reference": "885d0a758c71ae3cd6c503544573a1fdb8dc754f", "shasum": "" }, "require": { - "aws/aws-sdk-php": "^3.220.0", + "aws/aws-sdk-php": "^3.295.10", "league/flysystem": "^3.10.0", "league/mime-type-detection": "^1.0.0", "php": "^8.0.2" @@ -3285,8 +3279,7 @@ "storage" ], "support": { - "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues", - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.21.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.26.0" }, "funding": [ { @@ -3298,20 +3291,20 @@ "type": "github" } ], - "time": "2023-11-14T11:54:45+00:00" + "time": "2024-03-24T21:11:18+00:00" }, { "name": "league/flysystem-local", - "version": "3.23.0", + "version": "3.25.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "5cf046ba5f059460e86a997c504dd781a39a109b" + "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/5cf046ba5f059460e86a997c504dd781a39a109b", - "reference": "5cf046ba5f059460e86a997c504dd781a39a109b", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/61a6a90d6e999e4ddd9ce5adb356de0939060b92", + "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92", "shasum": "" }, "require": { @@ -3345,8 +3338,7 @@ "local" ], "support": { - "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.25.1" }, "funding": [ { @@ -3358,7 +3350,7 @@ "type": "github" } ], - "time": "2023-12-04T10:14:46+00:00" + "time": "2024-03-15T19:58:44+00:00" }, { "name": "league/glide", @@ -3427,16 +3419,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.14.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "b6a5854368533df0295c5761a0253656a2e52d9e" + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e", - "reference": "b6a5854368533df0295c5761a0253656a2e52d9e", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "" }, "require": { @@ -3467,7 +3459,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" }, "funding": [ { @@ -3479,7 +3471,7 @@ "type": "tidelift" } ], - "time": "2023-10-17T14:13:20+00:00" + "time": "2024-01-28T23:22:08+00:00" }, { "name": "league/uri-parser", @@ -3626,28 +3618,29 @@ }, { "name": "maatwebsite/excel", - "version": "3.1.50", + "version": "3.1.55", "source": { "type": "git", "url": "https://github.com/SpartnerNL/Laravel-Excel.git", - "reference": "d79e66391aa306983bb7e234503f5605c3e33348" + "reference": "6d9d791dcdb01a9b6fd6f48d46f0d5fff86e6260" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/d79e66391aa306983bb7e234503f5605c3e33348", - "reference": "d79e66391aa306983bb7e234503f5605c3e33348", + "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/6d9d791dcdb01a9b6fd6f48d46f0d5fff86e6260", + "reference": "6d9d791dcdb01a9b6fd6f48d46f0d5fff86e6260", "shasum": "" }, "require": { "composer/semver": "^3.3", "ext-json": "*", - "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0", + "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0||^11.0", "php": "^7.0||^8.0", "phpoffice/phpspreadsheet": "^1.18", "psr/simple-cache": "^1.0||^2.0||^3.0" }, "require-dev": { - "orchestra/testbench": "^6.0||^7.0||^8.0", + "laravel/scout": "^7.0||^8.0||^9.0||^10.0", + "orchestra/testbench": "^6.0||^7.0||^8.0||^9.0", "predis/predis": "^1.1" }, "type": "library", @@ -3690,7 +3683,7 @@ ], "support": { "issues": "https://github.com/SpartnerNL/Laravel-Excel/issues", - "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.50" + "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.55" }, "funding": [ { @@ -3702,7 +3695,7 @@ "type": "github" } ], - "time": "2023-11-06T11:29:48+00:00" + "time": "2024-02-20T08:27:10+00:00" }, { "name": "maennchen/zipstream-php", @@ -4128,16 +4121,16 @@ }, { "name": "nesbot/carbon", - "version": "2.72.1", + "version": "2.72.3", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78" + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2b3b3db0a2d0556a177392ff1a3bf5608fa09f78", - "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/0c6fd108360c562f6e4fd1dedb8233b423e91c83", + "reference": "0c6fd108360c562f6e4fd1dedb8233b423e91c83", "shasum": "" }, "require": { @@ -4231,35 +4224,35 @@ "type": "tidelift" } ], - "time": "2023-12-08T23:47:49+00:00" + "time": "2024-01-25T10:35:09+00:00" }, { "name": "nette/schema", - "version": "v1.2.5", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a" + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a", - "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a", + "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", + "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188", "shasum": "" }, "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": "7.1 - 8.3" + "nette/utils": "^4.0", + "php": "8.1 - 8.3" }, "require-dev": { - "nette/tester": "^2.3 || ^2.4", + "nette/tester": "^2.4", "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" + "tracy/tracy": "^2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -4291,22 +4284,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.5" + "source": "https://github.com/nette/schema/tree/v1.3.0" }, - "time": "2023-10-05T20:37:59+00:00" + "time": "2023-12-11T11:54:22+00:00" }, { "name": "nette/utils", - "version": "v4.0.3", + "version": "v4.0.4", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015" + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015", - "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015", + "url": "https://api.github.com/repos/nette/utils/zipball/d3ad0aa3b9f934602cb3e3902ebccf10be34d218", + "reference": "d3ad0aa3b9f934602cb3e3902ebccf10be34d218", "shasum": "" }, "require": { @@ -4377,27 +4370,27 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.3" + "source": "https://github.com/nette/utils/tree/v4.0.4" }, - "time": "2023-10-29T21:02:13+00:00" + "time": "2024-01-17T16:50:36+00:00" }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", @@ -4433,9 +4426,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2024-03-17T08:10:35+00:00" }, { "name": "nunomaduro/termwind", @@ -4850,16 +4843,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.3", + "version": "1.27.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "12f01d214f1c73b9c91fdb3b1c415e4c70652083" + "reference": "86e4d5a4b036f8f0be1464522f4c6b584c452757" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/12f01d214f1c73b9c91fdb3b1c415e4c70652083", - "reference": "12f01d214f1c73b9c91fdb3b1c415e4c70652083", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/86e4d5a4b036f8f0be1464522f4c6b584c452757", + "reference": "86e4d5a4b036f8f0be1464522f4c6b584c452757", "shasum": "" }, "require": { @@ -4891,9 +4884,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.24.3" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.27.0" }, - "time": "2023-11-18T20:15:32+00:00" + "time": "2024-03-21T13:14:53+00:00" }, { "name": "pragmarx/google2fa", @@ -5361,25 +5354,25 @@ }, { "name": "psy/psysh", - "version": "v0.11.22", + "version": "v0.12.2", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b" + "reference": "9185c66c2165bbf4d71de78a69dccf4974f9538d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b", - "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/9185c66c2165bbf4d71de78a69dccf4974f9538d", + "reference": "9185c66c2165bbf4d71de78a69dccf4974f9538d", "shasum": "" }, "require": { "ext-json": "*", "ext-tokenizer": "*", - "nikic/php-parser": "^4.0 || ^3.1", - "php": "^8.0 || ^7.0.8", - "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4", - "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4" + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" }, "conflict": { "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" @@ -5390,8 +5383,7 @@ "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history." + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ "bin/psysh" @@ -5399,7 +5391,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-0.11": "0.11.x-dev" + "dev-main": "0.12.x-dev" }, "bamarni-bin": { "bin-links": false, @@ -5435,9 +5427,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.22" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.2" }, - "time": "2023-10-14T21:56:36+00:00" + "time": "2024-03-17T01:53:00+00:00" }, { "name": "pxlrbt/filament-excel", @@ -5811,16 +5803,16 @@ }, { "name": "sentry/sentry", - "version": "4.3.1", + "version": "4.6.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "cd89f230bda0833cb9992ebe9a1b7d24d6ee245b" + "reference": "5a94184175e5830b589bf923da8c9c3af2c0f409" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/cd89f230bda0833cb9992ebe9a1b7d24d6ee245b", - "reference": "cd89f230bda0833cb9992ebe9a1b7d24d6ee245b", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/5a94184175e5830b589bf923da8c9c3af2c0f409", + "reference": "5a94184175e5830b589bf923da8c9c3af2c0f409", "shasum": "" }, "require": { @@ -5884,7 +5876,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.3.1" + "source": "https://github.com/getsentry/sentry-php/tree/4.6.1" }, "funding": [ { @@ -5896,37 +5888,37 @@ "type": "custom" } ], - "time": "2023-12-22T18:46:49+00:00" + "time": "2024-03-08T08:18:09+00:00" }, { "name": "sentry/sentry-laravel", - "version": "4.1.1", + "version": "4.4.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-laravel.git", - "reference": "792944c1d0b7342d1635ac6d72fbdc2f32486310" + "reference": "f375fed71f2d8ec164dd392c43b0cf716bf7725a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/792944c1d0b7342d1635ac6d72fbdc2f32486310", - "reference": "792944c1d0b7342d1635ac6d72fbdc2f32486310", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/f375fed71f2d8ec164dd392c43b0cf716bf7725a", + "reference": "f375fed71f2d8ec164dd392c43b0cf716bf7725a", "shasum": "" }, "require": { - "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0", + "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0", "nyholm/psr7": "^1.0", "php": "^7.2 | ^8.0", - "sentry/sentry": "^4.0", - "symfony/psr-http-message-bridge": "^1.0 | ^2.0" + "sentry/sentry": "^4.5", + "symfony/psr-http-message-bridge": "^1.0 | ^2.0 | ^6.0 | ^7.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.11", "guzzlehttp/guzzle": "^7.2", - "laravel/folio": "^1.0", - "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0", + "laravel/folio": "^1.1", + "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0", "livewire/livewire": "^2.0 | ^3.0", "mockery/mockery": "^1.3", - "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0", + "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0 | ^9.0", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^8.4 | ^9.3 | ^10.4" }, @@ -5973,7 +5965,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-laravel/issues", - "source": "https://github.com/getsentry/sentry-laravel/tree/4.1.1" + "source": "https://github.com/getsentry/sentry-laravel/tree/4.4.0" }, "funding": [ { @@ -5985,7 +5977,7 @@ "type": "custom" } ], - "time": "2023-12-12T22:17:13+00:00" + "time": "2024-03-25T13:06:38+00:00" }, { "name": "spatie/image", @@ -6287,20 +6279,20 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.16.1", + "version": "1.16.4", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d" + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/cc7c991555a37f9fa6b814aa03af73f88026a83d", - "reference": "cc7c991555a37f9fa6b814aa03af73f88026a83d", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", "shasum": "" }, "require": { - "illuminate/contracts": "^9.28|^10.0", + "illuminate/contracts": "^9.28|^10.0|^11.0", "php": "^8.0" }, "require-dev": { @@ -6335,7 +6327,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.1" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.4" }, "funding": [ { @@ -6343,20 +6335,20 @@ "type": "github" } ], - "time": "2023-08-23T09:04:39+00:00" + "time": "2024-03-20T07:29:11+00:00" }, { "name": "spatie/temporary-directory", - "version": "2.2.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/spatie/temporary-directory.git", - "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c" + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/efc258c9f4da28f0c7661765b8393e4ccee3d19c", - "reference": "efc258c9f4da28f0c7661765b8393e4ccee3d19c", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", + "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a", "shasum": "" }, "require": { @@ -6392,7 +6384,7 @@ ], "support": { "issues": "https://github.com/spatie/temporary-directory/issues", - "source": "https://github.com/spatie/temporary-directory/tree/2.2.0" + "source": "https://github.com/spatie/temporary-directory/tree/2.2.1" }, "funding": [ { @@ -6404,20 +6396,20 @@ "type": "github" } ], - "time": "2023-09-25T07:13:36+00:00" + "time": "2023-12-25T11:46:58+00:00" }, { "name": "symfony/console", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625" + "reference": "0d9e4eb5ad413075624378f474c4167ea202de78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0254811a143e6bc6c8deea08b589a7e68a37f625", - "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625", + "url": "https://api.github.com/repos/symfony/console/zipball/0d9e4eb5ad413075624378f474c4167ea202de78", + "reference": "0d9e4eb5ad413075624378f474c4167ea202de78", "shasum": "" }, "require": { @@ -6482,7 +6474,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.2" + "source": "https://github.com/symfony/console/tree/v6.4.4" }, "funding": [ { @@ -6498,20 +6490,20 @@ "type": "tidelift" } ], - "time": "2023-12-10T16:15:48+00:00" + "time": "2024-02-22T20:27:10+00:00" }, { "name": "symfony/css-selector", - "version": "v7.0.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e" + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/bb51d46e53ef8d50d523f0c5faedba056a27943e", - "reference": "bb51d46e53ef8d50d523f0c5faedba056a27943e", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ec60a4edf94e63b0556b6a0888548bb400a3a3be", + "reference": "ec60a4edf94e63b0556b6a0888548bb400a3a3be", "shasum": "" }, "require": { @@ -6547,7 +6539,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.0.0" + "source": "https://github.com/symfony/css-selector/tree/v7.0.3" }, "funding": [ { @@ -6563,7 +6555,7 @@ "type": "tidelift" } ], - "time": "2023-10-31T17:59:56+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6634,16 +6626,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.0", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788" + "reference": "c725219bdf2afc59423c32793d5019d2a904e13a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/c873490a1c97b3a0a4838afc36ff36c112d02788", - "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c725219bdf2afc59423c32793d5019d2a904e13a", + "reference": "c725219bdf2afc59423c32793d5019d2a904e13a", "shasum": "" }, "require": { @@ -6689,7 +6681,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.0" + "source": "https://github.com/symfony/error-handler/tree/v6.4.4" }, "funding": [ { @@ -6705,20 +6697,20 @@ "type": "tidelift" } ], - "time": "2023-10-18T09:43:34+00:00" + "time": "2024-02-22T20:27:10+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.2", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a" + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/098b62ae81fdd6cbf941f355059f617db28f4f9a", - "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", + "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", "shasum": "" }, "require": { @@ -6769,7 +6761,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.2" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.3" }, "funding": [ { @@ -6785,7 +6777,7 @@ "type": "tidelift" } ], - "time": "2023-12-27T22:24:19+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6929,16 +6921,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271" + "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/172d807f9ef3fc3fbed8377cc57c20d389269271", - "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ebc713bc6e6f4b53f46539fc158be85dfcd77304", + "reference": "ebc713bc6e6f4b53f46539fc158be85dfcd77304", "shasum": "" }, "require": { @@ -6986,7 +6978,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.2" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.4" }, "funding": [ { @@ -7002,20 +6994,20 @@ "type": "tidelift" } ], - "time": "2023-12-27T22:16:42+00:00" + "time": "2024-02-08T15:01:18+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.2", + "version": "v6.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "13e8387320b5942d0dc408440c888e2d526efef4" + "reference": "f6947cb939d8efee137797382cb4db1af653ef75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/13e8387320b5942d0dc408440c888e2d526efef4", - "reference": "13e8387320b5942d0dc408440c888e2d526efef4", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f6947cb939d8efee137797382cb4db1af653ef75", + "reference": "f6947cb939d8efee137797382cb4db1af653ef75", "shasum": "" }, "require": { @@ -7064,7 +7056,7 @@ "symfony/process": "^5.4|^6.0|^7.0", "symfony/property-access": "^5.4.5|^6.0.5|^7.0", "symfony/routing": "^5.4|^6.0|^7.0", - "symfony/serializer": "^6.3|^7.0", + "symfony/serializer": "^6.4.4|^7.0.4", "symfony/stopwatch": "^5.4|^6.0|^7.0", "symfony/translation": "^5.4|^6.0|^7.0", "symfony/translation-contracts": "^2.5|^3", @@ -7099,7 +7091,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.2" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.5" }, "funding": [ { @@ -7115,20 +7107,20 @@ "type": "tidelift" } ], - "time": "2023-12-30T15:31:44+00:00" + "time": "2024-03-04T21:00:47+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "6da89e5c9202f129717a770a03183fb140720168" + "reference": "791c5d31a8204cf3db0c66faab70282307f4376b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/6da89e5c9202f129717a770a03183fb140720168", - "reference": "6da89e5c9202f129717a770a03183fb140720168", + "url": "https://api.github.com/repos/symfony/mailer/zipball/791c5d31a8204cf3db0c66faab70282307f4376b", + "reference": "791c5d31a8204cf3db0c66faab70282307f4376b", "shasum": "" }, "require": { @@ -7179,7 +7171,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.2" + "source": "https://github.com/symfony/mailer/tree/v6.4.4" }, "funding": [ { @@ -7195,20 +7187,20 @@ "type": "tidelift" } ], - "time": "2023-12-19T09:12:31+00:00" + "time": "2024-02-03T21:33:47+00:00" }, { "name": "symfony/mime", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205" + "reference": "5017e0a9398c77090b7694be46f20eb796262a34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/ca4f58b2ef4baa8f6cecbeca2573f88cd577d205", - "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205", + "url": "https://api.github.com/repos/symfony/mime/zipball/5017e0a9398c77090b7694be46f20eb796262a34", + "reference": "5017e0a9398c77090b7694be46f20eb796262a34", "shasum": "" }, "require": { @@ -7263,7 +7255,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.0" + "source": "https://github.com/symfony/mime/tree/v6.4.3" }, "funding": [ { @@ -7279,7 +7271,7 @@ "type": "tidelift" } ], - "time": "2023-10-17T11:49:05+00:00" + "time": "2024-01-30T08:32:12+00:00" }, { "name": "symfony/options-resolver", @@ -7350,16 +7342,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", - "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { @@ -7373,9 +7365,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7412,7 +7401,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" }, "funding": [ { @@ -7428,20 +7417,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "875e90aeea2777b6f135677f618529449334a612" + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", - "reference": "875e90aeea2777b6f135677f618529449334a612", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { @@ -7452,9 +7441,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7493,7 +7479,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { @@ -7509,20 +7495,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", - "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", "shasum": "" }, "require": { @@ -7535,9 +7521,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7580,7 +7563,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" }, "funding": [ { @@ -7596,20 +7579,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:30:37+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", - "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", "shasum": "" }, "require": { @@ -7620,9 +7603,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7664,7 +7644,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" }, "funding": [ { @@ -7680,20 +7660,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "42292d99c55abe617799667f454222c54c60e229" + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", - "reference": "42292d99c55abe617799667f454222c54c60e229", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", "shasum": "" }, "require": { @@ -7707,9 +7687,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7747,7 +7724,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" }, "funding": [ { @@ -7763,20 +7740,20 @@ "type": "tidelift" } ], - "time": "2023-07-28T09:04:16+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", - "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", "shasum": "" }, "require": { @@ -7784,9 +7761,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7823,7 +7797,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" }, "funding": [ { @@ -7839,20 +7813,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", - "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { @@ -7860,9 +7834,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7906,7 +7877,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" }, "funding": [ { @@ -7922,20 +7893,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", - "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff", + "reference": "86fcae159633351e5fd145d1c47de6c528f8caff", "shasum": "" }, "require": { @@ -7944,9 +7915,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -7986,7 +7954,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0" }, "funding": [ { @@ -8002,20 +7970,20 @@ "type": "tidelift" } ], - "time": "2023-08-16T06:22:46+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e" + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/9c44518a5aff8da565c8a55dbe85d2769e6f630e", - "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853", + "reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853", "shasum": "" }, "require": { @@ -8029,9 +7997,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -8068,7 +8033,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0" }, "funding": [ { @@ -8084,20 +8049,20 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/process", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241" + "reference": "710e27879e9be3395de2b98da3f52a946039f297" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/c4b1ef0bc80533d87a2e969806172f1c2a980241", - "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241", + "url": "https://api.github.com/repos/symfony/process/zipball/710e27879e9be3395de2b98da3f52a946039f297", + "reference": "710e27879e9be3395de2b98da3f52a946039f297", "shasum": "" }, "require": { @@ -8129,7 +8094,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.2" + "source": "https://github.com/symfony/process/tree/v6.4.4" }, "funding": [ { @@ -8145,47 +8110,42 @@ "type": "tidelift" } ], - "time": "2023-12-22T16:42:54+00:00" + "time": "2024-02-20T12:31:00+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v2.3.1", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e" + "reference": "d9fadaf9541d7c01c307e48905d7ce1dbee6bf38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e", - "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d9fadaf9541d7c01c307e48905d7ce1dbee6bf38", + "reference": "d9fadaf9541d7c01c307e48905d7ce1dbee6bf38", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/http-message": "^1.0 || ^2.0", - "symfony/deprecation-contracts": "^2.5 || ^3.0", - "symfony/http-foundation": "^5.4 || ^6.0" + "php": ">=8.2", + "psr/http-message": "^1.0|^2.0", + "symfony/http-foundation": "^6.4|^7.0" + }, + "conflict": { + "php-http/discovery": "<1.15", + "symfony/http-kernel": "<6.4" }, "require-dev": { "nyholm/psr7": "^1.1", - "psr/log": "^1.1 || ^2 || ^3", - "symfony/browser-kit": "^5.4 || ^6.0", - "symfony/config": "^5.4 || ^6.0", - "symfony/event-dispatcher": "^5.4 || ^6.0", - "symfony/framework-bundle": "^5.4 || ^6.0", - "symfony/http-kernel": "^5.4 || ^6.0", - "symfony/phpunit-bridge": "^6.2" - }, - "suggest": { - "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" + "php-http/discovery": "^1.15", + "psr/log": "^1.1.4|^2|^3", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/framework-bundle": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0" }, "type": "symfony-bridge", - "extra": { - "branch-alias": { - "dev-main": "2.3-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Bridge\\PsrHttpMessage\\": "" @@ -8205,11 +8165,11 @@ }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "PSR HTTP message bridge", - "homepage": "http://symfony.com", + "homepage": "https://symfony.com", "keywords": [ "http", "http-message", @@ -8217,8 +8177,7 @@ "psr-7" ], "support": { - "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.0.3" }, "funding": [ { @@ -8234,20 +8193,20 @@ "type": "tidelift" } ], - "time": "2023-07-26T11:53:26+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/routing", - "version": "v6.4.2", + "version": "v6.4.5", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "98eab13a07fddc85766f1756129c69f207ffbc21" + "reference": "7fe30068e207d9c31c0138501ab40358eb2d49a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/98eab13a07fddc85766f1756129c69f207ffbc21", - "reference": "98eab13a07fddc85766f1756129c69f207ffbc21", + "url": "https://api.github.com/repos/symfony/routing/zipball/7fe30068e207d9c31c0138501ab40358eb2d49a4", + "reference": "7fe30068e207d9c31c0138501ab40358eb2d49a4", "shasum": "" }, "require": { @@ -8301,7 +8260,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.2" + "source": "https://github.com/symfony/routing/tree/v6.4.5" }, "funding": [ { @@ -8317,7 +8276,7 @@ "type": "tidelift" } ], - "time": "2023-12-29T15:34:34+00:00" + "time": "2024-02-27T12:33:30+00:00" }, { "name": "symfony/service-contracts", @@ -8403,16 +8362,16 @@ }, { "name": "symfony/string", - "version": "v7.0.2", + "version": "v7.0.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5" + "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/cc78f14f91f5e53b42044d0620961c48028ff9f5", - "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5", + "url": "https://api.github.com/repos/symfony/string/zipball/f5832521b998b0bec40bee688ad5de98d4cf111b", + "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b", "shasum": "" }, "require": { @@ -8469,7 +8428,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.2" + "source": "https://github.com/symfony/string/tree/v7.0.4" }, "funding": [ { @@ -8485,20 +8444,20 @@ "type": "tidelift" } ], - "time": "2023-12-10T16:54:46+00:00" + "time": "2024-02-01T13:17:36+00:00" }, { "name": "symfony/translation", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681" + "reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", - "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681", + "url": "https://api.github.com/repos/symfony/translation/zipball/bce6a5a78e94566641b2594d17e48b0da3184a8e", + "reference": "bce6a5a78e94566641b2594d17e48b0da3184a8e", "shasum": "" }, "require": { @@ -8521,7 +8480,7 @@ "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^4.13", + "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", "symfony/config": "^5.4|^6.0|^7.0", "symfony/console": "^5.4|^6.0|^7.0", @@ -8564,7 +8523,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.2" + "source": "https://github.com/symfony/translation/tree/v6.4.4" }, "funding": [ { @@ -8580,7 +8539,7 @@ "type": "tidelift" } ], - "time": "2023-12-18T09:25:29+00:00" + "time": "2024-02-20T13:16:58+00:00" }, { "name": "symfony/translation-contracts", @@ -8662,16 +8621,16 @@ }, { "name": "symfony/uid", - "version": "v6.4.0", + "version": "v6.4.3", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92" + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/8092dd1b1a41372110d06374f99ee62f7f0b9a92", - "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92", + "url": "https://api.github.com/repos/symfony/uid/zipball/1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", + "reference": "1d31267211cc3a2fff32bcfc7c1818dac41b6fc0", "shasum": "" }, "require": { @@ -8716,7 +8675,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v6.4.0" + "source": "https://github.com/symfony/uid/tree/v6.4.3" }, "funding": [ { @@ -8732,20 +8691,20 @@ "type": "tidelift" } ], - "time": "2023-10-31T08:18:17+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.2", + "version": "v6.4.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f" + "reference": "b439823f04c98b84d4366c79507e9da6230944b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/68d6573ec98715ddcae5a0a85bee3c1c27a4c33f", - "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b439823f04c98b84d4366c79507e9da6230944b1", + "reference": "b439823f04c98b84d4366c79507e9da6230944b1", "shasum": "" }, "require": { @@ -8801,7 +8760,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.2" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.4" }, "funding": [ { @@ -8817,7 +8776,7 @@ "type": "tidelift" } ], - "time": "2023-12-28T19:16:56+00:00" + "time": "2024-02-15T11:23:52+00:00" }, { "name": "tgalopin/html-sanitizer", @@ -9187,36 +9146,36 @@ }, { "name": "barryvdh/laravel-debugbar", - "version": "v3.9.2", + "version": "v3.12.4", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "bfd0131c146973cab164e50f5cdd8a67cc60cab1" + "reference": "e7a9a217512d8f1d07448fd241ce2ac0922ddc2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/bfd0131c146973cab164e50f5cdd8a67cc60cab1", - "reference": "bfd0131c146973cab164e50f5cdd8a67cc60cab1", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/e7a9a217512d8f1d07448fd241ce2ac0922ddc2c", + "reference": "e7a9a217512d8f1d07448fd241ce2ac0922ddc2c", "shasum": "" }, "require": { - "illuminate/routing": "^9|^10", - "illuminate/session": "^9|^10", - "illuminate/support": "^9|^10", - "maximebf/debugbar": "^1.18.2", + "illuminate/routing": "^9|^10|^11", + "illuminate/session": "^9|^10|^11", + "illuminate/support": "^9|^10|^11", + "maximebf/debugbar": "~1.21.0", "php": "^8.0", - "symfony/finder": "^6" + "symfony/finder": "^6|^7" }, "require-dev": { "mockery/mockery": "^1.3.3", - "orchestra/testbench-dusk": "^5|^6|^7|^8", - "phpunit/phpunit": "^8.5.30|^9.0", + "orchestra/testbench-dusk": "^5|^6|^7|^8|^9", + "phpunit/phpunit": "^9.6|^10.5", "squizlabs/php_codesniffer": "^3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.8-dev" + "dev-master": "3.10-dev" }, "laravel": { "providers": [ @@ -9255,7 +9214,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.9.2" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.12.4" }, "funding": [ { @@ -9267,44 +9226,44 @@ "type": "github" } ], - "time": "2023-08-25T18:43:57+00:00" + "time": "2024-04-01T09:14:15+00:00" }, { "name": "barryvdh/laravel-ide-helper", - "version": "v2.13.0", + "version": "v2.15.1", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "81d5b223ff067a1f38e14c100997e153b837fe4a" + "reference": "77831852bb7bc54f287246d32eb91274eaf87f8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/81d5b223ff067a1f38e14c100997e153b837fe4a", - "reference": "81d5b223ff067a1f38e14c100997e153b837fe4a", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/77831852bb7bc54f287246d32eb91274eaf87f8b", + "reference": "77831852bb7bc54f287246d32eb91274eaf87f8b", "shasum": "" }, "require": { "barryvdh/reflection-docblock": "^2.0.6", "composer/class-map-generator": "^1.0", - "doctrine/dbal": "^2.6 || ^3", + "doctrine/dbal": "^2.6 || ^3.1.4", "ext-json": "*", - "illuminate/console": "^8 || ^9 || ^10", - "illuminate/filesystem": "^8 || ^9 || ^10", - "illuminate/support": "^8 || ^9 || ^10", - "nikic/php-parser": "^4.7", - "php": "^7.3 || ^8.0", + "illuminate/console": "^9 || ^10", + "illuminate/filesystem": "^9 || ^10", + "illuminate/support": "^9 || ^10", + "nikic/php-parser": "^4.18 || ^5", + "php": "^8.0", "phpdocumentor/type-resolver": "^1.1.0" }, "require-dev": { "ext-pdo_sqlite": "*", - "friendsofphp/php-cs-fixer": "^2", - "illuminate/config": "^8 || ^9 || ^10", - "illuminate/view": "^8 || ^9 || ^10", + "friendsofphp/php-cs-fixer": "^3", + "illuminate/config": "^9 || ^10", + "illuminate/view": "^9 || ^10", "mockery/mockery": "^1.4", - "orchestra/testbench": "^6 || ^7 || ^8", - "phpunit/phpunit": "^8.5 || ^9", - "spatie/phpunit-snapshot-assertions": "^3 || ^4", - "vimeo/psalm": "^3.12" + "orchestra/testbench": "^7 || ^8", + "phpunit/phpunit": "^9", + "spatie/phpunit-snapshot-assertions": "^4", + "vimeo/psalm": "^5.4" }, "suggest": { "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10)." @@ -9312,7 +9271,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.12-dev" + "dev-master": "2.15-dev" }, "laravel": { "providers": [ @@ -9349,7 +9308,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.13.0" + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.15.1" }, "funding": [ { @@ -9361,7 +9320,7 @@ "type": "github" } ], - "time": "2023-02-04T13:56:40+00:00" + "time": "2024-02-15T14:23:20+00:00" }, { "name": "barryvdh/reflection-docblock", @@ -9415,18 +9374,112 @@ }, "time": "2023-06-14T05:06:27+00:00" }, + { + "name": "brianium/paratest", + "version": "v7.4.3", + "source": { + "type": "git", + "url": "https://github.com/paratestphp/paratest.git", + "reference": "64fcfd0e28a6b8078a19dbf9127be2ee645b92ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/64fcfd0e28a6b8078a19dbf9127be2ee645b92ec", + "reference": "64fcfd0e28a6b8078a19dbf9127be2ee645b92ec", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-simplexml": "*", + "fidry/cpu-core-counter": "^1.1.0", + "jean85/pretty-package-versions": "^2.0.5", + "php": "~8.2.0 || ~8.3.0", + "phpunit/php-code-coverage": "^10.1.11 || ^11.0.0", + "phpunit/php-file-iterator": "^4.1.0 || ^5.0.0", + "phpunit/php-timer": "^6.0.0 || ^7.0.0", + "phpunit/phpunit": "^10.5.9 || ^11.0.3", + "sebastian/environment": "^6.0.1 || ^7.0.0", + "symfony/console": "^6.4.3 || ^7.0.3", + "symfony/process": "^6.4.3 || ^7.0.3" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0.0", + "ext-pcov": "*", + "ext-posix": "*", + "phpstan/phpstan": "^1.10.58", + "phpstan/phpstan-deprecation-rules": "^1.1.4", + "phpstan/phpstan-phpunit": "^1.3.15", + "phpstan/phpstan-strict-rules": "^1.5.2", + "squizlabs/php_codesniffer": "^3.9.0", + "symfony/filesystem": "^6.4.3 || ^7.0.3" + }, + "bin": [ + "bin/paratest", + "bin/paratest.bat", + "bin/paratest_for_phpstorm" + ], + "type": "library", + "autoload": { + "psr-4": { + "ParaTest\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Scaturro", + "email": "scaturrob@gmail.com", + "role": "Developer" + }, + { + "name": "Filippo Tessarotto", + "email": "zoeslam@gmail.com", + "role": "Developer" + } + ], + "description": "Parallel testing for PHP", + "homepage": "https://github.com/paratestphp/paratest", + "keywords": [ + "concurrent", + "parallel", + "phpunit", + "testing" + ], + "support": { + "issues": "https://github.com/paratestphp/paratest/issues", + "source": "https://github.com/paratestphp/paratest/tree/v7.4.3" + }, + "funding": [ + { + "url": "https://github.com/sponsors/Slamdunk", + "type": "github" + }, + { + "url": "https://paypal.me/filippotessarotto", + "type": "paypal" + } + ], + "time": "2024-02-20T07:24:02+00:00" + }, { "name": "composer/class-map-generator", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" + "reference": "8286a62d243312ed99b3eee20d5005c961adb311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8286a62d243312ed99b3eee20d5005c961adb311", + "reference": "8286a62d243312ed99b3eee20d5005c961adb311", "shasum": "" }, "require": { @@ -9470,7 +9523,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.1.0" + "source": "https://github.com/composer/class-map-generator/tree/1.1.1" }, "funding": [ { @@ -9486,20 +9539,20 @@ "type": "tidelift" } ], - "time": "2023-06-30T13:58:57+00:00" + "time": "2024-03-15T12:53:41+00:00" }, { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -9541,7 +9594,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.1.3" }, "funding": [ { @@ -9557,20 +9610,20 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" + "time": "2024-03-19T10:26:25+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", "shasum": "" }, "require": { @@ -9581,7 +9634,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -9605,9 +9658,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" }, "funding": [ { @@ -9623,7 +9676,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-03-26T18:29:49+00:00" }, { "name": "doctrine/cache", @@ -9720,16 +9773,16 @@ }, { "name": "doctrine/dbal", - "version": "3.7.2", + "version": "3.8.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2" + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/0ac3c270590e54910715e9a1a044cc368df282b2", - "reference": "0ac3c270590e54910715e9a1a044cc368df282b2", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/db922ba9436b7b18a23d1653a0b41ff2369ca41c", + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c", "shasum": "" }, "require": { @@ -9745,14 +9798,14 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.42", + "phpstan/phpstan": "1.10.58", "phpstan/phpstan-strict-rules": "^1.5", - "phpunit/phpunit": "9.6.13", + "phpunit/phpunit": "9.6.16", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.7.2", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", + "squizlabs/php_codesniffer": "3.9.0", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" }, "suggest": { @@ -9813,7 +9866,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.7.2" + "source": "https://github.com/doctrine/dbal/tree/3.8.3" }, "funding": [ { @@ -9829,20 +9882,20 @@ "type": "tidelift" } ], - "time": "2023-11-19T08:06:58+00:00" + "time": "2024-03-03T15:55:06+00:00" }, { "name": "doctrine/deprecations", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { @@ -9874,9 +9927,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" }, - "time": "2023-09-27T20:04:15+00:00" + "time": "2024-01-30T19:34:25+00:00" }, { "name": "doctrine/event-manager", @@ -9971,29 +10024,29 @@ }, { "name": "dragon-code/contracts", - "version": "v2.21.0", + "version": "2.23.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/contracts.git", - "reference": "c69d7183a4ec35892ca208b2863d3ccad9465d7b" + "reference": "44dbad923f152e0dc2699fbac2d33b65dd6a8f7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/c69d7183a4ec35892ca208b2863d3ccad9465d7b", - "reference": "c69d7183a4ec35892ca208b2863d3ccad9465d7b", + "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/44dbad923f152e0dc2699fbac2d33b65dd6a8f7d", + "reference": "44dbad923f152e0dc2699fbac2d33b65dd6a8f7d", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-message": "^1.0.1 || ^2.0", - "symfony/http-kernel": "^4.0 || ^5.0 || ^6.0", + "symfony/http-kernel": "^4.0 || ^5.0 || ^6.0 || ^7.0", "symfony/polyfill-php80": "^1.23" }, "conflict": { "andrey-helldar/contracts": "*" }, "require-dev": { - "illuminate/database": "^10.0", + "illuminate/database": "^10.0 || ^11.0", "phpdocumentor/reflection-docblock": "^5.0" }, "type": "library", @@ -10010,7 +10063,7 @@ { "name": "Andrey Helldar", "email": "helldar@dragon-code.pro", - "homepage": "https://github.com/andrey-helldar" + "homepage": "https://dragon-code.pro" } ], "description": "A set of contracts for any project", @@ -10030,20 +10083,12 @@ "url": "https://www.donationalerts.com/r/dragon_code", "type": "donationalerts" }, - { - "url": "https://github.com/sponsors/TheDragonCode", - "type": "github" - }, - { - "url": "https://opencollective.com/dragon-code", - "type": "open_collective" - }, { "url": "https://yoomoney.ru/to/410012608840929", "type": "yoomoney" } ], - "time": "2023-11-14T20:01:25+00:00" + "time": "2024-03-11T20:15:12+00:00" }, { "name": "dragon-code/pretty-array", @@ -10124,26 +10169,26 @@ }, { "name": "dragon-code/support", - "version": "v6.11.3", + "version": "6.13.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/support.git", - "reference": "3dbf1715e83e216ae1fea31eecc022829dc864df" + "reference": "a6f0468e32581efbccb23190b6d5c880cc519747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/support/zipball/3dbf1715e83e216ae1fea31eecc022829dc864df", - "reference": "3dbf1715e83e216ae1fea31eecc022829dc864df", + "url": "https://api.github.com/repos/TheDragonCode/support/zipball/a6f0468e32581efbccb23190b6d5c880cc519747", + "reference": "a6f0468e32581efbccb23190b6d5c880cc519747", "shasum": "" }, "require": { - "dragon-code/contracts": "^2.19.1", + "dragon-code/contracts": "^2.22.0", "ext-bcmath": "*", "ext-ctype": "*", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", - "php": "^8.0", + "php": "^8.1", "psr/http-message": "^1.0.1 || ^2.0", "symfony/polyfill-php81": "^1.25", "voku/portable-ascii": "^1.4.8 || ^2.0.1" @@ -10152,9 +10197,9 @@ "andrey-helldar/support": "*" }, "require-dev": { - "illuminate/contracts": "^9.0 || ^10.0", - "phpunit/phpunit": "^9.6", - "symfony/var-dumper": "^6.0" + "illuminate/contracts": "^9.0 || ^10.0 || ^11.0", + "phpunit/phpunit": "^9.6 || ^11.0", + "symfony/var-dumper": "^6.0 || ^7.0" }, "suggest": { "dragon-code/laravel-support": "Various helper files for the Laravel and Lumen frameworks", @@ -10184,7 +10229,7 @@ { "name": "Andrey Helldar", "email": "helldar@dragon-code.pro", - "homepage": "https://github.com/andrey-helldar" + "homepage": "https://dragon-code.pro" } ], "description": "Support package is a collection of helpers and tools for any project.", @@ -10214,33 +10259,25 @@ "url": "https://www.donationalerts.com/r/dragon_code", "type": "donationalerts" }, - { - "url": "https://github.com/sponsors/TheDragonCode", - "type": "github" - }, - { - "url": "https://opencollective.com/dragon-code", - "type": "open_collective" - }, { "url": "https://yoomoney.ru/to/410012608840929", "type": "yoomoney" } ], - "time": "2023-08-03T09:43:52+00:00" + "time": "2024-03-12T20:45:00+00:00" }, { "name": "fakerphp/faker", - "version": "v1.23.0", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01" + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", - "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", "shasum": "" }, "require": { @@ -10266,11 +10303,6 @@ "ext-mbstring": "Required for multibyte Unicode string functionality." }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.21-dev" - } - }, "autoload": { "psr-4": { "Faker\\": "src/Faker/" @@ -10293,9 +10325,70 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" + }, + "time": "2024-01-02T13:46:09+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" }, - "time": "2023-06-12T08:44:38+00:00" + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2024-02-07T09:43:46+00:00" }, { "name": "filp/whoops", @@ -10370,49 +10463,48 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.39.0", + "version": "v3.52.1", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "04bf7b28fc847185b247d112cab617da941e3cca" + "reference": "6e77207f0d851862ceeb6da63e6e22c01b1587bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/04bf7b28fc847185b247d112cab617da941e3cca", - "reference": "04bf7b28fc847185b247d112cab617da941e3cca", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/6e77207f0d851862ceeb6da63e6e22c01b1587bc", + "reference": "6e77207f0d851862ceeb6da63e6e22c01b1587bc", "shasum": "" }, "require": { - "composer/semver": "^3.3", + "composer/semver": "^3.4", "composer/xdebug-handler": "^3.0.3", + "ext-filter": "*", "ext-json": "*", "ext-tokenizer": "*", "php": "^7.4 || ^8.0", - "sebastian/diff": "^4.0 || ^5.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0", "symfony/console": "^5.4 || ^6.0 || ^7.0", "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", "symfony/finder": "^5.4 || ^6.0 || ^7.0", "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0", - "symfony/polyfill-mbstring": "^1.27", - "symfony/polyfill-php80": "^1.27", - "symfony/polyfill-php81": "^1.27", + "symfony/polyfill-mbstring": "^1.28", + "symfony/polyfill-php80": "^1.28", + "symfony/polyfill-php81": "^1.28", "symfony/process": "^5.4 || ^6.0 || ^7.0", "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { "facile-it/paraunit": "^1.3 || ^2.0", "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^2.0", + "keradus/cli-executor": "^2.1", "mikey179/vfsstream": "^1.6.11", - "php-coveralls/php-coveralls": "^2.5.3", + "php-coveralls/php-coveralls": "^2.7", "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy": "^1.16", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", - "symfony/phpunit-bridge": "^6.2.3 || ^7.0", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4", + "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2", + "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0", "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "suggest": { @@ -10451,7 +10543,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.39.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.52.1" }, "funding": [ { @@ -10459,7 +10551,7 @@ "type": "github" } ], - "time": "2023-11-22T11:20:09+00:00" + "time": "2024-03-19T21:02:43+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -10514,22 +10606,29 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.1.12", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b" + "reference": "356b2017decc88d42fc08e903cb41277e3966da1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b", - "reference": "c9dbdbb1f0efd19bb80f1080ef63f1b9b1bc3b1b", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/356b2017decc88d42fc08e903cb41277e3966da1", + "reference": "356b2017decc88d42fc08e903cb41277e3966da1", "shasum": "" }, "require": { "ext-json": "*", "php": ">=5.6" }, + "suggest": { + "ext-pdo": "Needed in order to use a SQL database for metadata storage", + "ext-pdo_mysql": "Needed in order to use MySQL for metadata storage", + "ext-pdo_postgres": "Needed in order to use Postgres for metadata storage", + "ext-pdo_sqlite": "Needed in order to use a SQLite for metadata storage", + "ext-redis": "Needed in order to use Redis for metadata storage" + }, "type": "library", "extra": { "laravel": { @@ -10570,7 +10669,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.12" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.2.1" }, "funding": [ { @@ -10578,31 +10677,31 @@ "type": "github" } ], - "time": "2022-12-13T00:04:12+00:00" + "time": "2024-03-27T21:22:54+00:00" }, { "name": "laravel-lang/attributes", - "version": "2.5.1", + "version": "2.10.1", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/attributes.git", - "reference": "d98d19ce3e6a7a98bb837a3ad7e32fa8db9eda81" + "reference": "b6a9227b148114ae8df5e1b24442dc847f46ebca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/attributes/zipball/d98d19ce3e6a7a98bb837a3ad7e32fa8db9eda81", - "reference": "d98d19ce3e6a7a98bb837a3ad7e32fa8db9eda81", + "url": "https://api.github.com/repos/Laravel-Lang/attributes/zipball/b6a9227b148114ae8df5e1b24442dc847f46ebca", + "reference": "b6a9227b148114ae8df5e1b24442dc847f46ebca", "shasum": "" }, "require": { "ext-json": "*", - "laravel-lang/publisher": "^14.0 || ^15.0", + "laravel-lang/publisher": "^14.0 || ^15.0 || ^16.0", "php": "^8.1" }, "require-dev": { "laravel-lang/status-generator": "^1.19 || ^2.0", "phpunit/phpunit": "^10.0", - "symfony/var-dumper": "^6.0" + "symfony/var-dumper": "^6.0 || ^7.0" }, "type": "library", "extra": { @@ -10631,7 +10730,7 @@ "homepage": "https://github.com/Laravel-Lang" } ], - "description": "List of 78 languages for form field names", + "description": "List of 126 languages for form field names", "keywords": [ "attributes", "fields", @@ -10645,9 +10744,9 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/attributes/issues", - "source": "https://github.com/Laravel-Lang/attributes/tree/2.5.1" + "source": "https://github.com/Laravel-Lang/attributes/tree/2.10.1" }, - "time": "2023-11-21T17:42:19+00:00" + "time": "2024-03-31T13:40:16+00:00" }, { "name": "laravel-lang/common", @@ -10735,30 +10834,27 @@ }, { "name": "laravel-lang/http-statuses", - "version": "3.6.2", + "version": "3.8.2", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/http-statuses.git", - "reference": "d7acdcba3bbf834a77b0d132f62817b16d762f1c" + "reference": "b408ea74292df2e4fbec2be93858a3e697189b29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/http-statuses/zipball/d7acdcba3bbf834a77b0d132f62817b16d762f1c", - "reference": "d7acdcba3bbf834a77b0d132f62817b16d762f1c", + "url": "https://api.github.com/repos/Laravel-Lang/http-statuses/zipball/b408ea74292df2e4fbec2be93858a3e697189b29", + "reference": "b408ea74292df2e4fbec2be93858a3e697189b29", "shasum": "" }, "require": { "ext-json": "*", - "laravel-lang/publisher": "^14.1 || ^15.0", + "laravel-lang/publisher": "^14.1 || ^15.0 || ^16.0", "php": "^8.1" }, - "conflict": { - "laravel-lang/publisher": "<14.0" - }, "require-dev": { "laravel-lang/status-generator": "^1.19 || ^2.0", "phpunit/phpunit": "^10.0", - "symfony/var-dumper": "^6.0" + "symfony/var-dumper": "^6.0 || ^7.0" }, "type": "library", "extra": { @@ -10787,7 +10883,7 @@ "homepage": "https://github.com/Laravel-Lang" } ], - "description": "List of 78 languages for HTTP statuses", + "description": "List of 126 languages for HTTP statuses", "keywords": [ "http", "lang", @@ -10799,33 +10895,33 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/http-statuses/issues", - "source": "https://github.com/Laravel-Lang/http-statuses/tree/3.6.2" + "source": "https://github.com/Laravel-Lang/http-statuses/tree/3.8.2" }, - "time": "2023-11-21T17:40:36+00:00" + "time": "2024-03-11T01:33:17+00:00" }, { "name": "laravel-lang/lang", - "version": "13.8.0", + "version": "13.12.0", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/lang.git", - "reference": "54bb87a2644fb3cb222a20861b1f7c877a6d1c2a" + "reference": "25a5a07b635f0694cb34a37b58cfb78d0f4ee19e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/54bb87a2644fb3cb222a20861b1f7c877a6d1c2a", - "reference": "54bb87a2644fb3cb222a20861b1f7c877a6d1c2a", + "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/25a5a07b635f0694cb34a37b58cfb78d0f4ee19e", + "reference": "25a5a07b635f0694cb34a37b58cfb78d0f4ee19e", "shasum": "" }, "require": { "ext-json": "*", - "laravel-lang/publisher": "^14.0 || ^15.0", + "laravel-lang/publisher": "^14.0 || ^15.0 || ^16.0", "php": "^8.1" }, "require-dev": { "laravel-lang/status-generator": "^1.19 || ^2.0", "phpunit/phpunit": "^10.0", - "symfony/var-dumper": "^6.0" + "symfony/var-dumper": "^6.0 || ^7.0" }, "type": "library", "extra": { @@ -10861,7 +10957,7 @@ "issues": "https://github.com/Laravel-Lang/lang/issues", "source": "https://github.com/Laravel-Lang/lang" }, - "time": "2023-11-22T08:33:39+00:00" + "time": "2023-12-16T17:26:12+00:00" }, { "name": "laravel-lang/locales", @@ -11108,23 +11204,24 @@ }, { "name": "laravel/sail", - "version": "v1.26.1", + "version": "v1.29.1", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed" + "reference": "8be4a31150eab3b46af11a2e7b2c4632eefaad7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed", - "reference": "7a82f5aa364dbee3fd9c52fc464cf0bdd11150ed", + "url": "https://api.github.com/repos/laravel/sail/zipball/8be4a31150eab3b46af11a2e7b2c4632eefaad7e", + "reference": "8be4a31150eab3b46af11a2e7b2c4632eefaad7e", "shasum": "" }, "require": { - "illuminate/console": "^9.0|^10.0|^11.0", - "illuminate/contracts": "^9.0|^10.0|^11.0", - "illuminate/support": "^9.0|^10.0|^11.0", + "illuminate/console": "^9.52.16|^10.0|^11.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0", + "illuminate/support": "^9.52.16|^10.0|^11.0", "php": "^8.0", + "symfony/console": "^6.0|^7.0", "symfony/yaml": "^6.0|^7.0" }, "require-dev": { @@ -11136,9 +11233,6 @@ ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - }, "laravel": { "providers": [ "Laravel\\Sail\\SailServiceProvider" @@ -11169,20 +11263,20 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2023-11-20T15:56:47+00:00" + "time": "2024-03-20T20:09:31+00:00" }, { "name": "laravel/telescope", - "version": "v4.17.3", + "version": "v4.17.6", "source": { "type": "git", "url": "https://github.com/laravel/telescope.git", - "reference": "17a420d0121b03ea90648dd4484b62abe6d3e261" + "reference": "2d453dc629b27e8cf39fb1217aba062f8c54e690" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/telescope/zipball/17a420d0121b03ea90648dd4484b62abe6d3e261", - "reference": "17a420d0121b03ea90648dd4484b62abe6d3e261", + "url": "https://api.github.com/repos/laravel/telescope/zipball/2d453dc629b27e8cf39fb1217aba062f8c54e690", + "reference": "2d453dc629b27e8cf39fb1217aba062f8c54e690", "shasum": "" }, "require": { @@ -11238,28 +11332,28 @@ ], "support": { "issues": "https://github.com/laravel/telescope/issues", - "source": "https://github.com/laravel/telescope/tree/v4.17.3" + "source": "https://github.com/laravel/telescope/tree/v4.17.6" }, - "time": "2023-12-11T22:00:12+00:00" + "time": "2024-02-08T15:04:38+00:00" }, { "name": "maximebf/debugbar", - "version": "v1.19.1", + "version": "v1.21.3", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "03dd40a1826f4d585ef93ef83afa2a9874a00523" + "reference": "0b407703b08ea0cf6ebc61e267cc96ff7000911b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/03dd40a1826f4d585ef93ef83afa2a9874a00523", - "reference": "03dd40a1826f4d585ef93ef83afa2a9874a00523", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0b407703b08ea0cf6ebc61e267cc96ff7000911b", + "reference": "0b407703b08ea0cf6ebc61e267cc96ff7000911b", "shasum": "" }, "require": { "php": "^7.1|^8", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4|^5|^6" + "symfony/var-dumper": "^4|^5|^6|^7" }, "require-dev": { "phpunit/phpunit": ">=7.5.20 <10.0", @@ -11273,7 +11367,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.18-dev" + "dev-master": "1.21-dev" } }, "autoload": { @@ -11304,22 +11398,22 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.19.1" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.21.3" }, - "time": "2023-10-12T08:10:52+00:00" + "time": "2024-03-12T14:23:07+00:00" }, { "name": "mockery/mockery", - "version": "1.6.6", + "version": "1.6.11", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e" + "reference": "81a161d0b135df89951abd52296adf97deb0723d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/b8e0bb7d8c604046539c1115994632c74dcb361e", - "reference": "b8e0bb7d8c604046539c1115994632c74dcb361e", + "url": "https://api.github.com/repos/mockery/mockery/zipball/81a161d0b135df89951abd52296adf97deb0723d", + "reference": "81a161d0b135df89951abd52296adf97deb0723d", "shasum": "" }, "require": { @@ -11331,10 +11425,8 @@ "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.6.10", - "psalm/plugin-phpunit": "^0.18.4", - "symplify/easy-coding-standard": "^11.5.0", - "vimeo/psalm": "^4.30" + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" }, "type": "library", "autoload": { @@ -11391,7 +11483,7 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2023-08-09T00:03:52+00:00" + "time": "2024-03-21T18:34:15+00:00" }, { "name": "myclabs/deep-copy", @@ -11549,54 +11641,370 @@ "time": "2023-10-11T15:45:01+00:00" }, { - "name": "phar-io/manifest", - "version": "2.0.3", + "name": "pestphp/pest", + "version": "v2.34.6", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "url": "https://github.com/pestphp/pest.git", + "reference": "680111fb1e7175a5010b73c115edef58ceef303e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/pestphp/pest/zipball/680111fb1e7175a5010b73c115edef58ceef303e", + "reference": "680111fb1e7175a5010b73c115edef58ceef303e", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" + "brianium/paratest": "^7.3.1", + "nunomaduro/collision": "^7.10.0|^8.1.1", + "nunomaduro/termwind": "^1.15.1|^2.0.1", + "pestphp/pest-plugin": "^2.1.1", + "pestphp/pest-plugin-arch": "^2.7.0", + "php": "^8.1.0", + "phpunit/phpunit": "^10.5.16" + }, + "conflict": { + "phpunit/phpunit": ">10.5.16", + "sebastian/exporter": "<5.1.0", + "webmozart/assert": "<1.11.0" }, + "require-dev": { + "pestphp/pest-dev-tools": "^2.16.0", + "pestphp/pest-plugin-type-coverage": "^2.8.1", + "symfony/process": "^6.4.0|^7.0.4" + }, + "bin": [ + "bin/pest" + ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" + "pest": { + "plugins": [ + "Pest\\Plugins\\Bail", + "Pest\\Plugins\\Cache", + "Pest\\Plugins\\Coverage", + "Pest\\Plugins\\Init", + "Pest\\Plugins\\Environment", + "Pest\\Plugins\\Help", + "Pest\\Plugins\\Memory", + "Pest\\Plugins\\Only", + "Pest\\Plugins\\Printer", + "Pest\\Plugins\\ProcessIsolation", + "Pest\\Plugins\\Profile", + "Pest\\Plugins\\Retry", + "Pest\\Plugins\\Snapshot", + "Pest\\Plugins\\Verbose", + "Pest\\Plugins\\Version", + "Pest\\Plugins\\Parallel" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { - "classmap": [ - "src/" - ] + "files": [ + "src/Functions.php", + "src/Pest.php" + ], + "psr-4": { + "Pest\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "The elegant PHP Testing Framework.", + "keywords": [ + "framework", + "pest", + "php", + "test", + "testing", + "unit" + ], + "support": { + "issues": "https://github.com/pestphp/pest/issues", + "source": "https://github.com/pestphp/pest/tree/v2.34.6" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-03-28T11:36:46+00:00" + }, + { + "name": "pestphp/pest-plugin", + "version": "v2.1.1", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin.git", + "reference": "e05d2859e08c2567ee38ce8b005d044e72648c0b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/e05d2859e08c2567ee38ce8b005d044e72648c0b", + "reference": "e05d2859e08c2567ee38ce8b005d044e72648c0b", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0.0", + "composer-runtime-api": "^2.2.2", + "php": "^8.1" + }, + "conflict": { + "pestphp/pest": "<2.2.3" + }, + "require-dev": { + "composer/composer": "^2.5.8", + "pestphp/pest": "^2.16.0", + "pestphp/pest-dev-tools": "^2.16.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Pest\\Plugin\\Manager" + }, + "autoload": { + "psr-4": { + "Pest\\Plugin\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Pest plugin manager", + "keywords": [ + "framework", + "manager", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin/tree/v2.1.1" + }, + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2023-08-22T08:40:06+00:00" + }, + { + "name": "pestphp/pest-plugin-arch", + "version": "v2.7.0", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-arch.git", + "reference": "d23b2d7498475354522c3818c42ef355dca3fcda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/d23b2d7498475354522c3818c42ef355dca3fcda", + "reference": "d23b2d7498475354522c3818c42ef355dca3fcda", + "shasum": "" + }, + "require": { + "nunomaduro/collision": "^7.10.0|^8.1.0", + "pestphp/pest-plugin": "^2.1.1", + "php": "^8.1", + "ta-tikoma/phpunit-architecture-test": "^0.8.4" + }, + "require-dev": { + "pestphp/pest": "^2.33.0", + "pestphp/pest-dev-tools": "^2.16.0" + }, + "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Arch\\Plugin" + ] + } + }, + "autoload": { + "files": [ + "src/Autoload.php" + ], + "psr-4": { + "Pest\\Arch\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Arch plugin for Pest PHP.", + "keywords": [ + "arch", + "architecture", + "framework", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-arch/tree/v2.7.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-01-26T09:46:42+00:00" + }, + { + "name": "pestphp/pest-plugin-livewire", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-livewire.git", + "reference": "e72a2f850f727dfdb6bfa6e2ee6ff478ccc93f97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-livewire/zipball/e72a2f850f727dfdb6bfa6e2ee6ff478ccc93f97", + "reference": "e72a2f850f727dfdb6bfa6e2ee6ff478ccc93f97", + "shasum": "" + }, + "require": { + "livewire/livewire": "^2.12.3|^3.0", + "pestphp/pest": "^2.9.1", + "php": "^8.1" + }, + "require-dev": { + "orchestra/testbench": "^8.5.10", + "pestphp/pest-dev-tools": "^2.12.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/Autoload.php" + ], + "psr-4": { + "Pest\\Livewire\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Pest Livewire Plugin", + "keywords": [ + "framework", + "livewire", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-livewire/tree/v2.1.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2023-07-20T16:28:21+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de", "role": "Developer" } @@ -11604,9 +12012,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -11712,23 +12126,80 @@ }, "time": "2020-06-27T09:03:43+00:00" }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.3", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" + "reference": "153ae662783729388a584b4361f2545e4d841e3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", + "reference": "153ae662783729388a584b4361f2545e4d841e3c", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", "phpstan/phpdoc-parser": "^1.13" }, @@ -11766,29 +12237,29 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" }, - "time": "2023-08-12T11:01:26+00:00" + "time": "2024-02-23T11:10:43+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.8", + "version": "10.1.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297" + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/84838eed9ded511f61dc3e8b5944a52d9017b297", - "reference": "84838eed9ded511f61dc3e8b5944a52d9017b297", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", + "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1", "phpunit/php-file-iterator": "^4.0", "phpunit/php-text-template": "^3.0", @@ -11838,7 +12309,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.8" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14" }, "funding": [ { @@ -11846,7 +12317,7 @@ "type": "github" } ], - "time": "2023-11-15T13:31:15+00:00" + "time": "2024-03-12T15:33:41+00:00" }, { "name": "phpunit/php-file-iterator", @@ -12093,16 +12564,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.4.2", + "version": "10.5.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1" + "reference": "18f8d4a5f52b61fdd9370aaae3167daa0eeb69cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", - "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/18f8d4a5f52b61fdd9370aaae3167daa0eeb69cd", + "reference": "18f8d4a5f52b61fdd9370aaae3167daa0eeb69cd", "shasum": "" }, "require": { @@ -12142,7 +12613,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.4-dev" + "dev-main": "10.5-dev" } }, "autoload": { @@ -12174,7 +12645,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.2" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.16" }, "funding": [ { @@ -12190,7 +12661,7 @@ "type": "tidelift" } ], - "time": "2023-10-26T07:21:45+00:00" + "time": "2024-03-28T10:08:10+00:00" }, { "name": "psr/cache", @@ -12243,16 +12714,16 @@ }, { "name": "sebastian/cli-parser", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", "shasum": "" }, "require": { @@ -12287,7 +12758,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" }, "funding": [ { @@ -12295,7 +12767,7 @@ "type": "github" } ], - "time": "2023-02-03T06:58:15+00:00" + "time": "2024-03-02T07:12:49+00:00" }, { "name": "sebastian/code-unit", @@ -12487,20 +12959,20 @@ }, { "name": "sebastian/complexity", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957" + "reference": "68ff824baeae169ec9f2137158ee529584553799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957", - "reference": "68cfb347a44871f01e33ab0ef8215966432f6957", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -12509,7 +12981,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.2-dev" } }, "autoload": { @@ -12533,7 +13005,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" }, "funding": [ { @@ -12541,20 +13013,20 @@ "type": "github" } ], - "time": "2023-09-28T11:50:59+00:00" + "time": "2023-12-21T08:37:17+00:00" }, { "name": "sebastian/diff", - "version": "5.0.3", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b", - "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { @@ -12562,12 +13034,12 @@ }, "require-dev": { "phpunit/phpunit": "^10.0", - "symfony/process": "^4.2 || ^5" + "symfony/process": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -12600,7 +13072,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -12608,20 +13080,20 @@ "type": "github" } ], - "time": "2023-05-01T07:48:21+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "sebastian/environment", - "version": "6.0.1", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", "shasum": "" }, "require": { @@ -12636,7 +13108,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -12664,7 +13136,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" }, "funding": [ { @@ -12672,20 +13144,20 @@ "type": "github" } ], - "time": "2023-04-11T05:39:26+00:00" + "time": "2024-03-23T08:47:14+00:00" }, { "name": "sebastian/exporter", - "version": "5.1.1", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", "shasum": "" }, "require": { @@ -12742,7 +13214,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" }, "funding": [ { @@ -12750,20 +13222,20 @@ "type": "github" } ], - "time": "2023-09-24T13:22:09+00:00" + "time": "2024-03-02T07:17:12+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", "shasum": "" }, "require": { @@ -12797,14 +13269,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" }, "funding": [ { @@ -12812,24 +13284,24 @@ "type": "github" } ], - "time": "2023-07-19T07:19:23+00:00" + "time": "2024-03-02T07:19:19+00:00" }, { "name": "sebastian/lines-of-code", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d" + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d", - "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.10", + "nikic/php-parser": "^4.18 || ^5.0", "php": ">=8.1" }, "require-dev": { @@ -12862,7 +13334,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" }, "funding": [ { @@ -12870,7 +13342,7 @@ "type": "github" } ], - "time": "2023-08-31T09:25:50+00:00" + "time": "2023-12-21T08:38:20+00:00" }, { "name": "sebastian/object-enumerator", @@ -13220,21 +13692,20 @@ }, { "name": "spatie/flare-client-php", - "version": "1.4.3", + "version": "1.4.4", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec" + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", - "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/17082e780752d346c2db12ef5d6bee8e835e399c", + "reference": "17082e780752d346c2db12ef5d6bee8e835e399c", "shasum": "" }, "require": { "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0", - "nesbot/carbon": "^2.62.1", "php": "^8.0", "spatie/backtrace": "^1.5.2", "symfony/http-foundation": "^5.2|^6.0|^7.0", @@ -13278,7 +13749,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.4.3" + "source": "https://github.com/spatie/flare-client-php/tree/1.4.4" }, "funding": [ { @@ -13286,20 +13757,20 @@ "type": "github" } ], - "time": "2023-10-17T15:54:07+00:00" + "time": "2024-01-31T14:18:45+00:00" }, { "name": "spatie/ignition", - "version": "1.11.3", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044" + "reference": "889bf1dfa59e161590f677728b47bf4a6893983b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", - "reference": "3d886de644ff7a5b42e4d27c1e1f67c8b5f00044", + "url": "https://api.github.com/repos/spatie/ignition/zipball/889bf1dfa59e161590f677728b47bf4a6893983b", + "reference": "889bf1dfa59e161590f677728b47bf4a6893983b", "shasum": "" }, "require": { @@ -13369,39 +13840,39 @@ "type": "github" } ], - "time": "2023-10-18T14:09:40+00:00" + "time": "2024-03-29T14:03:47+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.3.1", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8" + "reference": "e23f4e8ce6644dc3d68b9d8a0aed3beaca0d6ada" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/bf21cd15aa47fa4ec5d73bbc932005c70261efc8", - "reference": "bf21cd15aa47fa4ec5d73bbc932005c70261efc8", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/e23f4e8ce6644dc3d68b9d8a0aed3beaca0d6ada", + "reference": "e23f4e8ce6644dc3d68b9d8a0aed3beaca0d6ada", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^10.0", + "illuminate/support": "^10.0|^11.0", "php": "^8.1", "spatie/flare-client-php": "^1.3.5", - "spatie/ignition": "^1.9", - "symfony/console": "^6.2.3", - "symfony/var-dumper": "^6.2.3" + "spatie/ignition": "^1.13", + "symfony/console": "^6.2.3|^7.0", + "symfony/var-dumper": "^6.2.3|^7.0" }, "require-dev": { - "livewire/livewire": "^2.11", + "livewire/livewire": "^2.11|^3.3.5", "mockery/mockery": "^1.5.1", - "openai-php/client": "^0.3.4", - "orchestra/testbench": "^8.0", - "pestphp/pest": "^1.22.3", + "openai-php/client": "^0.8.1", + "orchestra/testbench": "^8.0|^9.0", + "pestphp/pest": "^2.30", "phpstan/extension-installer": "^1.2", "phpstan/phpstan-deprecation-rules": "^1.1.1", "phpstan/phpstan-phpunit": "^1.3.3", @@ -13461,24 +13932,24 @@ "type": "github" } ], - "time": "2023-10-09T12:55:26+00:00" + "time": "2024-03-29T14:14:55+00:00" }, { "name": "symfony/filesystem", - "version": "v6.3.1", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/2890e3a825bc0c0558526c04499c13f83e1b6b12", + "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, @@ -13508,7 +13979,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.3.1" + "source": "https://github.com/symfony/filesystem/tree/v7.0.3" }, "funding": [ { @@ -13524,20 +13995,20 @@ "type": "tidelift" } ], - "time": "2023-06-01T08:30:39+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.28.0", + "version": "v1.29.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", - "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", "shasum": "" }, "require": { @@ -13545,9 +14016,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.28-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -13587,7 +14055,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" }, "funding": [ { @@ -13603,24 +14071,24 @@ "type": "tidelift" } ], - "time": "2023-01-26T09:26:14+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.3.0", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2" + "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", - "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/983900d6fddf2b0cbaacacbbad07610854bd8112", + "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "symfony/service-contracts": "^2.5|^3" }, "type": "library", @@ -13649,7 +14117,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.3.0" + "source": "https://github.com/symfony/stopwatch/tree/v7.0.3" }, "funding": [ { @@ -13665,32 +14133,31 @@ "type": "tidelift" } ], - "time": "2023-02-16T10:14:28+00:00" + "time": "2024-01-23T15:02:46+00:00" }, { "name": "symfony/yaml", - "version": "v6.3.8", + "version": "v7.0.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92" + "reference": "2d4fca631c00700597e9442a0b2451ce234513d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/3493af8a8dad7fa91c77fa473ba23ecd95334a92", - "reference": "3493af8a8dad7fa91c77fa473ba23ecd95334a92", + "url": "https://api.github.com/repos/symfony/yaml/zipball/2d4fca631c00700597e9442a0b2451ce234513d3", + "reference": "2d4fca631c00700597e9442a0b2451ce234513d3", "shasum": "" }, "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", + "php": ">=8.2", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<5.4" + "symfony/console": "<6.4" }, "require-dev": { - "symfony/console": "^5.4|^6.0" + "symfony/console": "^6.4|^7.0" }, "bin": [ "Resources/bin/yaml-lint" @@ -13721,7 +14188,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.3.8" + "source": "https://github.com/symfony/yaml/tree/v7.0.3" }, "funding": [ { @@ -13737,20 +14204,79 @@ "type": "tidelift" } ], - "time": "2023-11-06T10:58:05+00:00" + "time": "2024-01-23T15:02:46+00:00" + }, + { + "name": "ta-tikoma/phpunit-architecture-test", + "version": "0.8.4", + "source": { + "type": "git", + "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", + "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/89f0dea1cb0f0d5744d3ec1764a286af5e006636", + "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18.0 || ^5.0.0", + "php": "^8.1.0", + "phpdocumentor/reflection-docblock": "^5.3.0", + "phpunit/phpunit": "^10.5.5 || ^11.0.0", + "symfony/finder": "^6.4.0 || ^7.0.0" + }, + "require-dev": { + "laravel/pint": "^1.13.7", + "phpstan/phpstan": "^1.10.52" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPUnit\\Architecture\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ni Shi", + "email": "futik0ma011@gmail.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Methods for testing application architecture", + "keywords": [ + "architecture", + "phpunit", + "stucture", + "test", + "testing" + ], + "support": { + "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", + "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.4" + }, + "time": "2024-01-05T14:10:56+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -13779,7 +14305,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -13787,7 +14313,7 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" } ], "aliases": [], diff --git a/tests/Feature/DocumentsTest.php b/tests/Feature/DocumentsTest.php new file mode 100644 index 0000000..23d7a5a --- /dev/null +++ b/tests/Feature/DocumentsTest.php @@ -0,0 +1,619 @@ +platformAdmin() + ->create(); + + } + + protected function getPlatformCoordinator(): User + { + return User::factory() + ->platformCoordinator() + ->create(); + } + + protected function getOrgAdminWithActiveOrg(): Collection + { + Organisation::factory() + ->count(5) + ->withRelated() + ->createQuietly(); + return User::query() + ->withoutGlobalScopes() + ->role(UserRole::ORG_ADMIN) + ->get(); + } + + protected function getOrgAdminWithInactiveOrg(): Collection + { + Organisation::factory() + ->count(5) + ->inactive() + ->withRelated() + ->createQuietly(); + return User::query() + ->withoutGlobalScopes() + ->role(UserRole::ORG_ADMIN) + ->get(); + } + + protected function createOrganisations(): void + { + Organisation::factory() + ->count(5) + ->randomStatus() + ->withRelated() + ->createQuietly(); + } + + public function testViewDocumentsWithoutUser() + { + $url = DocumentResource::getUrl('index'); + + $this->withSession(['banned' => false]) + ->get($url) + ->assertFound(); + } + + public function testViewDocumentsByOrgAdmin(): void + { + $url = DocumentResource::getUrl('index'); + + $orgAdmin = $this->getOrgAdminWithActiveOrg()->random(); + $this->actingAs($orgAdmin) + ->withSession(['banned' => false]) + ->get($url) + ->assertSuccessful(); + } + + public function testViewDocumentsByInactiveOrgAdmin(): void + { + $url = DocumentResource::getUrl('index'); + + $orgAdmin = $this->getOrgAdminWithInactiveOrg()->random(); + $this->actingAs($orgAdmin) + ->withSession(['banned' => false]) + ->get($url) + ->assertFound(); + } + + public function testViewDocumentsByPlatformCoordinator(): void + { + $url = DocumentResource::getUrl('index'); + $this->actingAs($this->getPlatformCoordinator()) + ->withSession(['banned' => false]) + ->get($url) + ->assertSuccessful(); + } + + public function testViewDocumentsByPlatformAdmin(): void + { + $url = DocumentResource::getUrl('index'); + $this->actingAs($this->getPlatformAdmins()) + ->withSession(['banned' => false]) + ->get($url) + ->assertSuccessful(); + } + + public function testViewDocumentWithoutUser() + { + $this->createOrganisations(); + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + $this->withSession(['banned' => false]) + ->get($url) + ->assertFound(); + } + + public function testViewDocumentByPlatformAdmin(): void + { + $this->createOrganisations(); + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + $this->actingAs($this->getPlatformAdmins()) + ->withSession(['banned' => false]) + ->get($url) + ->assertSuccessful(); + } + + public function testViewDocumentByPlatformCoordinator(): void + { + $this->createOrganisations(); + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + + $this->actingAs($this->getPlatformCoordinator()) + ->withSession(['banned' => false]) + ->get($url) + ->assertSuccessful(); + } + + public function testViewDocumentByOrgAdmin() + { + $orgAdmins = $this->getOrgAdminWithActiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); + + $this->actingAs($documentUser) + ->withSession(['banned' => false]) + ->get($url) + ->assertSuccessful(); + } + + public function testViewDocumentByInactiveOrgAdmin() + { + $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); + + $this->actingAs($documentUser) + ->withSession(['banned' => false]) + ->get($url) + ->assertFound(); + } + + public function testViewDocumentByAnotherOrgAdmin(): void + { + $orgAdmins = $this->getOrgAdminWithActiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + + $this->actingAs($orgAdmins->filter(fn ($item) => $item->organisation_id != $document->organisation_id)->first()) + ->withSession(['banned' => false]) + ->get($url) + ->assertNotFound(); + } + + public function testViewDocumentByAnotherInactiveOrgAdmin(): void + { + $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + + $this->actingAs($orgAdmins->filter(fn ($item) => $item->organisation_id != $document->organisation_id)->first()) + ->withSession(['banned' => false]) + ->get($url) + ->assertFound(); + } + + public function testEditDocumentWithoutUser() + { + $this->createOrganisations(); + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + $this->withSession(['banned' => false]) + ->get($url) + ->assertFound(); + } + + public function testEditDocumentByPlatformAdmin(): void + { + $this->createOrganisations(); + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + $this->actingAs($this->getPlatformAdmins()) + ->withSession(['banned' => false]) + ->get($url) + ->assertSuccessful(); + } + + public function testEditDocumentByPlatformCoordinator(): void + { + $this->createOrganisations(); + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + + $this->actingAs($this->getPlatformCoordinator()) + ->withSession(['banned' => false]) + ->get($url) + ->assertForbidden(); + } + + public function testEditDocumentByOrgAdmin() + { + $orgAdmins = $this->getOrgAdminWithActiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); + + $this->actingAs($documentUser) + ->withSession(['banned' => false]) + ->get($url) + ->assertForbidden(); + } + + public function testEditDocumentByInactiveOrgAdmin() + { + $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); + + $this->actingAs($documentUser) + ->withSession(['banned' => false]) + ->get($url) + ->assertFound(); + } + + public function testEditDocumentByAnotherOrgAdmin(): void + { + $orgAdmins = $this->getOrgAdminWithActiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + + $this->actingAs($orgAdmins->filter(fn ($item) => $item->organisation_id != $document->organisation_id)->first()) + ->withSession(['banned' => false]) + ->get($url) + ->assertNotFound(); + } + + public function testEditDocumentByAnotherInactiveOrgAdmin(): void + { + $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + + $this->actingAs($orgAdmins->filter(fn ($item) => $item->organisation_id != $document->organisation_id)->first()) + ->withSession(['banned' => false]) + ->get($url) + ->assertFound(); + } + + public function testDeleteDocumentWithoutUser() + { + $this->assertTrue(true); +// $this->createOrganisations(); +// $document = Document::query() +// ->inRandomOrder() +// ->first(); +// +// \Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) +// ->assertPageActionDisabled('delete'); + } + + public function testDeleteDocumentByPlatformAdmin(): void + { + $this->createOrganisations(); + $document = Document::query() + ->inRandomOrder() + ->first(); + + Livewire::actingAs($this->getPlatformAdmins()); + Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + ->callPageAction('delete') + ->assertSuccessful(); + } + + public function testDeleteDocumentByPlatformCoordinator(): void + { + $this->createOrganisations(); + $document = Document::query() + ->inRandomOrder() + ->first(); + + Livewire::actingAs($this->getPlatformCoordinator()); + Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + ->assertPageActionDisabled('delete'); + } + + public function testDeleteDocumentByOrgAdmin() + { + $orgAdmins = $this->getOrgAdminWithActiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); + + Livewire::actingAs($documentUser); + Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + ->assertPageActionDisabled('delete'); + } + + public function testDeleteDocumentByInactiveOrgAdmin() + { + $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); + + Livewire::actingAs($documentUser); + Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + ->assertPageActionDisabled('delete'); + } + + public function testDeleteDocumentByAnotherOrgAdmin(): void + { + $this->assertTrue(true); + +// $orgAdmins = $this->getOrgAdminWithActiveOrg(); +// +// $document = Document::query() +// ->inRandomOrder() +// ->first(); +// +// $documentUser = $orgAdmins->filter(fn($item) => $item->organisation_id != $document->organisation_id)->first(); +// $params = ['record' => $document->id]; +// +// \Livewire::actingAs($documentUser); +// \Livewire::test(DocumentResource\Pages\ViewDocument::class, $params) +// ->assertPageActionDisabled('delete'); + } + + public function testDeleteDocumentByAnotherInactiveOrgAdmin(): void + { + $this->assertTrue(true); + +// $orgAdmins = $this->getOrgAdminWithInactiveOrg(); +// +// $document = Document::query() +// ->inRandomOrder() +// ->first(); +// +// $url = DocumentResource::getUrl('edit', ['record' => $document->id]); +// +// $documentUser = $orgAdmins->filter(fn($item) => $item->organisation_id != $document->organisation_id)->first(); +// $params = ['record' => $document->id]; +// \Livewire::actingAs($documentUser); +// \Livewire::test(DocumentResource\Pages\ViewDocument::class, $params) +// ->assertPageActionDisabled('delete'); + } + + public function testCreateDocumentByPlatformAdmin(): void + { + Livewire::actingAs($this->getPlatformAdmins()); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->assertSuccessful(); + } + + public function testCreateDocumentByPlatformCoordinator(): void + { + Livewire::actingAs($this->getPlatformCoordinator()); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->assertForbidden(); + } + + public function testCreateDocumentByOrgAdmin() + { + $orgAdmins = $this->getOrgAdminWithActiveOrg()->random(); + + Livewire::actingAs($orgAdmins); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->assertForbidden(); + } + + public function testCreateDocumentByInactiveOrgAdmin() + { + $orgAdmins = $this->getOrgAdminWithInactiveOrg()->random(); + + Livewire::actingAs($orgAdmins); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->assertForbidden(); + } + + + public function testCreateDocument() + { + $this->createOrganisations(); + + $file = \Illuminate\Http\UploadedFile::fake() + ->image(fake()->word() . '.jpg') + ->store('tests'); + + // all data ok + Livewire::actingAs($this->getPlatformAdmins()); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::contract, + 'document' => [$file]]) + ->call('create') + ->assertHasNoFormErrors(); + + // wrong organisation_id + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->max('id') + 1, + 'name' => fake()->word(), + 'type' => DocumentType::contract, + 'document' => [$file]]) + ->call('create') + ->assertHasFormErrors(['organisation_id']); + + // name over 255 + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->realTextBetween(256, 300), + 'type' => DocumentType::contract, + 'document' => [$file]]) + ->call('create') + ->assertHasFormErrors(['name']); + + // wrong type + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => fake()->word(), + 'document' => [$file]]) + ->call('create') + ->assertHasFormErrors(['type']); + + // hidden signed_at, expired_at and never_expires when document type is contract + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::contract, + 'document' => [$file]]) + ->assertFormFieldIsHidden('signed_at') + ->assertFormFieldIsHidden('expires_at') + ->assertFormFieldIsHidden('never_expires'); + + // hidden signed_at, expired_at and never_expires when document type is other + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::other, + 'document' => [$file]]) + ->assertFormFieldIsHidden('signed_at') + ->assertFormFieldIsHidden('expires_at') + ->assertFormFieldIsHidden('never_expires'); + + // visible signed_at, expired_at and never_expires + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file]]) + ->assertFormFieldIsVisible('signed_at') + ->assertFormFieldIsVisible('expires_at') + ->assertFormFieldIsVisible('never_expires'); + + // document type protocol without start/end date + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file]]) + ->call('create') + ->assertHasFormErrors(['signed_at' => 'required', + 'expires_at' => 'required' + ]); + + // document type protocol with never expires and without start/end date + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file], + 'never_expires' => true]) + ->call('create') + ->assertHasFormErrors(['signed_at' => 'required']); + + // document type protocol with never expires and without start/end date + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file], + 'never_expires' => true]) + ->call('create') + ->assertHasFormErrors(['signed_at' => 'required']); + + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file], + 'signed_at' => fake()->date(), + 'never_expires' => true]) + ->call('create') + ->assertHasNoFormErrors(); + + $endDate = fake()->date(); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file], + 'signed_at' => fake()->date(max: $endDate), + 'expires_at' => $endDate]) + ->call('create') + ->assertHasNoFormErrors(); + + $startDate = fake()->date(); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file], + 'signed_at' => $startDate, + 'expires_at' => fake()->date(max: $startDate)]) + ->call('create') + ->assertHasFormErrors(['expires_at']); + } + +} From e439249186de242a89ed6c628af043deb9709c71 Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Thu, 4 Apr 2024 02:10:24 +0300 Subject: [PATCH 04/16] refactoring --- database/factories/OrganisationFactory.php | 24 ++ tests/Feature/Documents/AdminPlatformTest.php | 189 ++++++++++++++ tests/Feature/Documents/DocumentsBaseTest.php | 149 +++++++++++ .../Documents/OrganisationAdminTest.php | 243 ++++++++++++++++++ .../Documents/PlatformCoordinatorTest.php | 73 ++++++ 5 files changed, 678 insertions(+) create mode 100644 tests/Feature/Documents/AdminPlatformTest.php create mode 100644 tests/Feature/Documents/DocumentsBaseTest.php create mode 100644 tests/Feature/Documents/OrganisationAdminTest.php create mode 100644 tests/Feature/Documents/PlatformCoordinatorTest.php diff --git a/database/factories/OrganisationFactory.php b/database/factories/OrganisationFactory.php index 0154a84..f571847 100644 --- a/database/factories/OrganisationFactory.php +++ b/database/factories/OrganisationFactory.php @@ -132,6 +132,30 @@ public function withRelated(): static }); } + public function withUserAndDocuments() + { + return $this->afterCreating(function (Organisation $organisation) { + User::factory(['email' => $organisation->email]) + ->orgAdmin() + ->for($organisation) + ->create(); + + Document::factory() + ->for($organisation) + ->create(); + + Document::factory() + ->contract() + ->for($organisation) + ->create(); + + Document::factory() + ->protocol() + ->for($organisation) + ->create(); + }); + } + protected function attachLocationByActivityArea(Organisation $organisation): void { $counties = null; diff --git a/tests/Feature/Documents/AdminPlatformTest.php b/tests/Feature/Documents/AdminPlatformTest.php new file mode 100644 index 0000000..12e5b20 --- /dev/null +++ b/tests/Feature/Documents/AdminPlatformTest.php @@ -0,0 +1,189 @@ +user = User::factory() + ->platformAdmin() + ->create(); + Livewire::actingAs($this->user); + + $this->createOrganisations(3, 'random'); + } + + public function testAdminPlatformCanViewDocuments(): void + { + $this->viewDocuments() + ->assertPageActionVisible('create') + ->assertPageActionEnabled('create'); + } + + public function testViewAdminPlatformCanViewDocument(): void + { + $document = Document::query() + ->whereType(DocumentType::protocol) + ->first(); + + $this->viewProtocolDocumentByUser($document) + ->assertPageActionVisible('edit') + ->assertPageActionVisible('delete'); + + $document = Document::query() + ->whereNot('type', DocumentType::protocol) + ->first(); + + $this->viewDocumentByUser($document) + ->assertPageActionVisible('edit') + ->assertPageActionVisible('delete'); + } + + public function testAdminPlatformCanEditDocument(): void + { + $protocolDocument = Document::query() + ->whereType(DocumentType::protocol) + ->first(); + + $this->editDocument($protocolDocument) + ->assertFormFieldIsVisible('signed_at') + ->assertFormFieldIsEnabled('signed_at') + ->assertFormFieldIsVisible('expires_at') + ->assertFormFieldIsEnabled('expires_at') + ->assertFormFieldIsVisible('never_expires') + ->assertFormFieldIsEnabled('never_expires'); + + $document = Document::query() + ->whereNot('type', DocumentType::protocol) + ->first(); + + $this->editDocument($document) + ->assertFormFieldIsHidden('signed_at') + ->assertFormFieldIsHidden('expires_at') + ->assertFormFieldIsHidden('never_expires'); + } + + public function testAdminPlatformCanDeleteDocument(): void + { + $document = Document::query() + ->inRandomOrder() + ->first(); + + Livewire::test(ViewDocument::class, ['record' => $document->id]) + ->callPageAction('delete') + ->assertSuccessful(); + $this->assertNull(Document::find($document->id)); + } + + public function testAdminPlatformCanCreateDocument() + { + $file = \Illuminate\Http\UploadedFile::fake() + ->image(fake()->word() . '.jpg') + ->store('tests'); + + // all data ok for type contract + Livewire::test(CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::contract, + 'document' => [$file]]) + ->assertFormFieldIsHidden('signed_at') + ->assertFormFieldIsHidden('expires_at') + ->assertFormFieldIsHidden('never_expires') + ->call('create') + ->assertHasNoFormErrors(); + + // all data ok for protocol with never_expires + Livewire::test(CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file], + 'signed_at' => fake()->date(), + 'never_expires' => true]) + ->assertFormFieldIsVisible('signed_at') + ->assertFormFieldIsVisible('expires_at') + ->assertFormFieldIsVisible('never_expires') + ->call('create') + ->assertHasNoFormErrors(); + + // all data ok for protocol with expire date + $endDate = fake()->date(); + Livewire::test(CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file], + 'signed_at' => fake()->date(max: $endDate), + 'expires_at' => $endDate]) + ->assertFormFieldIsVisible('signed_at') + ->assertFormFieldIsVisible('expires_at') + ->assertFormFieldIsVisible('never_expires') + ->call('create') + ->assertHasNoFormErrors(); + + // all data ok for other type document + Livewire::test(CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::other, + 'document' => [$file]]) + ->assertFormFieldIsHidden('signed_at') + ->assertFormFieldIsHidden('expires_at') + ->assertFormFieldIsHidden('never_expires') + ->call('create') + ->assertHasNoFormErrors(); + + // wrong organisation_id, name, type + Livewire::test(CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->max('id') + 1, + 'name' => fake()->word(), + 'type' => DocumentType::contract, + 'document' => [$file]]) + ->call('create') + ->assertHasFormErrors(['organisation_id']) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->realTextBetween(256, 300)]) + ->call('create') + ->assertHasFormErrors(['name']) + ->fillForm(['name' => fake()->word(), + 'type' => fake()->word(), ]) + ->call('create') + ->assertHasFormErrors(['type']); + + // document type protocol without start/end date, expires_at before signed_at + $startDate = fake()->date(); + Livewire::test(CreateDocument::class) + ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'name' => fake()->word(), + 'type' => DocumentType::protocol, + 'document' => [$file]]) + ->assertFormFieldIsVisible('signed_at') + ->assertFormFieldIsVisible('expires_at') + ->assertFormFieldIsVisible('never_expires') + ->call('create') + ->assertHasFormErrors(['signed_at' => 'required', + 'expires_at' => 'required', + ]) + ->fillForm(['never_expires' => true]) + ->call('create') + ->assertHasFormErrors(['signed_at' => 'required']) + ->fillForm(['signed_at' => $startDate, + 'expires_at' => fake()->date(max: $startDate), + 'never_expires' => false]) + ->call('create') + ->assertHasFormErrors(['expires_at']); + } +} diff --git a/tests/Feature/Documents/DocumentsBaseTest.php b/tests/Feature/Documents/DocumentsBaseTest.php new file mode 100644 index 0000000..b609ddc --- /dev/null +++ b/tests/Feature/Documents/DocumentsBaseTest.php @@ -0,0 +1,149 @@ +role(UserRole::ORG_ADMIN) + ->inRandomOrder() + ->get(); + } + + protected function getOrgAdminWithInactiveOrg(): User + { + return Organisation::query() + ->whereStatus(OrganisationStatus::inactive) + ->with('users') + ->inRandomOrder() + ->first() + ->users + ->first(); + } + + protected function createOrganisations(int $count = 3, string $status = 'active'): void + { + $options = ['user', 'document']; + if ($status === 'inactive') { + Organisation::factory() + ->count($count) + ->withUserAndDocuments() + ->randomStatus() + ->createQuietly(); + + return; + } + if ($status === 'random') { + Organisation::factory() + ->count($count) + ->withUserAndDocuments() + ->randomStatus() + ->createQuietly(); + + return; + } + Organisation::factory() + ->count($count) + ->withUserAndDocuments() + ->createQuietly(); + } + + public function viewDocuments(): Livewire\Testing\TestableLivewire + { + $documents = Document::all(); + + return Livewire::test(DocumentResource\Pages\ListDocuments::class) + ->assertSuccessful() + ->assertCountTableRecords(9) + ->assertCanSeeTableRecords($documents) + ->assertCanRenderTableColumn('name') + ->filterTable('type', DocumentType::contract->value) + ->assertCanSeeTableRecords($documents->where('type', DocumentType::contract)) + ->resetTableFilters() + ->assertCanRenderTableColumn('organisation.name') + ->sortTable('name') + ->assertCanSeeTableRecords($documents->sortBy('name'), inOrder: true) + ->assertCanRenderTableColumn('media.file_name') + ->sortTable('media.file_name') + ->assertCanSeeTableRecords($documents->sortBy('media.file_name'), inOrder: true) + ->assertCanRenderTableColumn('signed_at') + ->sortTable('signed_at') + ->assertCanSeeTableRecords($documents->sortBy('signed_at'), inOrder: true) + ->assertCanRenderTableColumn('expires_at') + ->sortTable('expires_at') + ->assertCanSeeTableRecords($documents->sortBy('expires_at'), inOrder: true); + } + + public function viewProtocolDocumentByUser(Document $document): Livewire\Testing\TestableLivewire + { + return Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsVisible('name') + ->assertFormFieldIsVisible('type') + ->assertFormFieldIsVisible('signed_at') + ->assertFormFieldIsVisible('expires_at') + ->assertFormFieldIsVisible('never_expires') + ->assertFormFieldIsVisible('document'); + } + + public function viewDocumentByUser(Document $document): Livewire\Testing\TestableLivewire + { + return Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsVisible('name') + ->assertFormFieldIsVisible('type') + ->assertFormFieldIsHidden('signed_at') + ->assertFormFieldIsHidden('expires_at') + ->assertFormFieldIsHidden('never_expires') + ->assertFormFieldIsVisible('document'); + } + + public function editDocument(Document $document): Livewire\Testing\TestableLivewire + { + return Livewire::test(DocumentResource\Pages\EditDocument::class, ['record' => $document->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsEnabled('organisation_id') + ->assertFormFieldIsVisible('name') + ->assertFormFieldIsEnabled('name') + ->assertFormFieldIsVisible('type') + ->assertFormFieldIsEnabled('type') + ->assertFormFieldIsVisible('name') + ->assertFormFieldIsEnabled('name') + ->assertFormFieldIsVisible('document') + ->assertFormFieldIsEnabled('document'); + } +} diff --git a/tests/Feature/Documents/OrganisationAdminTest.php b/tests/Feature/Documents/OrganisationAdminTest.php new file mode 100644 index 0000000..69880cb --- /dev/null +++ b/tests/Feature/Documents/OrganisationAdminTest.php @@ -0,0 +1,243 @@ +createOrganisations(); + $this->createOrganisations(2, 'inactive'); + $this->user = User::query() + ->role(UserRole::ORG_ADMIN) + ->inRandomOrder() + ->first(); +// $this->actingAs($this->user); + } + + public function testOrgAdminCanViewDocuments(): void + { + $this->actingAs($this->user); + $userOganisationID = $this->user->organisation_id; + $documents = Document::query() + ->whereOrganisationId($userOganisationID) + ->get(); + $documentsFromAnotherOrg = Document::query() + ->whereNot('organisation_id', $userOganisationID) + ->get(); + Livewire::test(DocumentResource\Pages\ListDocuments::class) + ->assertSuccessful() + ->assertPageActionHidden('create') + ->assertPageActionDisabled('create') + ->assertCountTableRecords(3) + ->assertCanSeeTableRecords($documents) + ->assertCanNotSeeTableRecords($documentsFromAnotherOrg) + ->assertCanRenderTableColumn('name') + ->filterTable('type', DocumentType::contract->value) + ->assertCanSeeTableRecords($documents->where('type', DocumentType::contract)) + ->resetTableFilters() + ->sortTable('name') + ->assertCanSeeTableRecords($documents->sortBy('name'), inOrder: true) + ->assertCanNotRenderTableColumn('organisation.name') + ->assertCanRenderTableColumn('media.file_name') + ->sortTable('media.file_name') + ->assertCanSeeTableRecords($documents->sortBy('media.file_name'), inOrder: true) + ->assertCanRenderTableColumn('signed_at') + ->sortTable('signed_at') + ->assertCanSeeTableRecords($documents->sortBy('signed_at'), inOrder: true) + ->assertCanRenderTableColumn('expires_at') + ->sortTable('expires_at') + ->assertCanSeeTableRecords($documents->sortBy('expires_at'), inOrder: true); + } + + public function testViewDocumentsByInactiveOrgAdmin(): void + { + $url = DocumentResource::getUrl('index'); + + $this->createOrganisations(2, 'inactive'); + $orgAdmin = $this->getOrgAdminWithInactiveOrg(2); + $this->actingAs($orgAdmin) + ->get($url) + ->assertRedirect('/login'); + } + + public function testOrgAdminCanViewDocument(): void + { + $document = $this->user + ->organisation + ->documents + ->filter(fn ($item) => $item->type === DocumentType::protocol) + ->first(); + $this->actingAs($this->user); + + $this->viewProtocolDocumentByUser($document) + ->assertPageActionHidden('edit') + ->assertPageActionHidden('delete') + ->assertPageActionDisabled('edit') + ->assertPageActionDisabled('delete'); + + $document = $this->user + ->organisation + ->documents + ->filter(fn ($item) => $item->type !== DocumentType::protocol) + ->first(); + + $this->viewDocumentByUser($document) + ->assertPageActionHidden('edit') + ->assertPageActionHidden('delete') + ->assertPageActionDisabled('edit') + ->assertPageActionDisabled('delete'); + } + + public function testInactiveOrgAdminCanNotViewDocument(): void + { + $this->createOrganisations(2, 'inactive'); + $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->inRandomOrder() + ->first(); + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + + $this->actingAs($orgAdmins) + ->withSession(['banned' => false]) + ->get($url) + ->assertRedirect('/login'); + } + + public function testAnotherOrgAdminCanNotViewDocument(): void + { +// dd(Document::all()->count()); + $document = Document::query() + ->whereNot('organisation_id', $this->user->organisation_id) + ->inRandomOrder() + ->first(); +// dd($this->user->organisation_id, $document); + + Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + ->assertForbidden(); + } + + public function testAnotherInactiveOrgAdminCanNotViewDocument(): void + { + $this->createOrganisations(2, 'inactive'); + $orgAdmin = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->whereNot('organisation_id', $orgAdmin->organisation_id) + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('view', ['record' => $document->id]); + + $this->actingAs($orgAdmin) + ->withSession(['banned' => false]) + ->get($url) + ->assertRedirect('/login'); + } + + public function testOrgAdminCanNotEditDocument(): void + { + $document = $this->user + ->organisation + ->documents + ->first(); + + Livewire::test(DocumentResource\Pages\EditDocument::class, ['record' => $document->id]) + ->assertForbidden(); + } + + public function testInactiveOrgAdminCanNotEditDocument(): void + { + $this->createOrganisations(2, 'inactive'); + $orgAdmin = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->where('organisation_id', $orgAdmin->organisation_id) + ->inRandomOrder() + ->first(); + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + + $this->actingAs($orgAdmin) + ->withSession(['banned' => false]) + ->get($url) + ->assertRedirect('/login'); + } + + public function testAnotherOrgAdminCanNotEditDocument(): void + { + $document = Document::query() + ->whereNot('organisation_id', $this->user->organisation_id) + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + + $this->actingAs($this->user) + ->withSession(['banned' => false]) + ->get($url) + ->assertNotFound(); + } + + public function testAnotherInactiveOrgAdminCanNotEditDocument(): void + { + $this->createOrganisations(2, 'inactive'); + $orgAdmin = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->whereNot('organisation_id', $orgAdmin->organisation_id) + ->inRandomOrder() + ->first(); + + $url = DocumentResource::getUrl('edit', ['record' => $document->id]); + + $this->actingAs($orgAdmin) + ->withSession(['banned' => false]) + ->get($url) + ->assertRedirect('/login'); + } + + public function testInactiveOrgAdminCanNotDeleteDocument(): void + { + $this->createOrganisations(2, 'inactive'); + $orgAdmin = $this->getOrgAdminWithInactiveOrg(); + + $document = Document::query() + ->where('organisation_id', $orgAdmin->organisation_id) + ->inRandomOrder() + ->first(); + + Livewire::actingAs($orgAdmin); + Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + ->assertPageActionDisabled('delete'); + } + + public function testOrgAdminCanNotCreateDocument() + { + $orgAdmins = $this->getOrgAdmin()->random(); + + Livewire::actingAs($orgAdmins); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->assertForbidden(); + } + + public function testInactiveOrgAdminCanNotCreateDocument() + { + $this->createOrganisations(2, 'inactive'); + $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + + Livewire::actingAs($orgAdmins); + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->assertForbidden(); + } +} diff --git a/tests/Feature/Documents/PlatformCoordinatorTest.php b/tests/Feature/Documents/PlatformCoordinatorTest.php new file mode 100644 index 0000000..1168114 --- /dev/null +++ b/tests/Feature/Documents/PlatformCoordinatorTest.php @@ -0,0 +1,73 @@ +user = User::factory() + ->platformCoordinator() + ->create(); + Livewire::actingAs($this->user); + + $this->createOrganisations(3, 'random'); + } + + public function testPlatformCoordinatorCanViewDocuments(): void + { + $this->viewDocuments() + ->assertPageActionHidden('create') + ->assertPageActionDisabled('create'); + } + + public function testPlatformCoordinatorCanViewDocument(): void + { + $document = Document::query() + ->whereType(DocumentType::protocol) + ->inRandomOrder() + ->first(); + + $this->viewProtocolDocumentByUser($document) + ->assertPageActionHidden('edit') + ->assertPageActionHidden('delete') + ->assertPageActionDisabled('edit') + ->assertPageActionDisabled('delete'); + + $document = Document::query() + ->whereNot('type', DocumentType::protocol) + ->inRandomOrder() + ->first(); + + $this->viewDocumentByUser($document) + ->assertPageActionHidden('edit') + ->assertPageActionHidden('delete') + ->assertPageActionDisabled('edit') + ->assertPageActionDisabled('delete'); + } + + public function testPlatformCoordinatorCanNotEditDocument(): void + { + $document = Document::query() + ->inRandomOrder() + ->first(); + + Livewire::test(DocumentResource\Pages\EditDocument::class, ['record' => $document->id]) + ->assertForbidden(); + } + + public function testPlatformCoordinatorCanNotCreateDocument(): void + { + Livewire::test(DocumentResource\Pages\CreateDocument::class) + ->assertForbidden(); + } +} From 42d4d817aa1c5cdb2b0644971fdeb114a6e41091 Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Thu, 4 Apr 2024 02:18:00 +0300 Subject: [PATCH 05/16] min --- tests/Feature/DocumentsTest.php | 619 -------------------------------- 1 file changed, 619 deletions(-) delete mode 100644 tests/Feature/DocumentsTest.php diff --git a/tests/Feature/DocumentsTest.php b/tests/Feature/DocumentsTest.php deleted file mode 100644 index 23d7a5a..0000000 --- a/tests/Feature/DocumentsTest.php +++ /dev/null @@ -1,619 +0,0 @@ -platformAdmin() - ->create(); - - } - - protected function getPlatformCoordinator(): User - { - return User::factory() - ->platformCoordinator() - ->create(); - } - - protected function getOrgAdminWithActiveOrg(): Collection - { - Organisation::factory() - ->count(5) - ->withRelated() - ->createQuietly(); - return User::query() - ->withoutGlobalScopes() - ->role(UserRole::ORG_ADMIN) - ->get(); - } - - protected function getOrgAdminWithInactiveOrg(): Collection - { - Organisation::factory() - ->count(5) - ->inactive() - ->withRelated() - ->createQuietly(); - return User::query() - ->withoutGlobalScopes() - ->role(UserRole::ORG_ADMIN) - ->get(); - } - - protected function createOrganisations(): void - { - Organisation::factory() - ->count(5) - ->randomStatus() - ->withRelated() - ->createQuietly(); - } - - public function testViewDocumentsWithoutUser() - { - $url = DocumentResource::getUrl('index'); - - $this->withSession(['banned' => false]) - ->get($url) - ->assertFound(); - } - - public function testViewDocumentsByOrgAdmin(): void - { - $url = DocumentResource::getUrl('index'); - - $orgAdmin = $this->getOrgAdminWithActiveOrg()->random(); - $this->actingAs($orgAdmin) - ->withSession(['banned' => false]) - ->get($url) - ->assertSuccessful(); - } - - public function testViewDocumentsByInactiveOrgAdmin(): void - { - $url = DocumentResource::getUrl('index'); - - $orgAdmin = $this->getOrgAdminWithInactiveOrg()->random(); - $this->actingAs($orgAdmin) - ->withSession(['banned' => false]) - ->get($url) - ->assertFound(); - } - - public function testViewDocumentsByPlatformCoordinator(): void - { - $url = DocumentResource::getUrl('index'); - $this->actingAs($this->getPlatformCoordinator()) - ->withSession(['banned' => false]) - ->get($url) - ->assertSuccessful(); - } - - public function testViewDocumentsByPlatformAdmin(): void - { - $url = DocumentResource::getUrl('index'); - $this->actingAs($this->getPlatformAdmins()) - ->withSession(['banned' => false]) - ->get($url) - ->assertSuccessful(); - } - - public function testViewDocumentWithoutUser() - { - $this->createOrganisations(); - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('view', ['record' => $document->id]); - $this->withSession(['banned' => false]) - ->get($url) - ->assertFound(); - } - - public function testViewDocumentByPlatformAdmin(): void - { - $this->createOrganisations(); - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('view', ['record' => $document->id]); - $this->actingAs($this->getPlatformAdmins()) - ->withSession(['banned' => false]) - ->get($url) - ->assertSuccessful(); - } - - public function testViewDocumentByPlatformCoordinator(): void - { - $this->createOrganisations(); - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('view', ['record' => $document->id]); - - $this->actingAs($this->getPlatformCoordinator()) - ->withSession(['banned' => false]) - ->get($url) - ->assertSuccessful(); - } - - public function testViewDocumentByOrgAdmin() - { - $orgAdmins = $this->getOrgAdminWithActiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - $url = DocumentResource::getUrl('view', ['record' => $document->id]); - $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); - - $this->actingAs($documentUser) - ->withSession(['banned' => false]) - ->get($url) - ->assertSuccessful(); - } - - public function testViewDocumentByInactiveOrgAdmin() - { - $orgAdmins = $this->getOrgAdminWithInactiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - $url = DocumentResource::getUrl('view', ['record' => $document->id]); - $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); - - $this->actingAs($documentUser) - ->withSession(['banned' => false]) - ->get($url) - ->assertFound(); - } - - public function testViewDocumentByAnotherOrgAdmin(): void - { - $orgAdmins = $this->getOrgAdminWithActiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('view', ['record' => $document->id]); - - $this->actingAs($orgAdmins->filter(fn ($item) => $item->organisation_id != $document->organisation_id)->first()) - ->withSession(['banned' => false]) - ->get($url) - ->assertNotFound(); - } - - public function testViewDocumentByAnotherInactiveOrgAdmin(): void - { - $orgAdmins = $this->getOrgAdminWithInactiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('view', ['record' => $document->id]); - - $this->actingAs($orgAdmins->filter(fn ($item) => $item->organisation_id != $document->organisation_id)->first()) - ->withSession(['banned' => false]) - ->get($url) - ->assertFound(); - } - - public function testEditDocumentWithoutUser() - { - $this->createOrganisations(); - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('edit', ['record' => $document->id]); - $this->withSession(['banned' => false]) - ->get($url) - ->assertFound(); - } - - public function testEditDocumentByPlatformAdmin(): void - { - $this->createOrganisations(); - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('edit', ['record' => $document->id]); - $this->actingAs($this->getPlatformAdmins()) - ->withSession(['banned' => false]) - ->get($url) - ->assertSuccessful(); - } - - public function testEditDocumentByPlatformCoordinator(): void - { - $this->createOrganisations(); - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('edit', ['record' => $document->id]); - - $this->actingAs($this->getPlatformCoordinator()) - ->withSession(['banned' => false]) - ->get($url) - ->assertForbidden(); - } - - public function testEditDocumentByOrgAdmin() - { - $orgAdmins = $this->getOrgAdminWithActiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - $url = DocumentResource::getUrl('edit', ['record' => $document->id]); - $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); - - $this->actingAs($documentUser) - ->withSession(['banned' => false]) - ->get($url) - ->assertForbidden(); - } - - public function testEditDocumentByInactiveOrgAdmin() - { - $orgAdmins = $this->getOrgAdminWithInactiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - $url = DocumentResource::getUrl('edit', ['record' => $document->id]); - $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); - - $this->actingAs($documentUser) - ->withSession(['banned' => false]) - ->get($url) - ->assertFound(); - } - - public function testEditDocumentByAnotherOrgAdmin(): void - { - $orgAdmins = $this->getOrgAdminWithActiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('edit', ['record' => $document->id]); - - $this->actingAs($orgAdmins->filter(fn ($item) => $item->organisation_id != $document->organisation_id)->first()) - ->withSession(['banned' => false]) - ->get($url) - ->assertNotFound(); - } - - public function testEditDocumentByAnotherInactiveOrgAdmin(): void - { - $orgAdmins = $this->getOrgAdminWithInactiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - - $url = DocumentResource::getUrl('edit', ['record' => $document->id]); - - $this->actingAs($orgAdmins->filter(fn ($item) => $item->organisation_id != $document->organisation_id)->first()) - ->withSession(['banned' => false]) - ->get($url) - ->assertFound(); - } - - public function testDeleteDocumentWithoutUser() - { - $this->assertTrue(true); -// $this->createOrganisations(); -// $document = Document::query() -// ->inRandomOrder() -// ->first(); -// -// \Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) -// ->assertPageActionDisabled('delete'); - } - - public function testDeleteDocumentByPlatformAdmin(): void - { - $this->createOrganisations(); - $document = Document::query() - ->inRandomOrder() - ->first(); - - Livewire::actingAs($this->getPlatformAdmins()); - Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) - ->callPageAction('delete') - ->assertSuccessful(); - } - - public function testDeleteDocumentByPlatformCoordinator(): void - { - $this->createOrganisations(); - $document = Document::query() - ->inRandomOrder() - ->first(); - - Livewire::actingAs($this->getPlatformCoordinator()); - Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) - ->assertPageActionDisabled('delete'); - } - - public function testDeleteDocumentByOrgAdmin() - { - $orgAdmins = $this->getOrgAdminWithActiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); - - Livewire::actingAs($documentUser); - Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) - ->assertPageActionDisabled('delete'); - } - - public function testDeleteDocumentByInactiveOrgAdmin() - { - $orgAdmins = $this->getOrgAdminWithInactiveOrg(); - - $document = Document::query() - ->inRandomOrder() - ->first(); - $documentUser = $orgAdmins->filter(fn ($item) => $item->organisation_id == $document->organisation_id)->first(); - - Livewire::actingAs($documentUser); - Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) - ->assertPageActionDisabled('delete'); - } - - public function testDeleteDocumentByAnotherOrgAdmin(): void - { - $this->assertTrue(true); - -// $orgAdmins = $this->getOrgAdminWithActiveOrg(); -// -// $document = Document::query() -// ->inRandomOrder() -// ->first(); -// -// $documentUser = $orgAdmins->filter(fn($item) => $item->organisation_id != $document->organisation_id)->first(); -// $params = ['record' => $document->id]; -// -// \Livewire::actingAs($documentUser); -// \Livewire::test(DocumentResource\Pages\ViewDocument::class, $params) -// ->assertPageActionDisabled('delete'); - } - - public function testDeleteDocumentByAnotherInactiveOrgAdmin(): void - { - $this->assertTrue(true); - -// $orgAdmins = $this->getOrgAdminWithInactiveOrg(); -// -// $document = Document::query() -// ->inRandomOrder() -// ->first(); -// -// $url = DocumentResource::getUrl('edit', ['record' => $document->id]); -// -// $documentUser = $orgAdmins->filter(fn($item) => $item->organisation_id != $document->organisation_id)->first(); -// $params = ['record' => $document->id]; -// \Livewire::actingAs($documentUser); -// \Livewire::test(DocumentResource\Pages\ViewDocument::class, $params) -// ->assertPageActionDisabled('delete'); - } - - public function testCreateDocumentByPlatformAdmin(): void - { - Livewire::actingAs($this->getPlatformAdmins()); - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->assertSuccessful(); - } - - public function testCreateDocumentByPlatformCoordinator(): void - { - Livewire::actingAs($this->getPlatformCoordinator()); - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->assertForbidden(); - } - - public function testCreateDocumentByOrgAdmin() - { - $orgAdmins = $this->getOrgAdminWithActiveOrg()->random(); - - Livewire::actingAs($orgAdmins); - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->assertForbidden(); - } - - public function testCreateDocumentByInactiveOrgAdmin() - { - $orgAdmins = $this->getOrgAdminWithInactiveOrg()->random(); - - Livewire::actingAs($orgAdmins); - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->assertForbidden(); - } - - - public function testCreateDocument() - { - $this->createOrganisations(); - - $file = \Illuminate\Http\UploadedFile::fake() - ->image(fake()->word() . '.jpg') - ->store('tests'); - - // all data ok - Livewire::actingAs($this->getPlatformAdmins()); - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::contract, - 'document' => [$file]]) - ->call('create') - ->assertHasNoFormErrors(); - - // wrong organisation_id - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->max('id') + 1, - 'name' => fake()->word(), - 'type' => DocumentType::contract, - 'document' => [$file]]) - ->call('create') - ->assertHasFormErrors(['organisation_id']); - - // name over 255 - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->realTextBetween(256, 300), - 'type' => DocumentType::contract, - 'document' => [$file]]) - ->call('create') - ->assertHasFormErrors(['name']); - - // wrong type - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => fake()->word(), - 'document' => [$file]]) - ->call('create') - ->assertHasFormErrors(['type']); - - // hidden signed_at, expired_at and never_expires when document type is contract - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::contract, - 'document' => [$file]]) - ->assertFormFieldIsHidden('signed_at') - ->assertFormFieldIsHidden('expires_at') - ->assertFormFieldIsHidden('never_expires'); - - // hidden signed_at, expired_at and never_expires when document type is other - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::other, - 'document' => [$file]]) - ->assertFormFieldIsHidden('signed_at') - ->assertFormFieldIsHidden('expires_at') - ->assertFormFieldIsHidden('never_expires'); - - // visible signed_at, expired_at and never_expires - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::protocol, - 'document' => [$file]]) - ->assertFormFieldIsVisible('signed_at') - ->assertFormFieldIsVisible('expires_at') - ->assertFormFieldIsVisible('never_expires'); - - // document type protocol without start/end date - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::protocol, - 'document' => [$file]]) - ->call('create') - ->assertHasFormErrors(['signed_at' => 'required', - 'expires_at' => 'required' - ]); - - // document type protocol with never expires and without start/end date - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::protocol, - 'document' => [$file], - 'never_expires' => true]) - ->call('create') - ->assertHasFormErrors(['signed_at' => 'required']); - - // document type protocol with never expires and without start/end date - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::protocol, - 'document' => [$file], - 'never_expires' => true]) - ->call('create') - ->assertHasFormErrors(['signed_at' => 'required']); - - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::protocol, - 'document' => [$file], - 'signed_at' => fake()->date(), - 'never_expires' => true]) - ->call('create') - ->assertHasNoFormErrors(); - - $endDate = fake()->date(); - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::protocol, - 'document' => [$file], - 'signed_at' => fake()->date(max: $endDate), - 'expires_at' => $endDate]) - ->call('create') - ->assertHasNoFormErrors(); - - $startDate = fake()->date(); - Livewire::test(DocumentResource\Pages\CreateDocument::class) - ->fillForm(['organisation_id' => Organisation::query()->inRandomOrder()->first()->id, - 'name' => fake()->word(), - 'type' => DocumentType::protocol, - 'document' => [$file], - 'signed_at' => $startDate, - 'expires_at' => fake()->date(max: $startDate)]) - ->call('create') - ->assertHasFormErrors(['expires_at']); - } - -} From 4ff1b8a56adc095dc064b04f01f68a1b63363d61 Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Fri, 5 Apr 2024 11:26:44 +0300 Subject: [PATCH 06/16] min --- tests/Feature/Documents/DocumentsBaseTest.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/Feature/Documents/DocumentsBaseTest.php b/tests/Feature/Documents/DocumentsBaseTest.php index b609ddc..29ee74e 100644 --- a/tests/Feature/Documents/DocumentsBaseTest.php +++ b/tests/Feature/Documents/DocumentsBaseTest.php @@ -54,14 +54,12 @@ protected function getOrgAdminWithInactiveOrg(): User protected function createOrganisations(int $count = 3, string $status = 'active'): void { - $options = ['user', 'document']; if ($status === 'inactive') { Organisation::factory() ->count($count) + ->inactive() ->withUserAndDocuments() - ->randomStatus() ->createQuietly(); - return; } if ($status === 'random') { From abf555290bb671d819cac0472d891f5209290663 Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Tue, 9 Apr 2024 13:58:23 +0300 Subject: [PATCH 07/16] min --- .../VolunteersRelationManager.php | 2 +- .../Actions/ImportVolunteersAction.php | 145 ++++++ .../Pages/ListVolunteers.php | 109 +---- composer.lock | 446 +++++++++--------- 4 files changed, 372 insertions(+), 330 deletions(-) create mode 100644 app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php diff --git a/app/Filament/Resources/OrganisationResource/RelationManagers/VolunteersRelationManager.php b/app/Filament/Resources/OrganisationResource/RelationManagers/VolunteersRelationManager.php index 0dda4fd..ff41483 100644 --- a/app/Filament/Resources/OrganisationResource/RelationManagers/VolunteersRelationManager.php +++ b/app/Filament/Resources/OrganisationResource/RelationManagers/VolunteersRelationManager.php @@ -130,7 +130,7 @@ public static function table(Table $table): Table ]) ->headerActions([ ExportAction::make(), - +// VolunteerResource\Actions\ImportVolunteersAction::make(), Tables\Actions\CreateAction::make() ->requiresConfirmation() ->modalHeading(__('volunteer.modal.heading')) diff --git a/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php b/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php new file mode 100644 index 0000000..01597bc --- /dev/null +++ b/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php @@ -0,0 +1,145 @@ +label(__('volunteer.field.import')); + $this->successNotificationTitle(__('volunteer.field.success_import')); + $this->visible(fn () => auth()->user->isPlatformAdmin() || auth()->user->isOrgAdmin()); + $this->fields([ + + ImportField::make('first_name') + ->label(__('volunteer.field.first_name')) + ->required(), + ImportField::make('last_name') + ->label(__('volunteer.field.last_name')) + ->required(), + ImportField::make('email') + ->label(__('volunteer.field.email')) + ->required(), + ImportField::make('phone') + ->label(__('volunteer.field.phone')), + ImportField::make('cnp') + ->label(__('volunteer.field.cnp')), + ImportField::make('role') + ->label(__('volunteer.field.role')) + ->required(), + ImportField::make('specializations') + ->label(__('volunteer.field.specializations')) + ->required(), + ImportField::make('has_first_aid_accreditation') + ->label(__('volunteer.field.has_first_aid_accreditation')), + ImportField::make('county') + ->label(__('general.county')), + ImportField::make('city') + ->label(__('general.city')), + ]); + + $this->handleRecordCreation(function (array $data) { + dd($data); + if (! isset($data['first_name']) || + ! isset($data['last_name']) || + ! isset($data['email']) || + ! isset($data['role']) || + ! isset($data['specializations'])) { + return new Volunteer(); + } + + $organisation = Organisation::query() + ->where('name', 'like', $data['organisation_name']) + ->first(); + + if (! $organisation) { + return new Volunteer(); + } + + $roles = VolunteerRole::options(); + $role = array_search($data['role'], $roles); + + $specializations = explode(',', $data['specializations']); + $allSpecializations = VolunteerSpecialization::options(); + $newSpecializations = []; + foreach ($specializations as $specialization) { + $newSpecializations[] = array_search(trim($specialization), $allSpecializations); + } + + $firstAID = false; + if (isset($data['has_first_aid_accreditation'])) { + $firstAID = (bool) $data['has_first_aid_accreditation']; + } + + $fields = ['organisation_id' => $organisation->id, + 'first_name' => $data['first_name'], + 'last_name' => $data['last_name'], + 'email' => $data['email'], + 'phone' => $data['phone'] ?? null, + 'cnp' => $data['cnp'] ?? null, + 'role' => $role, + 'specializations' => array_filter($newSpecializations), + 'has_first_aid_accreditation' => $firstAID, + ]; + + if (isset($data['county'])) { + $county = County::query() + ->where('name', 'like', $data['county']) + ->first(); + + if ($county) { + $fields['county_id'] = $county->id; + + if ($data['city']) { + $city = City::query() + ->search($data['city']) + ->where('county_id', $county->id) + ->first(); + + if ($city) { + $fields['city_id'] = $city->id; + } + } + } + } + + return Volunteer::create($fields); + }); + +// $formSchema = array_merge( +// [Select::make('organisation') +// ->options(Organisation::all() +// ->pluck('name', 'id')) +// ->searchable() +// ->label(__('organisation.label.singular')) +// ->required(), +// ], +// $this->getFormSchema() +// ); + + $formSchema = $this->getFormSchema(); + $formSchema[] = Select::make('organisation') + ->options(Organisation::all() + ->pluck('name', 'id')) + ->searchable() + ->label(__('organisation.label.singular')) + ->required(); + + $this->form($formSchema); + } +} diff --git a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php index 1822ff8..1094ae5 100644 --- a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php +++ b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php @@ -4,18 +4,11 @@ namespace App\Filament\Resources\VolunteerResource\Pages; -use App\Enum\VolunteerRole; -use App\Enum\VolunteerSpecialization; use App\Filament\Resources\VolunteerResource; -use App\Models\City; -use App\Models\County; -use App\Models\Organisation; -use App\Models\Volunteer; +use App\Filament\Resources\VolunteerResource\Actions\ImportVolunteersAction; use Filament\Pages\Actions; use Filament\Resources\Pages\ListRecords; use Illuminate\Database\Eloquent\Builder; -use Konnco\FilamentImport\Actions\ImportAction; -use Konnco\FilamentImport\Actions\ImportField; class ListVolunteers extends ListRecords { @@ -25,105 +18,7 @@ protected function getActions(): array { return [ Actions\CreateAction::make(), - ImportAction::make() - ->fields([ - ImportField::make('organisation_name') - ->label(__('volunteer.field.organisation')) - ->required(), - ImportField::make('first_name') - ->label(__('volunteer.field.first_name')) - ->required(), - ImportField::make('last_name') - ->label(__('volunteer.field.last_name')) - ->required(), - ImportField::make('email') - ->label(__('volunteer.field.email')) - ->required(), - ImportField::make('phone') - ->label(__('volunteer.field.phone')), - ImportField::make('cnp') - ->label(__('volunteer.field.cnp')), - ImportField::make('role') - ->label(__('volunteer.field.role')) - ->required(), - ImportField::make('specializations') - ->label(__('volunteer.field.specializations')) - ->required(), - ImportField::make('has_first_aid_accreditation') - ->label(__('volunteer.field.has_first_aid_accreditation')), - ImportField::make('county') - ->label(__('general.county')), - ImportField::make('city') - ->label(__('general.city')), - ]) - ->handleRecordCreation(function (array $data) { - if (! isset($data['organisation_name']) || - ! isset($data['first_name']) || - ! isset($data['last_name']) || - ! isset($data['email']) || - ! isset($data['role']) || - ! isset($data['specializations'])) { - return new Volunteer(); - } - - $organisation = Organisation::query() - ->where('name', 'like', $data['organisation_name']) - ->first(); - - if (! $organisation) { - return new Volunteer(); - } - - $roles = VolunteerRole::options(); - $role = array_search($data['role'], $roles); - - $specializations = explode(',', $data['specializations']); - $allSpecializations = VolunteerSpecialization::options(); - $newSpecializations = []; - foreach ($specializations as $specialization) { - $newSpecializations[] = array_search(trim($specialization), $allSpecializations); - } - - $firstAID = false; - if (isset($data['has_first_aid_accreditation'])) { - $firstAID = (bool) $data['has_first_aid_accreditation']; - } - - $fields = ['organisation_id' => $organisation->id, - 'first_name' => $data['first_name'], - 'last_name' => $data['last_name'], - 'email' => $data['email'], - 'phone' => $data['phone'] ?? null, - 'cnp' => $data['cnp'] ?? null, - 'role' => $role, - 'specializations' => array_filter($newSpecializations), - 'has_first_aid_accreditation' => $firstAID, - ]; - - if (isset($data['county'])) { - $county = County::query() - ->where('name', 'like', $data['county']) - ->first(); - - if ($county) { - $fields['county_id'] = $county->id; - - if ($data['city']) { - $city = City::query() - ->search($data['city']) - ->where('county_id', $county->id) - ->first(); - - if ($city) { - $fields['city_id'] = $city->id; - } - } - } - } - - return Volunteer::create($fields); - }) - ->label(__('volunteer.field.import')), + ImportVolunteersAction::make(), ]; } diff --git a/composer.lock b/composer.lock index 2a7a35f..9a635e5 100644 --- a/composer.lock +++ b/composer.lock @@ -132,16 +132,16 @@ }, { "name": "anourvalar/eloquent-serialize", - "version": "1.2.20", + "version": "1.2.22", "source": { "type": "git", "url": "https://github.com/AnourValar/eloquent-serialize.git", - "reference": "f8408e92768ff295990e3a1edb7e47950e008c63" + "reference": "6e91093c10940859c4b0549b6a90f18d8db45998" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/f8408e92768ff295990e3a1edb7e47950e008c63", - "reference": "f8408e92768ff295990e3a1edb7e47950e008c63", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/6e91093c10940859c4b0549b6a90f18d8db45998", + "reference": "6e91093c10940859c4b0549b6a90f18d8db45998", "shasum": "" }, "require": { @@ -192,9 +192,9 @@ ], "support": { "issues": "https://github.com/AnourValar/eloquent-serialize/issues", - "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.20" + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.22" }, - "time": "2024-03-08T14:48:54+00:00" + "time": "2024-03-22T12:56:46+00:00" }, { "name": "aws/aws-crt-php", @@ -252,16 +252,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.300.16", + "version": "3.304.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "d6afaeaa0c0e2c3be5f5223f72c0b5e2b2667b67" + "reference": "29a79bac02997f3053559f6961a0e83622a14f88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d6afaeaa0c0e2c3be5f5223f72c0b5e2b2667b67", - "reference": "d6afaeaa0c0e2c3be5f5223f72c0b5e2b2667b67", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/29a79bac02997f3053559f6961a0e83622a14f88", + "reference": "29a79bac02997f3053559f6961a0e83622a14f88", "shasum": "" }, "require": { @@ -341,9 +341,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.300.16" + "source": "https://github.com/aws/aws-sdk-php/tree/3.304.0" }, - "time": "2024-03-12T18:04:55+00:00" + "time": "2024-04-08T18:03:38+00:00" }, { "name": "bacon/bacon-qr-code", @@ -2773,16 +2773,16 @@ }, { "name": "laravel/prompts", - "version": "v0.1.16", + "version": "v0.1.17", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781" + "reference": "8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/ca6872ab6aec3ab61db3a61f83a6caf764ec7781", - "reference": "ca6872ab6aec3ab61db3a61f83a6caf764ec7781", + "url": "https://api.github.com/repos/laravel/prompts/zipball/8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5", + "reference": "8ee9f87f7f9eadcbe21e9e72cd4176b2f06cd5b5", "shasum": "" }, "require": { @@ -2824,9 +2824,9 @@ ], "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.1.16" + "source": "https://github.com/laravel/prompts/tree/v0.1.17" }, - "time": "2024-02-21T19:25:27+00:00" + "time": "2024-03-13T16:05:43+00:00" }, { "name": "laravel/sanctum", @@ -3210,16 +3210,16 @@ }, { "name": "league/flysystem", - "version": "3.25.0", + "version": "3.27.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "4c44347133618cccd9b3df1729647a1577b4ad99" + "reference": "4729745b1ab737908c7d055148c9a6b3e959832f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4c44347133618cccd9b3df1729647a1577b4ad99", - "reference": "4c44347133618cccd9b3df1729647a1577b4ad99", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4729745b1ab737908c7d055148c9a6b3e959832f", + "reference": "4729745b1ab737908c7d055148c9a6b3e959832f", "shasum": "" }, "require": { @@ -3284,7 +3284,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.25.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.27.0" }, "funding": [ { @@ -3296,20 +3296,20 @@ "type": "github" } ], - "time": "2024-03-09T17:06:45+00:00" + "time": "2024-04-07T19:17:50+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.24.0", + "version": "3.27.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513" + "reference": "3e6ce2f972f1470db779f04d29c289dcd2c32837" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", - "reference": "809474e37b7fb1d1f8bcc0f8a98bc1cae99aa513", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/3e6ce2f972f1470db779f04d29c289dcd2c32837", + "reference": "3e6ce2f972f1470db779f04d29c289dcd2c32837", "shasum": "" }, "require": { @@ -3349,7 +3349,7 @@ "storage" ], "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.24.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.27.0" }, "funding": [ { @@ -3361,20 +3361,20 @@ "type": "github" } ], - "time": "2024-01-26T18:43:21+00:00" + "time": "2024-04-07T19:16:54+00:00" }, { "name": "league/flysystem-local", - "version": "3.23.1", + "version": "3.25.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00" + "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/b884d2bf9b53bb4804a56d2df4902bb51e253f00", - "reference": "b884d2bf9b53bb4804a56d2df4902bb51e253f00", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/61a6a90d6e999e4ddd9ce5adb356de0939060b92", + "reference": "61a6a90d6e999e4ddd9ce5adb356de0939060b92", "shasum": "" }, "require": { @@ -3408,8 +3408,7 @@ "local" ], "support": { - "issues": "https://github.com/thephpleague/flysystem-local/issues", - "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.1" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.25.1" }, "funding": [ { @@ -3421,7 +3420,7 @@ "type": "github" } ], - "time": "2024-01-26T18:25:23+00:00" + "time": "2024-03-15T19:58:44+00:00" }, { "name": "league/glide", @@ -3958,16 +3957,16 @@ }, { "name": "masterminds/html5", - "version": "2.8.1", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", - "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", "shasum": "" }, "require": { @@ -3975,7 +3974,7 @@ "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" }, "type": "library", "extra": { @@ -4019,9 +4018,9 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" }, - "time": "2023-05-10T11:58:31+00:00" + "time": "2024-03-31T07:05:07+00:00" }, { "name": "monolog/monolog", @@ -4447,21 +4446,21 @@ }, { "name": "nikic/php-parser", - "version": "v4.18.0", + "version": "v4.19.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", - "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.1" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", @@ -4497,9 +4496,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" }, - "time": "2023-12-10T21:03:43+00:00" + "time": "2024-03-17T08:10:35+00:00" }, { "name": "nunomaduro/termwind", @@ -4914,16 +4913,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.26.0", + "version": "1.28.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "231e3186624c03d7e7c890ec662b81e6b0405227" + "reference": "cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/231e3186624c03d7e7c890ec662b81e6b0405227", - "reference": "231e3186624c03d7e7c890ec662b81e6b0405227", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb", + "reference": "cd06d6b1a1b3c75b0b83f97577869fd85a3cd4fb", "shasum": "" }, "require": { @@ -4955,9 +4954,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.26.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.28.0" }, - "time": "2024-02-23T16:05:55+00:00" + "time": "2024-04-03T18:51:33+00:00" }, { "name": "pragmarx/google2fa", @@ -5425,16 +5424,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.0", + "version": "v0.12.3", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d" + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/750bf031a48fd07c673dbe3f11f72362ea306d0d", - "reference": "750bf031a48fd07c673dbe3f11f72362ea306d0d", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", + "reference": "b6b6cce7d3ee8fbf31843edce5e8f5a72eff4a73", "shasum": "" }, "require": { @@ -5498,9 +5497,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.0" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.3" }, - "time": "2023-12-20T15:28:09+00:00" + "time": "2024-04-02T15:57:53+00:00" }, { "name": "pxlrbt/filament-excel", @@ -5963,16 +5962,16 @@ }, { "name": "sentry/sentry-laravel", - "version": "4.3.1", + "version": "4.4.1", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-laravel.git", - "reference": "631a5eb59c9469ce1722233337c11747fc620a8d" + "reference": "9fd34f41b84377d73ae3184627d454993757c581" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/631a5eb59c9469ce1722233337c11747fc620a8d", - "reference": "631a5eb59c9469ce1722233337c11747fc620a8d", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/9fd34f41b84377d73ae3184627d454993757c581", + "reference": "9fd34f41b84377d73ae3184627d454993757c581", "shasum": "" }, "require": { @@ -6036,7 +6035,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-laravel/issues", - "source": "https://github.com/getsentry/sentry-laravel/tree/4.3.1" + "source": "https://github.com/getsentry/sentry-laravel/tree/4.4.1" }, "funding": [ { @@ -6048,7 +6047,7 @@ "type": "custom" } ], - "time": "2024-03-13T09:37:21+00:00" + "time": "2024-04-04T14:46:42+00:00" }, { "name": "spatie/image", @@ -6350,16 +6349,16 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.16.3", + "version": "1.16.4", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "59db18c2e20d49a0b6d447bb1c654f6c123beb9e" + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/59db18c2e20d49a0b6d447bb1c654f6c123beb9e", - "reference": "59db18c2e20d49a0b6d447bb1c654f6c123beb9e", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", "shasum": "" }, "require": { @@ -6398,7 +6397,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.3" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.4" }, "funding": [ { @@ -6406,7 +6405,7 @@ "type": "github" } ], - "time": "2024-03-07T07:35:57+00:00" + "time": "2024-03-20T07:29:11+00:00" }, { "name": "spatie/temporary-directory", @@ -6471,16 +6470,16 @@ }, { "name": "symfony/console", - "version": "v6.4.4", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0d9e4eb5ad413075624378f474c4167ea202de78" + "reference": "a2708a5da5c87d1d0d52937bdeac625df659e11f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0d9e4eb5ad413075624378f474c4167ea202de78", - "reference": "0d9e4eb5ad413075624378f474c4167ea202de78", + "url": "https://api.github.com/repos/symfony/console/zipball/a2708a5da5c87d1d0d52937bdeac625df659e11f", + "reference": "a2708a5da5c87d1d0d52937bdeac625df659e11f", "shasum": "" }, "require": { @@ -6545,7 +6544,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.4" + "source": "https://github.com/symfony/console/tree/v6.4.6" }, "funding": [ { @@ -6561,7 +6560,7 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:10+00:00" + "time": "2024-03-29T19:07:53+00:00" }, { "name": "symfony/css-selector", @@ -6697,16 +6696,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.4.4", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "c725219bdf2afc59423c32793d5019d2a904e13a" + "reference": "64db1c1802e3a4557e37ba33031ac39f452ac5d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/c725219bdf2afc59423c32793d5019d2a904e13a", - "reference": "c725219bdf2afc59423c32793d5019d2a904e13a", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/64db1c1802e3a4557e37ba33031ac39f452ac5d4", + "reference": "64db1c1802e3a4557e37ba33031ac39f452ac5d4", "shasum": "" }, "require": { @@ -6752,7 +6751,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.4.4" + "source": "https://github.com/symfony/error-handler/tree/v6.4.6" }, "funding": [ { @@ -6768,7 +6767,7 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:10+00:00" + "time": "2024-03-19T11:56:30+00:00" }, { "name": "symfony/event-dispatcher", @@ -6852,16 +6851,16 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + "reference": "4e64b49bf370ade88e567de29465762e316e4224" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", - "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/4e64b49bf370ade88e567de29465762e316e4224", + "reference": "4e64b49bf370ade88e567de29465762e316e4224", "shasum": "" }, "require": { @@ -6908,7 +6907,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.2" }, "funding": [ { @@ -6924,7 +6923,7 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/finder", @@ -7069,16 +7068,16 @@ }, { "name": "symfony/http-kernel", - "version": "v6.4.5", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "f6947cb939d8efee137797382cb4db1af653ef75" + "reference": "060038863743fd0cd982be06acecccf246d35653" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f6947cb939d8efee137797382cb4db1af653ef75", - "reference": "f6947cb939d8efee137797382cb4db1af653ef75", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/060038863743fd0cd982be06acecccf246d35653", + "reference": "060038863743fd0cd982be06acecccf246d35653", "shasum": "" }, "require": { @@ -7162,7 +7161,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.4.5" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.6" }, "funding": [ { @@ -7178,20 +7177,20 @@ "type": "tidelift" } ], - "time": "2024-03-04T21:00:47+00:00" + "time": "2024-04-03T06:09:15+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.4", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "791c5d31a8204cf3db0c66faab70282307f4376b" + "reference": "677f34a6f4b4559e08acf73ae0aec460479e5859" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/791c5d31a8204cf3db0c66faab70282307f4376b", - "reference": "791c5d31a8204cf3db0c66faab70282307f4376b", + "url": "https://api.github.com/repos/symfony/mailer/zipball/677f34a6f4b4559e08acf73ae0aec460479e5859", + "reference": "677f34a6f4b4559e08acf73ae0aec460479e5859", "shasum": "" }, "require": { @@ -7242,7 +7241,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.4" + "source": "https://github.com/symfony/mailer/tree/v6.4.6" }, "funding": [ { @@ -7258,20 +7257,20 @@ "type": "tidelift" } ], - "time": "2024-02-03T21:33:47+00:00" + "time": "2024-03-27T21:14:17+00:00" }, { "name": "symfony/mime", - "version": "v6.4.3", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "5017e0a9398c77090b7694be46f20eb796262a34" + "reference": "14762b86918823cb42e3558cdcca62e58b5227fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/5017e0a9398c77090b7694be46f20eb796262a34", - "reference": "5017e0a9398c77090b7694be46f20eb796262a34", + "url": "https://api.github.com/repos/symfony/mime/zipball/14762b86918823cb42e3558cdcca62e58b5227fe", + "reference": "14762b86918823cb42e3558cdcca62e58b5227fe", "shasum": "" }, "require": { @@ -7292,6 +7291,7 @@ "league/html-to-markdown": "^5.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.4|^7.0", "symfony/property-access": "^5.4|^6.0|^7.0", "symfony/property-info": "^5.4|^6.0|^7.0", "symfony/serializer": "^6.3.2|^7.0" @@ -7326,7 +7326,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.3" + "source": "https://github.com/symfony/mime/tree/v6.4.6" }, "funding": [ { @@ -7342,7 +7342,7 @@ "type": "tidelift" } ], - "time": "2024-01-30T08:32:12+00:00" + "time": "2024-03-21T19:36:20+00:00" }, { "name": "symfony/options-resolver", @@ -8185,16 +8185,16 @@ }, { "name": "symfony/psr-http-message-bridge", - "version": "v7.0.3", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "d9fadaf9541d7c01c307e48905d7ce1dbee6bf38" + "reference": "fbc500cbcb64d3ea7469f019ab7aa717b320ff3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d9fadaf9541d7c01c307e48905d7ce1dbee6bf38", - "reference": "d9fadaf9541d7c01c307e48905d7ce1dbee6bf38", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/fbc500cbcb64d3ea7469f019ab7aa717b320ff3f", + "reference": "fbc500cbcb64d3ea7469f019ab7aa717b320ff3f", "shasum": "" }, "require": { @@ -8248,7 +8248,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.0.3" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.0.6" }, "funding": [ { @@ -8264,20 +8264,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-03-28T09:20:36+00:00" }, { "name": "symfony/routing", - "version": "v6.4.5", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "7fe30068e207d9c31c0138501ab40358eb2d49a4" + "reference": "f2591fd1f8c6e3734656b5d6b3829e8bf81f507c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/7fe30068e207d9c31c0138501ab40358eb2d49a4", - "reference": "7fe30068e207d9c31c0138501ab40358eb2d49a4", + "url": "https://api.github.com/repos/symfony/routing/zipball/f2591fd1f8c6e3734656b5d6b3829e8bf81f507c", + "reference": "f2591fd1f8c6e3734656b5d6b3829e8bf81f507c", "shasum": "" }, "require": { @@ -8331,7 +8331,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.4.5" + "source": "https://github.com/symfony/routing/tree/v6.4.6" }, "funding": [ { @@ -8347,20 +8347,20 @@ "type": "tidelift" } ], - "time": "2024-02-27T12:33:30+00:00" + "time": "2024-03-28T13:28:49+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.1", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0", - "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e", + "reference": "11bbf19a0fb7b36345861e85c5768844c552906e", "shasum": "" }, "require": { @@ -8413,7 +8413,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.2" }, "funding": [ { @@ -8429,7 +8429,7 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2023-12-19T21:51:00+00:00" }, { "name": "symfony/string", @@ -8614,16 +8614,16 @@ }, { "name": "symfony/translation-contracts", - "version": "v3.4.1", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "06450585bf65e978026bda220cdebca3f867fde7" + "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7", - "reference": "06450585bf65e978026bda220cdebca3f867fde7", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", + "reference": "43810bdb2ddb5400e5c5e778e27b210a0ca83b6b", "shasum": "" }, "require": { @@ -8672,7 +8672,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.4.2" }, "funding": [ { @@ -8688,7 +8688,7 @@ "type": "tidelift" } ], - "time": "2023-12-26T14:02:43+00:00" + "time": "2024-01-23T14:51:35+00:00" }, { "name": "symfony/uid", @@ -8766,16 +8766,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.4.4", + "version": "v6.4.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "b439823f04c98b84d4366c79507e9da6230944b1" + "reference": "95bd2706a97fb875185b51ecaa6112ec184233d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b439823f04c98b84d4366c79507e9da6230944b1", - "reference": "b439823f04c98b84d4366c79507e9da6230944b1", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/95bd2706a97fb875185b51ecaa6112ec184233d4", + "reference": "95bd2706a97fb875185b51ecaa6112ec184233d4", "shasum": "" }, "require": { @@ -8831,7 +8831,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.4" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.6" }, "funding": [ { @@ -8847,7 +8847,7 @@ "type": "tidelift" } ], - "time": "2024-02-15T11:23:52+00:00" + "time": "2024-03-19T11:56:30+00:00" }, { "name": "tgalopin/html-sanitizer", @@ -9447,16 +9447,16 @@ }, { "name": "composer/class-map-generator", - "version": "1.1.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/composer/class-map-generator.git", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" + "reference": "8286a62d243312ed99b3eee20d5005c961adb311" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", - "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8286a62d243312ed99b3eee20d5005c961adb311", + "reference": "8286a62d243312ed99b3eee20d5005c961adb311", "shasum": "" }, "require": { @@ -9500,7 +9500,7 @@ ], "support": { "issues": "https://github.com/composer/class-map-generator/issues", - "source": "https://github.com/composer/class-map-generator/tree/1.1.0" + "source": "https://github.com/composer/class-map-generator/tree/1.1.1" }, "funding": [ { @@ -9516,20 +9516,20 @@ "type": "tidelift" } ], - "time": "2023-06-30T13:58:57+00:00" + "time": "2024-03-15T12:53:41+00:00" }, { "name": "composer/pcre", - "version": "3.1.2", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/4775f35b2d70865807c89d32c8e7385b86eb0ace", - "reference": "4775f35b2d70865807c89d32c8e7385b86eb0ace", + "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -9571,7 +9571,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.2" + "source": "https://github.com/composer/pcre/tree/3.1.3" }, "funding": [ { @@ -9587,20 +9587,20 @@ "type": "tidelift" } ], - "time": "2024-03-07T15:38:35+00:00" + "time": "2024-03-19T10:26:25+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", "shasum": "" }, "require": { @@ -9611,7 +9611,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -9635,9 +9635,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" }, "funding": [ { @@ -9653,7 +9653,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-03-26T18:29:49+00:00" }, { "name": "doctrine/cache", @@ -10379,16 +10379,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.51.0", + "version": "v3.53.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "127fa74f010da99053e3f5b62672615b72dd6efd" + "reference": "69a19093a9ded8d1baac62ed6c009b8bc148d008" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/127fa74f010da99053e3f5b62672615b72dd6efd", - "reference": "127fa74f010da99053e3f5b62672615b72dd6efd", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/69a19093a9ded8d1baac62ed6c009b8bc148d008", + "reference": "69a19093a9ded8d1baac62ed6c009b8bc148d008", "shasum": "" }, "require": { @@ -10412,6 +10412,7 @@ }, "require-dev": { "facile-it/paraunit": "^1.3 || ^2.0", + "infection/infection": "^0.27.11", "justinrainbow/json-schema": "^5.2", "keradus/cli-executor": "^2.1", "mikey179/vfsstream": "^1.6.11", @@ -10459,7 +10460,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.51.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.53.0" }, "funding": [ { @@ -10467,7 +10468,7 @@ "type": "github" } ], - "time": "2024-02-28T19:50:06+00:00" + "time": "2024-04-08T15:03:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -10522,16 +10523,16 @@ }, { "name": "itsgoingd/clockwork", - "version": "v5.2.0", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "df52c7c4d8d60443ea1d14bcf9b182d4eaaeec26" + "reference": "356b2017decc88d42fc08e903cb41277e3966da1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/df52c7c4d8d60443ea1d14bcf9b182d4eaaeec26", - "reference": "df52c7c4d8d60443ea1d14bcf9b182d4eaaeec26", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/356b2017decc88d42fc08e903cb41277e3966da1", + "reference": "356b2017decc88d42fc08e903cb41277e3966da1", "shasum": "" }, "require": { @@ -10585,7 +10586,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.2.0" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.2.1" }, "funding": [ { @@ -10593,20 +10594,20 @@ "type": "github" } ], - "time": "2024-02-20T22:36:44+00:00" + "time": "2024-03-27T21:22:54+00:00" }, { "name": "laravel-lang/attributes", - "version": "2.9.4", + "version": "2.10.2", "source": { "type": "git", "url": "https://github.com/Laravel-Lang/attributes.git", - "reference": "398008ea9df5f568a7195c47f9853d983161e478" + "reference": "61a10efa27dcbeeb5896e1119a64bb2279b29e95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Laravel-Lang/attributes/zipball/398008ea9df5f568a7195c47f9853d983161e478", - "reference": "398008ea9df5f568a7195c47f9853d983161e478", + "url": "https://api.github.com/repos/Laravel-Lang/attributes/zipball/61a10efa27dcbeeb5896e1119a64bb2279b29e95", + "reference": "61a10efa27dcbeeb5896e1119a64bb2279b29e95", "shasum": "" }, "require": { @@ -10660,9 +10661,9 @@ ], "support": { "issues": "https://github.com/Laravel-Lang/attributes/issues", - "source": "https://github.com/Laravel-Lang/attributes/tree/2.9.4" + "source": "https://github.com/Laravel-Lang/attributes/tree/2.10.2" }, - "time": "2024-01-25T00:41:17+00:00" + "time": "2024-04-01T18:57:54+00:00" }, { "name": "laravel-lang/common", @@ -11120,16 +11121,16 @@ }, { "name": "laravel/sail", - "version": "v1.29.0", + "version": "v1.29.1", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "e40cc7ffb5186c45698dbd47e9477e0e429396d0" + "reference": "8be4a31150eab3b46af11a2e7b2c4632eefaad7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/e40cc7ffb5186c45698dbd47e9477e0e429396d0", - "reference": "e40cc7ffb5186c45698dbd47e9477e0e429396d0", + "url": "https://api.github.com/repos/laravel/sail/zipball/8be4a31150eab3b46af11a2e7b2c4632eefaad7e", + "reference": "8be4a31150eab3b46af11a2e7b2c4632eefaad7e", "shasum": "" }, "require": { @@ -11137,6 +11138,7 @@ "illuminate/contracts": "^9.52.16|^10.0|^11.0", "illuminate/support": "^9.52.16|^10.0|^11.0", "php": "^8.0", + "symfony/console": "^6.0|^7.0", "symfony/yaml": "^6.0|^7.0" }, "require-dev": { @@ -11178,7 +11180,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2024-03-08T16:32:33+00:00" + "time": "2024-03-20T20:09:31+00:00" }, { "name": "laravel/telescope", @@ -11321,16 +11323,16 @@ }, { "name": "mockery/mockery", - "version": "1.6.9", + "version": "1.6.11", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" + "reference": "81a161d0b135df89951abd52296adf97deb0723d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", - "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "url": "https://api.github.com/repos/mockery/mockery/zipball/81a161d0b135df89951abd52296adf97deb0723d", + "reference": "81a161d0b135df89951abd52296adf97deb0723d", "shasum": "" }, "require": { @@ -11342,8 +11344,8 @@ "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.6.10", - "symplify/easy-coding-standard": "^12.0.8" + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" }, "type": "library", "autoload": { @@ -11400,7 +11402,7 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2023-12-10T02:24:34+00:00" + "time": "2024-03-21T18:34:15+00:00" }, { "name": "myclabs/deep-copy", @@ -12109,16 +12111,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.13", + "version": "10.5.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "20a63fc1c6db29b15da3bd02d4b6cf59900088a7" + "reference": "c1f736a473d21957ead7e94fcc029f571895abf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/20a63fc1c6db29b15da3bd02d4b6cf59900088a7", - "reference": "20a63fc1c6db29b15da3bd02d4b6cf59900088a7", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c1f736a473d21957ead7e94fcc029f571895abf5", + "reference": "c1f736a473d21957ead7e94fcc029f571895abf5", "shasum": "" }, "require": { @@ -12190,7 +12192,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.17" }, "funding": [ { @@ -12206,7 +12208,7 @@ "type": "tidelift" } ], - "time": "2024-03-12T15:37:41+00:00" + "time": "2024-04-05T04:39:01+00:00" }, { "name": "psr/cache", @@ -12629,16 +12631,16 @@ }, { "name": "sebastian/environment", - "version": "6.0.1", + "version": "6.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951" + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951", - "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", "shasum": "" }, "require": { @@ -12653,7 +12655,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -12681,7 +12683,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" }, "funding": [ { @@ -12689,7 +12691,7 @@ "type": "github" } ], - "time": "2023-04-11T05:39:26+00:00" + "time": "2024-03-23T08:47:14+00:00" }, { "name": "sebastian/exporter", @@ -13306,16 +13308,16 @@ }, { "name": "spatie/ignition", - "version": "1.12.0", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d" + "reference": "889bf1dfa59e161590f677728b47bf4a6893983b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d", - "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d", + "url": "https://api.github.com/repos/spatie/ignition/zipball/889bf1dfa59e161590f677728b47bf4a6893983b", + "reference": "889bf1dfa59e161590f677728b47bf4a6893983b", "shasum": "" }, "require": { @@ -13385,20 +13387,20 @@ "type": "github" } ], - "time": "2024-01-03T15:49:39+00:00" + "time": "2024-03-29T14:03:47+00:00" }, { "name": "spatie/laravel-ignition", - "version": "2.4.2", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e" + "reference": "0c864b3cbd66ce67a2096c5f743e07ce8f1d6ab9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/351504f4570e32908839fc5a2dc53bf77d02f85e", - "reference": "351504f4570e32908839fc5a2dc53bf77d02f85e", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/0c864b3cbd66ce67a2096c5f743e07ce8f1d6ab9", + "reference": "0c864b3cbd66ce67a2096c5f743e07ce8f1d6ab9", "shasum": "" }, "require": { @@ -13408,7 +13410,7 @@ "illuminate/support": "^10.0|^11.0", "php": "^8.1", "spatie/flare-client-php": "^1.3.5", - "spatie/ignition": "^1.9", + "spatie/ignition": "^1.13", "symfony/console": "^6.2.3|^7.0", "symfony/var-dumper": "^6.2.3|^7.0" }, @@ -13477,20 +13479,20 @@ "type": "github" } ], - "time": "2024-02-09T16:08:40+00:00" + "time": "2024-04-02T06:30:22+00:00" }, { "name": "symfony/filesystem", - "version": "v7.0.3", + "version": "v7.0.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12" + "reference": "408105dff4c104454100730bdfd1a9cdd993f04d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/2890e3a825bc0c0558526c04499c13f83e1b6b12", - "reference": "2890e3a825bc0c0558526c04499c13f83e1b6b12", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/408105dff4c104454100730bdfd1a9cdd993f04d", + "reference": "408105dff4c104454100730bdfd1a9cdd993f04d", "shasum": "" }, "require": { @@ -13524,7 +13526,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.3" + "source": "https://github.com/symfony/filesystem/tree/v7.0.6" }, "funding": [ { @@ -13540,7 +13542,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-03-21T19:37:36+00:00" }, { "name": "symfony/polyfill-php81", @@ -13811,5 +13813,5 @@ "php": "^8.1" }, "platform-dev": [], - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.2.0" } From adf39e08cc63529ebc94e388b8980d39f2ca2ee2 Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Tue, 9 Apr 2024 15:01:07 +0300 Subject: [PATCH 08/16] min --- .../Actions/ImportVolunteersAction.php | 48 ++++++------------- 1 file changed, 15 insertions(+), 33 deletions(-) diff --git a/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php b/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php index 01597bc..2744f07 100644 --- a/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php +++ b/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php @@ -20,12 +20,24 @@ protected function setUp(): void { parent::setUp(); // TODO: Change the autogenerated stub - $this->label(__('volunteer.field.import')); $this->successNotificationTitle(__('volunteer.field.success_import')); - $this->visible(fn () => auth()->user->isPlatformAdmin() || auth()->user->isOrgAdmin()); + $this->visible(fn () => auth()->user()->isPlatformAdmin() || auth()->user()->isOrgAdmin()); $this->fields([ + Select::make('organisation_id') + ->options(function () { + if (auth()->user()->isOrgAdmin()) { + $organisation = auth()->user()->organisation; + + return [$organisation->id => $organisation->name]; + } + return Organisation::all() + ->pluck('name', 'id'); + }) + ->searchable() + ->label(__('organisation.label.singular')) + ->required(), ImportField::make('first_name') ->label(__('volunteer.field.first_name')) ->required(), @@ -54,7 +66,6 @@ protected function setUp(): void ]); $this->handleRecordCreation(function (array $data) { - dd($data); if (! isset($data['first_name']) || ! isset($data['last_name']) || ! isset($data['email']) || @@ -63,14 +74,6 @@ protected function setUp(): void return new Volunteer(); } - $organisation = Organisation::query() - ->where('name', 'like', $data['organisation_name']) - ->first(); - - if (! $organisation) { - return new Volunteer(); - } - $roles = VolunteerRole::options(); $role = array_search($data['role'], $roles); @@ -86,7 +89,7 @@ protected function setUp(): void $firstAID = (bool) $data['has_first_aid_accreditation']; } - $fields = ['organisation_id' => $organisation->id, + $fields = ['organisation_id' => $data['organisation_id'], 'first_name' => $data['first_name'], 'last_name' => $data['last_name'], 'email' => $data['email'], @@ -120,26 +123,5 @@ protected function setUp(): void return Volunteer::create($fields); }); - -// $formSchema = array_merge( -// [Select::make('organisation') -// ->options(Organisation::all() -// ->pluck('name', 'id')) -// ->searchable() -// ->label(__('organisation.label.singular')) -// ->required(), -// ], -// $this->getFormSchema() -// ); - - $formSchema = $this->getFormSchema(); - $formSchema[] = Select::make('organisation') - ->options(Organisation::all() - ->pluck('name', 'id')) - ->searchable() - ->label(__('organisation.label.singular')) - ->required(); - - $this->form($formSchema); } } From 30f033488641148e78277ddd98e0bb715206d8cf Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Thu, 11 Apr 2024 00:48:34 +0300 Subject: [PATCH 09/16] validate excel data --- .../Actions/ExportVolunteersExample.php | 64 +++++++++ .../Actions/ImportVolunteersAction.php | 129 ++++++++++++++---- .../Pages/ListVolunteers.php | 2 + lang/ro/general.php | 1 + lang/ro/volunteer.php | 4 + lang/vendor/filament-import/ro/actions.php | 11 ++ 6 files changed, 188 insertions(+), 23 deletions(-) create mode 100644 app/Filament/Resources/VolunteerResource/Actions/ExportVolunteersExample.php create mode 100644 lang/vendor/filament-import/ro/actions.php diff --git a/app/Filament/Resources/VolunteerResource/Actions/ExportVolunteersExample.php b/app/Filament/Resources/VolunteerResource/Actions/ExportVolunteersExample.php new file mode 100644 index 0000000..4f5331b --- /dev/null +++ b/app/Filament/Resources/VolunteerResource/Actions/ExportVolunteersExample.php @@ -0,0 +1,64 @@ +label(__('volunteer.labels.download_example')); + + $this->exports([ + ExcelExport::make() + ->withColumns([ + Column::make('first_name'), + Column::make('last_name'), + Column::make('email'), + Column::make('phone'), + Column::make('cnp'), + Column::make('rol'), + Column::make('specialisations'), + Column::make('has_first_aid_accreditation'), + Column::make('county') + ->formatStateUsing(fn ($state) => $state->name), + Column::make('city') + ->formatStateUsing(fn ($state) => $state->name), + ]), + ]); + } + + public function handleExport(array $data) + { + $examples = Volunteer::factory() + ->count(10) + ->make() + ->each(function ($item) { + $item->load('county'); + $item->load('city'); + + return $item; + }); + + $examplesArray = []; + foreach ($examples as $example) { + $examplesArray[] = $example; + } + + $exportable = $this->getSelectedExport($data); + $livewire = $this->getLivewire(); + + return app()->call([$exportable, 'hydrate'], [ + 'livewire' => $this->getLivewire(), + 'records' => $examples, + 'formData' => data_get($data, $exportable->getName()), + ])->export(); + } +} diff --git a/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php b/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php index 2744f07..3a975a1 100644 --- a/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php +++ b/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php @@ -11,6 +11,7 @@ use App\Models\Organisation; use App\Models\Volunteer; use Filament\Forms\Components\Select; +use Illuminate\Validation\Rule; use Konnco\FilamentImport\Actions\ImportAction; use Konnco\FilamentImport\Actions\ImportField; @@ -18,11 +19,12 @@ class ImportVolunteersAction extends ImportAction { protected function setUp(): void { - parent::setUp(); // TODO: Change the autogenerated stub + parent::setUp(); - $this->label(__('volunteer.field.import')); + $this->label(__('volunteer.labels.import')); $this->successNotificationTitle(__('volunteer.field.success_import')); $this->visible(fn () => auth()->user()->isPlatformAdmin() || auth()->user()->isOrgAdmin()); + $this->handleBlankRows(true); $this->fields([ Select::make('organisation_id') ->options(function () { @@ -66,14 +68,44 @@ protected function setUp(): void ]); $this->handleRecordCreation(function (array $data) { - if (! isset($data['first_name']) || - ! isset($data['last_name']) || - ! isset($data['email']) || - ! isset($data['role']) || - ! isset($data['specializations'])) { + $validator = \Validator::make($data, [ + 'organisation_id' => [ + 'required', + Rule::in(Organisation::all()->pluck('id')), + ], + 'first_name' => [ + 'required', + 'max:255', + 'string', + ], + 'last_name' => [ + 'required', + 'max:255', + 'string', + ], + 'email' => [ + 'required', + 'max:255', + 'email', + ], + 'phone' => [ + 'numeric', + 'min:10', + ], + 'role' => [ + 'required', + Rule::in(VolunteerRole::options()), + ], + 'specializations' => ['required'], + ]); + + $data = $validator->getData(); + $messages = $validator->getMessageBag(); + if ($messages->messages()) { + $this->setFailureMsg($messages->messages()); + return new Volunteer(); } - $roles = VolunteerRole::options(); $role = array_search($data['role'], $roles); @@ -81,7 +113,20 @@ protected function setUp(): void $allSpecializations = VolunteerSpecialization::options(); $newSpecializations = []; foreach ($specializations as $specialization) { - $newSpecializations[] = array_search(trim($specialization), $allSpecializations); + $specializationFromEnum = array_search(trim($specialization), $allSpecializations); + if (! $specializationFromEnum) { + $this->setFailureMsg([ + __( + 'validation.in_array', + ['attribute' => __('volunteer.field.specializations') . ' (' . $specialization . ')', + 'other' => implode(', ', $allSpecializations), + ] + ), + ]); + + return new Volunteer(); + } + $newSpecializations[] = $specializationFromEnum; } $firstAID = false; @@ -96,32 +141,70 @@ protected function setUp(): void 'phone' => $data['phone'] ?? null, 'cnp' => $data['cnp'] ?? null, 'role' => $role, - 'specializations' => array_filter($newSpecializations), + 'specializations' => $newSpecializations, 'has_first_aid_accreditation' => $firstAID, ]; if (isset($data['county'])) { $county = County::query() - ->where('name', 'like', $data['county']) + ->where('name', 'like', trim($data['county'])) ->first(); - if ($county) { - $fields['county_id'] = $county->id; - - if ($data['city']) { - $city = City::query() - ->search($data['city']) - ->where('county_id', $county->id) - ->first(); - - if ($city) { - $fields['city_id'] = $city->id; - } + if (! $county) { + $this->setFailureMsg([ + __( + 'validation.in_array', + [ + 'attribute' => __('general.county') . ' (' . $data['county'] . ')', + 'other' => County::all() + ->map(fn ($item) => $item->name) + ->implode(', '), + ] + ), + ]); + + return new Volunteer(); + } + $fields['county_id'] = $county->id; + + if (isset($data['city'])) { + $city = City::query() + ->search(trim($data['city'])) + ->where('county_id', $county->id) + ->first(); + + if (! $city) { + $this->setFailureMsg([ + __( + 'validation.in_array', + [ + 'attribute' => __('general.city') . ' (' . $data['city'] . ')', + 'other' => __( + 'general.localities_from_county', + ['county' => $data['county']] + ), + ] + ), + ]); + + return new Volunteer(); } + $fields['city_id'] = $city->id; } } return Volunteer::create($fields); }); } + + public function setFailureMsg(array $messages) + { + foreach ($messages as &$msg) { + $msg = \is_array($msg) ? implode(' ', $msg) : $msg; + } + $msgString = implode(' ', $messages); + $msgString = substr($msgString, 0, 100); + $this->failureNotificationTitle($msgString); + $this->failure(); + } } diff --git a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php index 1094ae5..38b6963 100644 --- a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php +++ b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources\VolunteerResource\Pages; use App\Filament\Resources\VolunteerResource; +use App\Filament\Resources\VolunteerResource\Actions\ExportVolunteersExample; use App\Filament\Resources\VolunteerResource\Actions\ImportVolunteersAction; use Filament\Pages\Actions; use Filament\Resources\Pages\ListRecords; @@ -19,6 +20,7 @@ protected function getActions(): array return [ Actions\CreateAction::make(), ImportVolunteersAction::make(), +// ExportVolunteersExample::make(), ]; } diff --git a/lang/ro/general.php b/lang/ro/general.php index d3fab65..fb55fb8 100644 --- a/lang/ro/general.php +++ b/lang/ro/general.php @@ -5,6 +5,7 @@ return [ 'county' => 'Județ', 'city' => 'Localitate', + 'localities_from_county' => 'Localitatile din județul :county', 'created_at' => 'Inregistrat la data de', 'updated_at' => 'Actualizat la data de', 'help' => [ diff --git a/lang/ro/volunteer.php b/lang/ro/volunteer.php index f5db9cc..9495683 100644 --- a/lang/ro/volunteer.php +++ b/lang/ro/volunteer.php @@ -22,7 +22,11 @@ 'has_first_aid_accreditation' => 'Acreditare prim ajutor', 'updated_at' => 'Ultima actualizare', 'organisation' => 'Organizație', + ], + + 'labels' => [ 'import' => 'Importa voluntari', + 'download_example' => 'Descarca exemplu de import', ], 'role' => [ diff --git a/lang/vendor/filament-import/ro/actions.php b/lang/vendor/filament-import/ro/actions.php new file mode 100644 index 0000000..7c382d9 --- /dev/null +++ b/lang/vendor/filament-import/ro/actions.php @@ -0,0 +1,11 @@ + 'Import', + 'skip_header' => 'Omite prima linie', + 'match_to_column' => 'Mapeaza coloanele', +// 'import_failed' => 'Import failed, please check your import file and try again', +// 'import_failed_title' => 'Import Failed', +// 'import_succeeded' => 'Import of :count row(s) succeeded, :skipped skipped row(s)', +// 'import_succeeded_title' => 'Import Succeeded', +]; From 90978124f2440df393ac42576264f46c95467e04 Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Thu, 11 Apr 2024 16:30:08 +0300 Subject: [PATCH 10/16] Volunteer tests - admin platform --- database/factories/OrganisationFactory.php | 17 ++ tests/Feature/Documents/AdminPlatformTest.php | 8 +- .../Feature/Volunteers/AdminPlatformTest.php | 189 ++++++++++++++++++ .../Feature/Volunteers/VolunteersBaseTest.php | 44 ++++ tests/Traits/ActingAsPlatformAdmin.php | 20 ++ 5 files changed, 274 insertions(+), 4 deletions(-) create mode 100644 tests/Feature/Volunteers/AdminPlatformTest.php create mode 100644 tests/Feature/Volunteers/VolunteersBaseTest.php create mode 100644 tests/Traits/ActingAsPlatformAdmin.php diff --git a/database/factories/OrganisationFactory.php b/database/factories/OrganisationFactory.php index f571847..2c532cd 100644 --- a/database/factories/OrganisationFactory.php +++ b/database/factories/OrganisationFactory.php @@ -156,6 +156,23 @@ public function withUserAndDocuments() }); } + public function withUserAndVolunteers() + { + return $this->afterCreating(function (Organisation $organisation) { +// var_dump($organisation->email, $organisation->id, User::all()->pluck('email')); +// dd(Organisation::all()->pluck('email', 'id'), $organisation); +// User::factory(['email' => $organisation->email]) +// ->orgAdmin() +// ->for($organisation) +// ->create(); + + Volunteer::factory() + ->for($organisation) + ->count(5) + ->create(); + }); + } + protected function attachLocationByActivityArea(Organisation $organisation): void { $counties = null; diff --git a/tests/Feature/Documents/AdminPlatformTest.php b/tests/Feature/Documents/AdminPlatformTest.php index 12e5b20..778ca24 100644 --- a/tests/Feature/Documents/AdminPlatformTest.php +++ b/tests/Feature/Documents/AdminPlatformTest.php @@ -9,17 +9,17 @@ use App\Filament\Resources\DocumentResource\Pages\ViewDocument; use App\Models\Document; use App\Models\Organisation; -use App\Models\User; use Livewire; +use Tests\Traits\ActingAsPlatformAdmin; class AdminPlatformTest extends DocumentsBaseTest { + use ActingAsPlatformAdmin; + protected function setUp(): void { parent::setUp(); - $this->user = User::factory() - ->platformAdmin() - ->create(); + $this->user = $this->getUser(); Livewire::actingAs($this->user); $this->createOrganisations(3, 'random'); diff --git a/tests/Feature/Volunteers/AdminPlatformTest.php b/tests/Feature/Volunteers/AdminPlatformTest.php new file mode 100644 index 0000000..6a292c9 --- /dev/null +++ b/tests/Feature/Volunteers/AdminPlatformTest.php @@ -0,0 +1,189 @@ +actingAsPlatformAdmin(); + } + + public function testPlatformAdminCanViewVolunteers() + { + $volunteers = Volunteer::query() + ->orderByDesc('id') + ->limit(10) + ->get(); + + $organisation = Organisation::query() + ->with('volunteers') + ->inRandomOrder() + ->first(); + + $county = $volunteers->first()->county; + $volunteersFromCounty = Volunteer::query() + ->where('county_id', $county->id) + ->orderByDesc('id') + ->limit(10) + ->get(); + + $specialization = fake()->randomElements(VolunteerSpecialization::values()); + $specializationVolunteers = Volunteer::query() + ->whereJsonContains('specializations', $specialization) + ->orderByDesc('id') + ->limit(10) + ->get(); + + $hasFirstAid = fake()->boolean; + $firstAidVolunteers = Volunteer::query() + ->where('has_first_aid_accreditation', $hasFirstAid) + ->orderByDesc('id') + ->limit(10) + ->get(); + + \Livewire::test(ListVolunteers::class) + ->assertSuccessful() + ->assertCountTableRecords(25) + ->assertCanSeeTableRecords($volunteers) + ->assertCanRenderTableColumn('organisation.name') + ->assertCanRenderTableColumn('full_name') + ->assertCanRenderTableColumn('email') + ->assertCanRenderTableColumn('phone') + ->assertCanRenderTableColumn('specializations') + ->assertCanRenderTableColumn('has_first_aid_accreditation') + ->filterTable('organisation', $organisation->id) + ->assertCanSeeTableRecords($organisation->volunteers) + ->resetTableFilters() + ->filterTable('county', $county->id) + ->assertCanSeeTableRecords($volunteersFromCounty) + ->resetTableFilters() + ->filterTable('specializations', $specialization) + ->assertCanSeeTableRecords($specializationVolunteers) + ->resetTableFilters() + ->filterTable('has_first_aid_accreditation', $hasFirstAid) + ->assertCanSeeTableRecords($firstAidVolunteers) + ->assertPageActionVisible('create') + ->assertPageActionEnabled('create'); + } + + public function testAdminPlatformCanViewVolunteer() + { + $volunteer = Volunteer::query() + ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) + ->inRandomOrder() + ->first(); + + \Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsDisabled('organisation_id') + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsDisabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsDisabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsDisabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsDisabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsDisabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsDisabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsDisabled('specializations') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsDisabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsDisabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsDisabled('city_id') + ->assertPageActionVisible('edit') + ->assertPageActionEnabled('edit') + ->assertFormFieldIsHidden('language'); + + $volunteerTranslator = Volunteer::query() + ->whereJsonContains('specializations', VolunteerSpecialization::translator) + ->inRandomOrder() + ->first(); + + \Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsDisabled('organisation_id') + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsDisabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsDisabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsDisabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsDisabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsDisabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsDisabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsDisabled('specializations') + ->assertFormFieldIsVisible('language') + ->assertFormFieldIsDisabled('language') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsDisabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsDisabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsDisabled('city_id') + ->assertPageActionVisible('edit') + ->assertPageActionEnabled('edit'); + } + + public function testAdminPlatformCanEditVolunteer() + { + $volunteer = Volunteer::query() + ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) + ->inRandomOrder() + ->first(); + + \Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsEnabled('organisation_id') + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsEnabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsEnabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsEnabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsEnabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsEnabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsEnabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsEnabled('specializations') + ->assertFormFieldIsHidden('language') +// ->assertFormFieldIsDisabled('language') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsEnabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsEnabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsEnabled('city_id') + + ; + } +} diff --git a/tests/Feature/Volunteers/VolunteersBaseTest.php b/tests/Feature/Volunteers/VolunteersBaseTest.php new file mode 100644 index 0000000..9e928c0 --- /dev/null +++ b/tests/Feature/Volunteers/VolunteersBaseTest.php @@ -0,0 +1,44 @@ +createOrganisationsWithVolunteers(); + } + + protected function createOrganisationsWithVolunteers() + { + Organisation::factory() + ->count(5) + ->withUserAndVolunteers() + ->create(); + } +} diff --git a/tests/Traits/ActingAsPlatformAdmin.php b/tests/Traits/ActingAsPlatformAdmin.php new file mode 100644 index 0000000..4fd9348 --- /dev/null +++ b/tests/Traits/ActingAsPlatformAdmin.php @@ -0,0 +1,20 @@ +platformAdmin() + ->create(); + } + + public function actingAsPlatformAdmin(): void + { + $this->actingAs($this->getUser()); + } +} From 1751c83fa7f7d7248427e538b5c85bb8fa61cc1c Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Fri, 12 Apr 2024 01:59:47 +0300 Subject: [PATCH 11/16] Volunteer tests --- tests/Feature/Volunteers/AdminOrgTest.php | 264 ++++++++++++++++++ .../Feature/Volunteers/AdminPlatformTest.php | 98 ++++++- .../Volunteers/PlatformCoordinatorTest.php | 169 +++++++++++ 3 files changed, 527 insertions(+), 4 deletions(-) create mode 100644 tests/Feature/Volunteers/AdminOrgTest.php create mode 100644 tests/Feature/Volunteers/PlatformCoordinatorTest.php diff --git a/tests/Feature/Volunteers/AdminOrgTest.php b/tests/Feature/Volunteers/AdminOrgTest.php new file mode 100644 index 0000000..815065c --- /dev/null +++ b/tests/Feature/Volunteers/AdminOrgTest.php @@ -0,0 +1,264 @@ +user = User::query() + ->where('role', UserRole::ORG_ADMIN) + ->inRandomOrder() + ->first(); + $this->actingAs($this->user); + } + + public function testAdminOngCanViewVolunteers() + { + $volunteers = Volunteer::query() + ->orderByDesc('id') + ->limit(10) + ->get(); + + $county = $volunteers->first()->county; + $volunteersFromCounty = Volunteer::query() + ->where('county_id', $county->id) + ->orderByDesc('id') + ->limit(10) + ->get(); + + $specialization = fake()->randomElements(VolunteerSpecialization::values()); + $specializationVolunteers = Volunteer::query() + ->whereJsonContains('specializations', $specialization) + ->orderByDesc('id') + ->limit(10) + ->get(); + + $hasFirstAid = fake()->boolean; + $firstAidVolunteers = Volunteer::query() + ->where('has_first_aid_accreditation', $hasFirstAid) + ->orderByDesc('id') + ->limit(10) + ->get(); + + \Livewire::test(ListVolunteers::class) + ->assertSuccessful() + ->assertCountTableRecords(5) + ->assertCanSeeTableRecords($volunteers) + ->assertCanNotRenderTableColumn('organisation.name') + ->assertCanRenderTableColumn('full_name') + ->assertCanRenderTableColumn('email') + ->assertCanRenderTableColumn('phone') + ->assertCanRenderTableColumn('specializations') + ->assertCanRenderTableColumn('has_first_aid_accreditation') + ->resetTableFilters() + ->filterTable('county', $county->id) + ->assertCanSeeTableRecords($volunteersFromCounty) + ->resetTableFilters() + ->filterTable('specializations', $specialization) + ->assertCanSeeTableRecords($specializationVolunteers) + ->resetTableFilters() + ->filterTable('has_first_aid_accreditation', $hasFirstAid) + ->assertCanSeeTableRecords($firstAidVolunteers) + ->assertPageActionVisible('create') + ->assertPageActionEnabled('create'); + } + + public function testAdminOngCanViewVolunteer() + { + $volunteer = Volunteer::query() + ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) + ->inRandomOrder() + ->first(); + + \Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsDisabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsDisabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsDisabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsDisabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsDisabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsDisabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsDisabled('specializations') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsDisabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsDisabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsDisabled('city_id') + ->assertPageActionVisible('edit') + ->assertPageActionEnabled('edit') + ->assertFormFieldIsHidden('language'); + + $volunteerTranslator = Volunteer::factory() + ->for($this->user->organisation) + ->state(['specializations' => VolunteerSpecialization::translator]) + ->create(); + + \Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsDisabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsDisabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsDisabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsDisabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsDisabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsDisabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsDisabled('specializations') + ->assertFormFieldIsVisible('language') + ->assertFormFieldIsDisabled('language') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsDisabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsDisabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsDisabled('city_id') + ->assertPageActionVisible('edit') + ->assertPageActionEnabled('edit'); + } + + public function testAdminOngCanEditVolunteer() + { + $volunteer = Volunteer::query() + ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) + ->inRandomOrder() + ->first(); + + \Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsEnabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsEnabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsEnabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsEnabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsEnabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsEnabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsEnabled('specializations') + ->assertFormFieldIsHidden('language') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsEnabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsEnabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsEnabled('city_id') + ->fillForm(['specializations' => [$volunteer->specializations[] = VolunteerSpecialization::translator->value]]) + ->assertFormFieldIsVisible('language') + ->assertFormFieldIsEnabled('language'); + } + + public function testAdminOngCanCreateVolunteer() + { + \Livewire::test(CreateVolunteer::class) + ->assertSuccessful() + ->assertFormFieldIsHidden('organisation_id') + ->assertFormFieldIsEnabled('organisation_id') + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsEnabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsEnabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsEnabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsEnabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsEnabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsEnabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsEnabled('specializations') + ->assertFormFieldIsHidden('language') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsEnabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsEnabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsEnabled('city_id') + ->fillForm([ + 'first_name' => fake()->realTextBetween(256, 300), + 'last_name' => fake()->realTextBetween(256, 300), + 'email' => fake()->phoneNumber, + 'phone' => fake()->word, + 'cnp' => fake()->word, + 'role' => fake()->randomElement(VolunteerRole::values()), + 'specializations' => [VolunteerSpecialization::translator->value], + 'has_first_aid_accreditation' => fake()->word, + 'county_id' => null, + 'city_id' => null, + ]) + ->assertFormFieldIsVisible('language') + ->call('create') + ->assertHasFormErrors([ + 'first_name', + 'last_name', + 'email', + 'phone', + 'cnp', + 'language', + 'has_first_aid_accreditation', + 'county_id', + 'city_id', + ]) + ->fillForm([ + 'language' => fake()->word, + 'has_first_aid_accreditation' => rand(2, 99), + ]) + ->call('create') + ->assertHasNoFormErrors(['language']) + ->assertHasFormErrors(['has_first_aid_accreditation']) + ->fillForm([ + 'specializations' => [VolunteerSpecialization::cook], + 'has_first_aid_accreditation' => rand(0, 1), + ]) + ->assertFormFieldIsHidden('language') + ->call('create') + ->assertHasNoFormErrors(['has_first_aid_accreditation']) + ->fillForm([ + 'first_name' => fake()->firstName, + 'last_name' => fake()->lastName, + 'email' => fake()->email, + 'phone' => fake()->phoneNumber, + 'cnp' => fake()->cnp(), + 'role' => fake()->randomElement(VolunteerRole::values()), + 'specializations' => [VolunteerSpecialization::cook->value, VolunteerSpecialization::search_rescue->value], + 'has_first_aid_accreditation' => fake()->boolean, + 'county_id' => County::query()->inRandomOrder()->first()->id, + 'city_id' => City::query()->inRandomOrder()->first()->id, + ]) + ->call('create') + ->assertHasNoFormErrors(); + } +} diff --git a/tests/Feature/Volunteers/AdminPlatformTest.php b/tests/Feature/Volunteers/AdminPlatformTest.php index 6a292c9..93fa8e8 100644 --- a/tests/Feature/Volunteers/AdminPlatformTest.php +++ b/tests/Feature/Volunteers/AdminPlatformTest.php @@ -4,10 +4,14 @@ namespace Tests\Feature\Volunteers; +use App\Enum\VolunteerRole; use App\Enum\VolunteerSpecialization; +use App\Filament\Resources\VolunteerResource\Pages\CreateVolunteer; use App\Filament\Resources\VolunteerResource\Pages\EditVolunteer; use App\Filament\Resources\VolunteerResource\Pages\ListVolunteers; use App\Filament\Resources\VolunteerResource\Pages\ViewVolunteer; +use App\Models\City; +use App\Models\County; use App\Models\Organisation; use App\Models\Volunteer; use Tests\Traits\ActingAsPlatformAdmin; @@ -80,7 +84,7 @@ public function testPlatformAdminCanViewVolunteers() ->assertPageActionEnabled('create'); } - public function testAdminPlatformCanViewVolunteer() + public function testPlatformAdminCanViewVolunteer() { $volunteer = Volunteer::query() ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) @@ -150,7 +154,7 @@ public function testAdminPlatformCanViewVolunteer() ->assertPageActionEnabled('edit'); } - public function testAdminPlatformCanEditVolunteer() + public function testPlatformAdminCanEditVolunteer() { $volunteer = Volunteer::query() ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) @@ -176,14 +180,100 @@ public function testAdminPlatformCanEditVolunteer() ->assertFormFieldIsVisible('specializations') ->assertFormFieldIsEnabled('specializations') ->assertFormFieldIsHidden('language') -// ->assertFormFieldIsDisabled('language') ->assertFormFieldIsVisible('has_first_aid_accreditation') ->assertFormFieldIsEnabled('has_first_aid_accreditation') ->assertFormFieldIsVisible('county_id') ->assertFormFieldIsEnabled('county_id') ->assertFormFieldIsVisible('city_id') ->assertFormFieldIsEnabled('city_id') + ->fillForm(['specializations' => [$volunteer->specializations[] = VolunteerSpecialization::translator->value]]) + ->assertFormFieldIsVisible('language') + ->assertFormFieldIsEnabled('language'); + } - ; + public function testPlatformAdminCanCreateVolunteer() + { + \Livewire::test(CreateVolunteer::class) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsEnabled('organisation_id') + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsEnabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsEnabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsEnabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsEnabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsEnabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsEnabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsEnabled('specializations') + ->assertFormFieldIsHidden('language') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsEnabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsEnabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsEnabled('city_id') + ->fillForm([ + 'organisation_id' => null, + 'first_name' => fake()->realTextBetween(256, 300), + 'last_name' => fake()->realTextBetween(256, 300), + 'email' => fake()->phoneNumber, + 'phone' => fake()->word, + 'cnp' => fake()->word, + 'role' => fake()->randomElement(VolunteerRole::values()), + 'specializations' => [VolunteerSpecialization::translator->value], + 'has_first_aid_accreditation' => fake()->word, + 'county_id' => null, + 'city_id' => null, + ]) + ->assertFormFieldIsVisible('language') + ->call('create') + ->assertHasFormErrors([ + 'organisation_id', + 'first_name', + 'last_name', + 'email', + 'phone', + 'cnp', + 'language', + 'has_first_aid_accreditation', + 'county_id', + 'city_id', + ]) + ->fillForm([ + 'organisation_id' => Organisation::query()->max('id') + 1, + 'language' => fake()->word, + 'has_first_aid_accreditation' => rand(2, 99), + ]) + ->call('create') + ->assertHasNoFormErrors(['language']) + ->assertHasFormErrors(['has_first_aid_accreditation', 'organisation_id']) + ->fillForm([ + 'specializations' => [VolunteerSpecialization::cook], + 'has_first_aid_accreditation' => rand(0, 1), + ]) + ->assertFormFieldIsHidden('language') + ->call('create') + ->assertHasNoFormErrors(['has_first_aid_accreditation']) + ->fillForm([ + 'organisation_id' => Organisation::query()->inRandomOrder()->first()->id, + 'first_name' => fake()->firstName, + 'last_name' => fake()->lastName, + 'email' => fake()->email, + 'phone' => fake()->phoneNumber, + 'cnp' => fake()->cnp(), + 'role' => fake()->randomElement(VolunteerRole::values()), + 'specializations' => [VolunteerSpecialization::cook->value, VolunteerSpecialization::search_rescue->value], + 'has_first_aid_accreditation' => fake()->boolean, + 'county_id' => County::query()->inRandomOrder()->first()->id, + 'city_id' => City::query()->inRandomOrder()->first()->id, + ]) + ->call('create') + ->assertHasNoFormErrors(); } } diff --git a/tests/Feature/Volunteers/PlatformCoordinatorTest.php b/tests/Feature/Volunteers/PlatformCoordinatorTest.php new file mode 100644 index 0000000..add1e59 --- /dev/null +++ b/tests/Feature/Volunteers/PlatformCoordinatorTest.php @@ -0,0 +1,169 @@ +user = User::factory() + ->platformCoordinator() + ->create(); + $this->actingAs($this->user); + } + + public function testPlatformCoordinatorCanViewVolunteers() + { + $volunteers = Volunteer::query() + ->orderByDesc('id') + ->limit(10) + ->get(); + + $organisation = Organisation::query() + ->with('volunteers') + ->inRandomOrder() + ->first(); + + $county = $volunteers->first()->county; + $volunteersFromCounty = Volunteer::query() + ->where('county_id', $county->id) + ->orderByDesc('id') + ->limit(10) + ->get(); + + $specialization = fake()->randomElements(VolunteerSpecialization::values()); + $specializationVolunteers = Volunteer::query() + ->whereJsonContains('specializations', $specialization) + ->orderByDesc('id') + ->limit(10) + ->get(); + + $hasFirstAid = fake()->boolean; + $firstAidVolunteers = Volunteer::query() + ->where('has_first_aid_accreditation', $hasFirstAid) + ->orderByDesc('id') + ->limit(10) + ->get(); + + \Livewire::test(ListVolunteers::class) + ->assertSuccessful() + ->assertCountTableRecords(25) + ->assertCanSeeTableRecords($volunteers) + ->assertCanRenderTableColumn('organisation.name') + ->assertCanRenderTableColumn('full_name') + ->assertCanRenderTableColumn('email') + ->assertCanRenderTableColumn('phone') + ->assertCanRenderTableColumn('specializations') + ->assertCanRenderTableColumn('has_first_aid_accreditation') + ->filterTable('organisation', $organisation->id) + ->assertCanSeeTableRecords($organisation->volunteers) + ->resetTableFilters() + ->filterTable('county', $county->id) + ->assertCanSeeTableRecords($volunteersFromCounty) + ->resetTableFilters() + ->filterTable('specializations', $specialization) + ->assertCanSeeTableRecords($specializationVolunteers) + ->resetTableFilters() + ->filterTable('has_first_aid_accreditation', $hasFirstAid) + ->assertCanSeeTableRecords($firstAidVolunteers) + ->assertPageActionHidden('create') + ->assertPageActionDisabled('create'); + } + + public function testPlatformCoordinatorCanViewVolunteer() + { + $volunteer = Volunteer::query() + ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) + ->inRandomOrder() + ->first(); + + \Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsDisabled('organisation_id') + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsDisabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsDisabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsDisabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsDisabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsDisabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsDisabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsDisabled('specializations') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsDisabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsDisabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsDisabled('city_id') + ->assertPageActionDoesNotExist('edit') + ->assertFormFieldIsHidden('language'); + + $volunteerTranslator = Volunteer::query() + ->whereJsonContains('specializations', VolunteerSpecialization::translator) + ->inRandomOrder() + ->first(); + + \Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) + ->assertSuccessful() + ->assertFormFieldIsVisible('organisation_id') + ->assertFormFieldIsDisabled('organisation_id') + ->assertFormFieldIsVisible('first_name') + ->assertFormFieldIsDisabled('first_name') + ->assertFormFieldIsVisible('last_name') + ->assertFormFieldIsDisabled('last_name') + ->assertFormFieldIsVisible('email') + ->assertFormFieldIsDisabled('email') + ->assertFormFieldIsVisible('phone') + ->assertFormFieldIsDisabled('phone') + ->assertFormFieldIsVisible('cnp') + ->assertFormFieldIsDisabled('cnp') + ->assertFormFieldIsVisible('role') + ->assertFormFieldIsDisabled('role') + ->assertFormFieldIsVisible('specializations') + ->assertFormFieldIsDisabled('specializations') + ->assertFormFieldIsVisible('language') + ->assertFormFieldIsDisabled('language') + ->assertFormFieldIsVisible('has_first_aid_accreditation') + ->assertFormFieldIsDisabled('has_first_aid_accreditation') + ->assertFormFieldIsVisible('county_id') + ->assertFormFieldIsDisabled('county_id') + ->assertFormFieldIsVisible('city_id') + ->assertFormFieldIsDisabled('city_id') + ->assertPageActionDoesNotExist('edit'); + } + + public function testPlatformCoordinatorCanNotEditVolunteer() + { + $volunteer = Volunteer::query() + ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) + ->inRandomOrder() + ->first(); + + \Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) + ->assertForbidden(); + } + + public function testPlatformCoordinatorCanNotCreateVolunteer() + { + \Livewire::test(CreateVolunteer::class) + ->assertForbidden(); + } +} From 2ef5857f9d5591734b7388f2490f72e7d9ce073e Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Fri, 12 Apr 2024 02:04:51 +0300 Subject: [PATCH 12/16] Fix document organisation admin test --- tests/Feature/Documents/OrganisationAdminTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Feature/Documents/OrganisationAdminTest.php b/tests/Feature/Documents/OrganisationAdminTest.php index 69880cb..b62fe0a 100644 --- a/tests/Feature/Documents/OrganisationAdminTest.php +++ b/tests/Feature/Documents/OrganisationAdminTest.php @@ -17,11 +17,12 @@ protected function setUp(): void { parent::setUp(); $this->createOrganisations(); - $this->createOrganisations(2, 'inactive'); $this->user = User::query() ->role(UserRole::ORG_ADMIN) ->inRandomOrder() ->first(); + $this->createOrganisations(2, 'inactive'); + // $this->actingAs($this->user); } From e418e8b9772cbcdc559dac796a0a5fa4ca8bad3d Mon Sep 17 00:00:00 2001 From: Alex Popa Date: Fri, 12 Apr 2024 02:14:26 +0300 Subject: [PATCH 13/16] min --- tests/Feature/Volunteers/AdminPlatformTest.php | 2 +- tests/Feature/Volunteers/PlatformCoordinatorTest.php | 2 +- tests/Feature/Volunteers/VolunteersBaseTest.php | 9 +-------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/tests/Feature/Volunteers/AdminPlatformTest.php b/tests/Feature/Volunteers/AdminPlatformTest.php index 93fa8e8..3759567 100644 --- a/tests/Feature/Volunteers/AdminPlatformTest.php +++ b/tests/Feature/Volunteers/AdminPlatformTest.php @@ -61,7 +61,7 @@ public function testPlatformAdminCanViewVolunteers() \Livewire::test(ListVolunteers::class) ->assertSuccessful() - ->assertCountTableRecords(25) + ->assertCountTableRecords(10) ->assertCanSeeTableRecords($volunteers) ->assertCanRenderTableColumn('organisation.name') ->assertCanRenderTableColumn('full_name') diff --git a/tests/Feature/Volunteers/PlatformCoordinatorTest.php b/tests/Feature/Volunteers/PlatformCoordinatorTest.php index add1e59..586a1ac 100644 --- a/tests/Feature/Volunteers/PlatformCoordinatorTest.php +++ b/tests/Feature/Volunteers/PlatformCoordinatorTest.php @@ -59,7 +59,7 @@ public function testPlatformCoordinatorCanViewVolunteers() \Livewire::test(ListVolunteers::class) ->assertSuccessful() - ->assertCountTableRecords(25) + ->assertCountTableRecords(10) ->assertCanSeeTableRecords($volunteers) ->assertCanRenderTableColumn('organisation.name') ->assertCanRenderTableColumn('full_name') diff --git a/tests/Feature/Volunteers/VolunteersBaseTest.php b/tests/Feature/Volunteers/VolunteersBaseTest.php index 9e928c0..328e4de 100644 --- a/tests/Feature/Volunteers/VolunteersBaseTest.php +++ b/tests/Feature/Volunteers/VolunteersBaseTest.php @@ -4,18 +4,11 @@ namespace Tests\Feature\Volunteers; -use App\Enum\DocumentType; -use App\Enum\OrganisationStatus; -use App\Enum\UserRole; -use App\Filament\Resources\DocumentResource; -use App\Models\Document; use App\Models\Organisation; use App\Models\User; use Database\Seeders\ResourceCategorySeed; use Illuminate\Foundation\Testing\RefreshDatabase; -use Illuminate\Support\Collection; use Illuminate\Support\Facades\Notification; -use Livewire; use Tests\TestCase; abstract class VolunteersBaseTest extends TestCase @@ -37,7 +30,7 @@ protected function setUp(): void protected function createOrganisationsWithVolunteers() { Organisation::factory() - ->count(5) + ->count(2) ->withUserAndVolunteers() ->create(); } From 5efe70b56c3634a15ef7ff64946d4399fd881427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20Ioni=C8=9B=C4=83?= Date: Mon, 9 Sep 2024 15:05:59 +0100 Subject: [PATCH 14/16] cleanup --- tests/Feature/Documents/DocumentsBaseTest.php | 30 ++++++++------ .../Documents/OrganisationAdminTest.php | 41 ++++++++++--------- ...PlatformTest.php => PlatformAdminTest.php} | 14 +++---- .../Documents/PlatformCoordinatorTest.php | 4 +- ...nOrgTest.php => OrganisationAdminTest.php} | 23 ++++++----- ...PlatformTest.php => PlatformAdminTest.php} | 14 ++++--- .../Volunteers/PlatformCoordinatorTest.php | 13 +++--- .../Feature/Volunteers/VolunteersBaseTest.php | 1 + 8 files changed, 79 insertions(+), 61 deletions(-) rename tests/Feature/Documents/{AdminPlatformTest.php => PlatformAdminTest.php} (94%) rename tests/Feature/Volunteers/{AdminOrgTest.php => OrganisationAdminTest.php} (94%) rename tests/Feature/Volunteers/{AdminPlatformTest.php => PlatformAdminTest.php} (96%) diff --git a/tests/Feature/Documents/DocumentsBaseTest.php b/tests/Feature/Documents/DocumentsBaseTest.php index 29ee74e..3f393a7 100644 --- a/tests/Feature/Documents/DocumentsBaseTest.php +++ b/tests/Feature/Documents/DocumentsBaseTest.php @@ -7,7 +7,9 @@ use App\Enum\DocumentType; use App\Enum\OrganisationStatus; use App\Enum\UserRole; -use App\Filament\Resources\DocumentResource; +use App\Filament\Resources\DocumentResource\Pages\EditDocument; +use App\Filament\Resources\DocumentResource\Pages\ListDocuments; +use App\Filament\Resources\DocumentResource\Pages\ViewDocument; use App\Models\Document; use App\Models\Organisation; use App\Models\User; @@ -15,7 +17,8 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Notification; -use Livewire; +use Livewire\Livewire; +use Livewire\Testing\TestableLivewire; use Tests\TestCase; abstract class DocumentsBaseTest extends TestCase @@ -33,7 +36,7 @@ protected function setUp(): void Notification::fake(); } - protected function getOrgAdmin(): Collection + protected function getOrganisationAdmin(): Collection { return User::query() ->role(UserRole::ORG_ADMIN) @@ -41,7 +44,7 @@ protected function getOrgAdmin(): Collection ->get(); } - protected function getOrgAdminWithInactiveOrg(): User + protected function getOrganisationAdminWithInactiveOrganisation(): User { return Organisation::query() ->whereStatus(OrganisationStatus::inactive) @@ -60,8 +63,10 @@ protected function createOrganisations(int $count = 3, string $status = 'active' ->inactive() ->withUserAndDocuments() ->createQuietly(); + return; } + if ($status === 'random') { Organisation::factory() ->count($count) @@ -71,17 +76,18 @@ protected function createOrganisations(int $count = 3, string $status = 'active' return; } + Organisation::factory() ->count($count) ->withUserAndDocuments() ->createQuietly(); } - public function viewDocuments(): Livewire\Testing\TestableLivewire + public function viewDocuments(): TestableLivewire { $documents = Document::all(); - return Livewire::test(DocumentResource\Pages\ListDocuments::class) + return Livewire::test(ListDocuments::class) ->assertSuccessful() ->assertCountTableRecords(9) ->assertCanSeeTableRecords($documents) @@ -103,9 +109,9 @@ public function viewDocuments(): Livewire\Testing\TestableLivewire ->assertCanSeeTableRecords($documents->sortBy('expires_at'), inOrder: true); } - public function viewProtocolDocumentByUser(Document $document): Livewire\Testing\TestableLivewire + public function viewProtocolDocumentByUser(Document $document): TestableLivewire { - return Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + return Livewire::test(ViewDocument::class, ['record' => $document->id]) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsVisible('name') @@ -116,9 +122,9 @@ public function viewProtocolDocumentByUser(Document $document): Livewire\Testing ->assertFormFieldIsVisible('document'); } - public function viewDocumentByUser(Document $document): Livewire\Testing\TestableLivewire + public function viewDocumentByUser(Document $document): TestableLivewire { - return Livewire::test(DocumentResource\Pages\ViewDocument::class, ['record' => $document->id]) + return Livewire::test(ViewDocument::class, ['record' => $document->id]) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsVisible('name') @@ -129,9 +135,9 @@ public function viewDocumentByUser(Document $document): Livewire\Testing\Testabl ->assertFormFieldIsVisible('document'); } - public function editDocument(Document $document): Livewire\Testing\TestableLivewire + public function editDocument(Document $document): TestableLivewire { - return Livewire::test(DocumentResource\Pages\EditDocument::class, ['record' => $document->id]) + return Livewire::test(EditDocument::class, ['record' => $document->id]) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsEnabled('organisation_id') diff --git a/tests/Feature/Documents/OrganisationAdminTest.php b/tests/Feature/Documents/OrganisationAdminTest.php index b62fe0a..f70ce3c 100644 --- a/tests/Feature/Documents/OrganisationAdminTest.php +++ b/tests/Feature/Documents/OrganisationAdminTest.php @@ -9,7 +9,7 @@ use App\Filament\Resources\DocumentResource; use App\Models\Document; use App\Models\User; -use Livewire; +use Livewire\Livewire; class OrganisationAdminTest extends DocumentsBaseTest { @@ -26,7 +26,7 @@ protected function setUp(): void // $this->actingAs($this->user); } - public function testOrgAdminCanViewDocuments(): void + public function testOrganisationAdminCanViewDocuments(): void { $this->actingAs($this->user); $userOganisationID = $this->user->organisation_id; @@ -36,6 +36,7 @@ public function testOrgAdminCanViewDocuments(): void $documentsFromAnotherOrg = Document::query() ->whereNot('organisation_id', $userOganisationID) ->get(); + Livewire::test(DocumentResource\Pages\ListDocuments::class) ->assertSuccessful() ->assertPageActionHidden('create') @@ -66,13 +67,13 @@ public function testViewDocumentsByInactiveOrgAdmin(): void $url = DocumentResource::getUrl('index'); $this->createOrganisations(2, 'inactive'); - $orgAdmin = $this->getOrgAdminWithInactiveOrg(2); + $orgAdmin = $this->getOrganisationAdminWithInactiveOrganisation(2); $this->actingAs($orgAdmin) ->get($url) ->assertRedirect('/login'); } - public function testOrgAdminCanViewDocument(): void + public function testOrganisationAdminCanViewDocument(): void { $document = $this->user ->organisation @@ -103,7 +104,7 @@ public function testOrgAdminCanViewDocument(): void public function testInactiveOrgAdminCanNotViewDocument(): void { $this->createOrganisations(2, 'inactive'); - $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + $orgAdmins = $this->getOrganisationAdminWithInactiveOrganisation(); $document = Document::query() ->inRandomOrder() @@ -116,7 +117,7 @@ public function testInactiveOrgAdminCanNotViewDocument(): void ->assertRedirect('/login'); } - public function testAnotherOrgAdminCanNotViewDocument(): void + public function testOtherOrganisationAdminCanNotViewDocument(): void { // dd(Document::all()->count()); $document = Document::query() @@ -129,10 +130,10 @@ public function testAnotherOrgAdminCanNotViewDocument(): void ->assertForbidden(); } - public function testAnotherInactiveOrgAdminCanNotViewDocument(): void + public function testOtherInactiveOrganisationAdminCanNotViewDocument(): void { $this->createOrganisations(2, 'inactive'); - $orgAdmin = $this->getOrgAdminWithInactiveOrg(); + $orgAdmin = $this->getOrganisationAdminWithInactiveOrganisation(); $document = Document::query() ->whereNot('organisation_id', $orgAdmin->organisation_id) @@ -147,7 +148,7 @@ public function testAnotherInactiveOrgAdminCanNotViewDocument(): void ->assertRedirect('/login'); } - public function testOrgAdminCanNotEditDocument(): void + public function testOrganisationAdminCanNotEditDocument(): void { $document = $this->user ->organisation @@ -158,10 +159,10 @@ public function testOrgAdminCanNotEditDocument(): void ->assertForbidden(); } - public function testInactiveOrgAdminCanNotEditDocument(): void + public function testInactiveOrganisationAdminCanNotEditDocument(): void { $this->createOrganisations(2, 'inactive'); - $orgAdmin = $this->getOrgAdminWithInactiveOrg(); + $orgAdmin = $this->getOrganisationAdminWithInactiveOrganisation(); $document = Document::query() ->where('organisation_id', $orgAdmin->organisation_id) @@ -175,7 +176,7 @@ public function testInactiveOrgAdminCanNotEditDocument(): void ->assertRedirect('/login'); } - public function testAnotherOrgAdminCanNotEditDocument(): void + public function testOtherOrganisationAdminCanNotEditDocument(): void { $document = Document::query() ->whereNot('organisation_id', $this->user->organisation_id) @@ -190,10 +191,10 @@ public function testAnotherOrgAdminCanNotEditDocument(): void ->assertNotFound(); } - public function testAnotherInactiveOrgAdminCanNotEditDocument(): void + public function testOtherInactiveOrganisationAdminCanNotEditDocument(): void { $this->createOrganisations(2, 'inactive'); - $orgAdmin = $this->getOrgAdminWithInactiveOrg(); + $orgAdmin = $this->getOrganisationAdminWithInactiveOrganisation(); $document = Document::query() ->whereNot('organisation_id', $orgAdmin->organisation_id) @@ -208,10 +209,10 @@ public function testAnotherInactiveOrgAdminCanNotEditDocument(): void ->assertRedirect('/login'); } - public function testInactiveOrgAdminCanNotDeleteDocument(): void + public function testInactiveOrganisationAdminCanNotDeleteDocument(): void { $this->createOrganisations(2, 'inactive'); - $orgAdmin = $this->getOrgAdminWithInactiveOrg(); + $orgAdmin = $this->getOrganisationAdminWithInactiveOrganisation(); $document = Document::query() ->where('organisation_id', $orgAdmin->organisation_id) @@ -223,19 +224,19 @@ public function testInactiveOrgAdminCanNotDeleteDocument(): void ->assertPageActionDisabled('delete'); } - public function testOrgAdminCanNotCreateDocument() + public function testOrganisationAdminCanNotCreateDocument() { - $orgAdmins = $this->getOrgAdmin()->random(); + $orgAdmins = $this->getOrganisationAdmin()->random(); Livewire::actingAs($orgAdmins); Livewire::test(DocumentResource\Pages\CreateDocument::class) ->assertForbidden(); } - public function testInactiveOrgAdminCanNotCreateDocument() + public function testInactiveOrganisationAdminCanNotCreateDocument() { $this->createOrganisations(2, 'inactive'); - $orgAdmins = $this->getOrgAdminWithInactiveOrg(); + $orgAdmins = $this->getOrganisationAdminWithInactiveOrganisation(); Livewire::actingAs($orgAdmins); Livewire::test(DocumentResource\Pages\CreateDocument::class) diff --git a/tests/Feature/Documents/AdminPlatformTest.php b/tests/Feature/Documents/PlatformAdminTest.php similarity index 94% rename from tests/Feature/Documents/AdminPlatformTest.php rename to tests/Feature/Documents/PlatformAdminTest.php index 778ca24..d2006b1 100644 --- a/tests/Feature/Documents/AdminPlatformTest.php +++ b/tests/Feature/Documents/PlatformAdminTest.php @@ -9,10 +9,10 @@ use App\Filament\Resources\DocumentResource\Pages\ViewDocument; use App\Models\Document; use App\Models\Organisation; -use Livewire; +use Livewire\Livewire; use Tests\Traits\ActingAsPlatformAdmin; -class AdminPlatformTest extends DocumentsBaseTest +class PlatformAdminTest extends DocumentsBaseTest { use ActingAsPlatformAdmin; @@ -25,14 +25,14 @@ protected function setUp(): void $this->createOrganisations(3, 'random'); } - public function testAdminPlatformCanViewDocuments(): void + public function testPlatformAdminCanViewDocuments(): void { $this->viewDocuments() ->assertPageActionVisible('create') ->assertPageActionEnabled('create'); } - public function testViewAdminPlatformCanViewDocument(): void + public function testViewPlatformAdminCanViewDocument(): void { $document = Document::query() ->whereType(DocumentType::protocol) @@ -51,7 +51,7 @@ public function testViewAdminPlatformCanViewDocument(): void ->assertPageActionVisible('delete'); } - public function testAdminPlatformCanEditDocument(): void + public function testPlatformAdminCanEditDocument(): void { $protocolDocument = Document::query() ->whereType(DocumentType::protocol) @@ -75,7 +75,7 @@ public function testAdminPlatformCanEditDocument(): void ->assertFormFieldIsHidden('never_expires'); } - public function testAdminPlatformCanDeleteDocument(): void + public function testPlatformAdminCanDeleteDocument(): void { $document = Document::query() ->inRandomOrder() @@ -87,7 +87,7 @@ public function testAdminPlatformCanDeleteDocument(): void $this->assertNull(Document::find($document->id)); } - public function testAdminPlatformCanCreateDocument() + public function testPlatformAdminCanCreateDocument() { $file = \Illuminate\Http\UploadedFile::fake() ->image(fake()->word() . '.jpg') diff --git a/tests/Feature/Documents/PlatformCoordinatorTest.php b/tests/Feature/Documents/PlatformCoordinatorTest.php index 1168114..ace6d79 100644 --- a/tests/Feature/Documents/PlatformCoordinatorTest.php +++ b/tests/Feature/Documents/PlatformCoordinatorTest.php @@ -8,16 +8,18 @@ use App\Filament\Resources\DocumentResource; use App\Models\Document; use App\Models\User; -use Livewire; +use Livewire\Livewire; class PlatformCoordinatorTest extends DocumentsBaseTest { protected function setUp(): void { parent::setUp(); + $this->user = User::factory() ->platformCoordinator() ->create(); + Livewire::actingAs($this->user); $this->createOrganisations(3, 'random'); diff --git a/tests/Feature/Volunteers/AdminOrgTest.php b/tests/Feature/Volunteers/OrganisationAdminTest.php similarity index 94% rename from tests/Feature/Volunteers/AdminOrgTest.php rename to tests/Feature/Volunteers/OrganisationAdminTest.php index 815065c..a2ebecb 100644 --- a/tests/Feature/Volunteers/AdminOrgTest.php +++ b/tests/Feature/Volunteers/OrganisationAdminTest.php @@ -15,20 +15,23 @@ use App\Models\County; use App\Models\User; use App\Models\Volunteer; +use Livewire\Livewire; -class AdminOrgTest extends VolunteersBaseTest +class OrganisationAdminTest extends VolunteersBaseTest { protected function setUp(): void { parent::setUp(); + $this->user = User::query() ->where('role', UserRole::ORG_ADMIN) ->inRandomOrder() ->first(); + $this->actingAs($this->user); } - public function testAdminOngCanViewVolunteers() + public function testOrganisationAdminCanViewVolunteers() { $volunteers = Volunteer::query() ->orderByDesc('id') @@ -56,7 +59,7 @@ public function testAdminOngCanViewVolunteers() ->limit(10) ->get(); - \Livewire::test(ListVolunteers::class) + Livewire::test(ListVolunteers::class) ->assertSuccessful() ->assertCountTableRecords(5) ->assertCanSeeTableRecords($volunteers) @@ -79,14 +82,14 @@ public function testAdminOngCanViewVolunteers() ->assertPageActionEnabled('create'); } - public function testAdminOngCanViewVolunteer() + public function testOrganisationAdminCanViewVolunteer() { $volunteer = Volunteer::query() ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) ->inRandomOrder() ->first(); - \Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) + Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) ->assertSuccessful() ->assertFormFieldIsVisible('first_name') ->assertFormFieldIsDisabled('first_name') @@ -117,7 +120,7 @@ public function testAdminOngCanViewVolunteer() ->state(['specializations' => VolunteerSpecialization::translator]) ->create(); - \Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) + Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) ->assertSuccessful() ->assertFormFieldIsVisible('first_name') ->assertFormFieldIsDisabled('first_name') @@ -145,14 +148,14 @@ public function testAdminOngCanViewVolunteer() ->assertPageActionEnabled('edit'); } - public function testAdminOngCanEditVolunteer() + public function testOrganisationAdminCanEditVolunteer() { $volunteer = Volunteer::query() ->whereJsonDoesntContain('specializations', VolunteerSpecialization::translator) ->inRandomOrder() ->first(); - \Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) + Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) ->assertSuccessful() ->assertFormFieldIsVisible('first_name') ->assertFormFieldIsEnabled('first_name') @@ -180,9 +183,9 @@ public function testAdminOngCanEditVolunteer() ->assertFormFieldIsEnabled('language'); } - public function testAdminOngCanCreateVolunteer() + public function testOrganisationAdminCanCreateVolunteer() { - \Livewire::test(CreateVolunteer::class) + Livewire::test(CreateVolunteer::class) ->assertSuccessful() ->assertFormFieldIsHidden('organisation_id') ->assertFormFieldIsEnabled('organisation_id') diff --git a/tests/Feature/Volunteers/AdminPlatformTest.php b/tests/Feature/Volunteers/PlatformAdminTest.php similarity index 96% rename from tests/Feature/Volunteers/AdminPlatformTest.php rename to tests/Feature/Volunteers/PlatformAdminTest.php index 3759567..099437d 100644 --- a/tests/Feature/Volunteers/AdminPlatformTest.php +++ b/tests/Feature/Volunteers/PlatformAdminTest.php @@ -14,15 +14,17 @@ use App\Models\County; use App\Models\Organisation; use App\Models\Volunteer; +use Livewire\Livewire; use Tests\Traits\ActingAsPlatformAdmin; -class AdminPlatformTest extends VolunteersBaseTest +class PlatformAdminTest extends VolunteersBaseTest { use ActingAsPlatformAdmin; protected function setUp(): void { parent::setUp(); + $this->actingAsPlatformAdmin(); } @@ -59,7 +61,7 @@ public function testPlatformAdminCanViewVolunteers() ->limit(10) ->get(); - \Livewire::test(ListVolunteers::class) + Livewire::test(ListVolunteers::class) ->assertSuccessful() ->assertCountTableRecords(10) ->assertCanSeeTableRecords($volunteers) @@ -91,7 +93,7 @@ public function testPlatformAdminCanViewVolunteer() ->inRandomOrder() ->first(); - \Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) + Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsDisabled('organisation_id') @@ -124,7 +126,7 @@ public function testPlatformAdminCanViewVolunteer() ->inRandomOrder() ->first(); - \Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) + Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsDisabled('organisation_id') @@ -161,7 +163,7 @@ public function testPlatformAdminCanEditVolunteer() ->inRandomOrder() ->first(); - \Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) + Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsEnabled('organisation_id') @@ -193,7 +195,7 @@ public function testPlatformAdminCanEditVolunteer() public function testPlatformAdminCanCreateVolunteer() { - \Livewire::test(CreateVolunteer::class) + Livewire::test(CreateVolunteer::class) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsEnabled('organisation_id') diff --git a/tests/Feature/Volunteers/PlatformCoordinatorTest.php b/tests/Feature/Volunteers/PlatformCoordinatorTest.php index 586a1ac..acbf172 100644 --- a/tests/Feature/Volunteers/PlatformCoordinatorTest.php +++ b/tests/Feature/Volunteers/PlatformCoordinatorTest.php @@ -12,15 +12,18 @@ use App\Models\Organisation; use App\Models\User; use App\Models\Volunteer; +use Livewire\Livewire; class PlatformCoordinatorTest extends VolunteersBaseTest { protected function setUp(): void { parent::setUp(); + $this->user = User::factory() ->platformCoordinator() ->create(); + $this->actingAs($this->user); } @@ -57,7 +60,7 @@ public function testPlatformCoordinatorCanViewVolunteers() ->limit(10) ->get(); - \Livewire::test(ListVolunteers::class) + Livewire::test(ListVolunteers::class) ->assertSuccessful() ->assertCountTableRecords(10) ->assertCanSeeTableRecords($volunteers) @@ -89,7 +92,7 @@ public function testPlatformCoordinatorCanViewVolunteer() ->inRandomOrder() ->first(); - \Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) + Livewire::test(ViewVolunteer::class, ['record' => $volunteer->id]) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsDisabled('organisation_id') @@ -121,7 +124,7 @@ public function testPlatformCoordinatorCanViewVolunteer() ->inRandomOrder() ->first(); - \Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) + Livewire::test(ViewVolunteer::class, ['record' => $volunteerTranslator->id]) ->assertSuccessful() ->assertFormFieldIsVisible('organisation_id') ->assertFormFieldIsDisabled('organisation_id') @@ -157,13 +160,13 @@ public function testPlatformCoordinatorCanNotEditVolunteer() ->inRandomOrder() ->first(); - \Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) + Livewire::test(EditVolunteer::class, ['record' => $volunteer->id]) ->assertForbidden(); } public function testPlatformCoordinatorCanNotCreateVolunteer() { - \Livewire::test(CreateVolunteer::class) + Livewire::test(CreateVolunteer::class) ->assertForbidden(); } } diff --git a/tests/Feature/Volunteers/VolunteersBaseTest.php b/tests/Feature/Volunteers/VolunteersBaseTest.php index 328e4de..fe2b910 100644 --- a/tests/Feature/Volunteers/VolunteersBaseTest.php +++ b/tests/Feature/Volunteers/VolunteersBaseTest.php @@ -24,6 +24,7 @@ protected function setUp(): void parent::setUp(); Notification::fake(); + $this->createOrganisationsWithVolunteers(); } From 7e7dbf349e9054c89de33632ad93116d06df63c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20Ioni=C8=9B=C4=83?= Date: Mon, 9 Sep 2024 15:37:16 +0100 Subject: [PATCH 15/16] wip --- .../VolunteersRelationManager.php | 2 +- .../Actions/ExportVolunteersExample.php | 64 -- .../Actions/ImportVolunteersAction.php | 210 ------ .../Pages/ListVolunteers.php | 4 - composer.json | 5 +- composer.lock | 658 +----------------- database/factories/OrganisationFactory.php | 17 +- database/factories/VolunteerFactory.php | 7 + ...ocumentsBaseTest.php => DocumentsBase.php} | 2 +- .../Documents/OrganisationAdminTest.php | 2 +- tests/Feature/Documents/PlatformAdminTest.php | 2 +- .../Documents/PlatformCoordinatorTest.php | 2 +- .../Volunteers/OrganisationAdminTest.php | 2 +- .../Feature/Volunteers/PlatformAdminTest.php | 2 +- .../Volunteers/PlatformCoordinatorTest.php | 2 +- ...unteersBaseTest.php => VolunteersBase.php} | 2 +- 16 files changed, 28 insertions(+), 955 deletions(-) delete mode 100644 app/Filament/Resources/VolunteerResource/Actions/ExportVolunteersExample.php delete mode 100644 app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php rename tests/Feature/Documents/{DocumentsBaseTest.php => DocumentsBase.php} (99%) rename tests/Feature/Volunteers/{VolunteersBaseTest.php => VolunteersBase.php} (93%) diff --git a/app/Filament/Resources/OrganisationResource/RelationManagers/VolunteersRelationManager.php b/app/Filament/Resources/OrganisationResource/RelationManagers/VolunteersRelationManager.php index ff41483..0dda4fd 100644 --- a/app/Filament/Resources/OrganisationResource/RelationManagers/VolunteersRelationManager.php +++ b/app/Filament/Resources/OrganisationResource/RelationManagers/VolunteersRelationManager.php @@ -130,7 +130,7 @@ public static function table(Table $table): Table ]) ->headerActions([ ExportAction::make(), -// VolunteerResource\Actions\ImportVolunteersAction::make(), + Tables\Actions\CreateAction::make() ->requiresConfirmation() ->modalHeading(__('volunteer.modal.heading')) diff --git a/app/Filament/Resources/VolunteerResource/Actions/ExportVolunteersExample.php b/app/Filament/Resources/VolunteerResource/Actions/ExportVolunteersExample.php deleted file mode 100644 index 4f5331b..0000000 --- a/app/Filament/Resources/VolunteerResource/Actions/ExportVolunteersExample.php +++ /dev/null @@ -1,64 +0,0 @@ -label(__('volunteer.labels.download_example')); - - $this->exports([ - ExcelExport::make() - ->withColumns([ - Column::make('first_name'), - Column::make('last_name'), - Column::make('email'), - Column::make('phone'), - Column::make('cnp'), - Column::make('rol'), - Column::make('specialisations'), - Column::make('has_first_aid_accreditation'), - Column::make('county') - ->formatStateUsing(fn ($state) => $state->name), - Column::make('city') - ->formatStateUsing(fn ($state) => $state->name), - ]), - ]); - } - - public function handleExport(array $data) - { - $examples = Volunteer::factory() - ->count(10) - ->make() - ->each(function ($item) { - $item->load('county'); - $item->load('city'); - - return $item; - }); - - $examplesArray = []; - foreach ($examples as $example) { - $examplesArray[] = $example; - } - - $exportable = $this->getSelectedExport($data); - $livewire = $this->getLivewire(); - - return app()->call([$exportable, 'hydrate'], [ - 'livewire' => $this->getLivewire(), - 'records' => $examples, - 'formData' => data_get($data, $exportable->getName()), - ])->export(); - } -} diff --git a/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php b/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php deleted file mode 100644 index 3a975a1..0000000 --- a/app/Filament/Resources/VolunteerResource/Actions/ImportVolunteersAction.php +++ /dev/null @@ -1,210 +0,0 @@ -label(__('volunteer.labels.import')); - $this->successNotificationTitle(__('volunteer.field.success_import')); - $this->visible(fn () => auth()->user()->isPlatformAdmin() || auth()->user()->isOrgAdmin()); - $this->handleBlankRows(true); - $this->fields([ - Select::make('organisation_id') - ->options(function () { - if (auth()->user()->isOrgAdmin()) { - $organisation = auth()->user()->organisation; - - return [$organisation->id => $organisation->name]; - } - - return Organisation::all() - ->pluck('name', 'id'); - }) - ->searchable() - ->label(__('organisation.label.singular')) - ->required(), - ImportField::make('first_name') - ->label(__('volunteer.field.first_name')) - ->required(), - ImportField::make('last_name') - ->label(__('volunteer.field.last_name')) - ->required(), - ImportField::make('email') - ->label(__('volunteer.field.email')) - ->required(), - ImportField::make('phone') - ->label(__('volunteer.field.phone')), - ImportField::make('cnp') - ->label(__('volunteer.field.cnp')), - ImportField::make('role') - ->label(__('volunteer.field.role')) - ->required(), - ImportField::make('specializations') - ->label(__('volunteer.field.specializations')) - ->required(), - ImportField::make('has_first_aid_accreditation') - ->label(__('volunteer.field.has_first_aid_accreditation')), - ImportField::make('county') - ->label(__('general.county')), - ImportField::make('city') - ->label(__('general.city')), - ]); - - $this->handleRecordCreation(function (array $data) { - $validator = \Validator::make($data, [ - 'organisation_id' => [ - 'required', - Rule::in(Organisation::all()->pluck('id')), - ], - 'first_name' => [ - 'required', - 'max:255', - 'string', - ], - 'last_name' => [ - 'required', - 'max:255', - 'string', - ], - 'email' => [ - 'required', - 'max:255', - 'email', - ], - 'phone' => [ - 'numeric', - 'min:10', - ], - 'role' => [ - 'required', - Rule::in(VolunteerRole::options()), - ], - 'specializations' => ['required'], - ]); - - $data = $validator->getData(); - $messages = $validator->getMessageBag(); - if ($messages->messages()) { - $this->setFailureMsg($messages->messages()); - - return new Volunteer(); - } - $roles = VolunteerRole::options(); - $role = array_search($data['role'], $roles); - - $specializations = explode(',', $data['specializations']); - $allSpecializations = VolunteerSpecialization::options(); - $newSpecializations = []; - foreach ($specializations as $specialization) { - $specializationFromEnum = array_search(trim($specialization), $allSpecializations); - if (! $specializationFromEnum) { - $this->setFailureMsg([ - __( - 'validation.in_array', - ['attribute' => __('volunteer.field.specializations') . ' (' . $specialization . ')', - 'other' => implode(', ', $allSpecializations), - ] - ), - ]); - - return new Volunteer(); - } - $newSpecializations[] = $specializationFromEnum; - } - - $firstAID = false; - if (isset($data['has_first_aid_accreditation'])) { - $firstAID = (bool) $data['has_first_aid_accreditation']; - } - - $fields = ['organisation_id' => $data['organisation_id'], - 'first_name' => $data['first_name'], - 'last_name' => $data['last_name'], - 'email' => $data['email'], - 'phone' => $data['phone'] ?? null, - 'cnp' => $data['cnp'] ?? null, - 'role' => $role, - 'specializations' => $newSpecializations, - 'has_first_aid_accreditation' => $firstAID, - ]; - - if (isset($data['county'])) { - $county = County::query() - ->where('name', 'like', trim($data['county'])) - ->first(); - - if (! $county) { - $this->setFailureMsg([ - __( - 'validation.in_array', - [ - 'attribute' => __('general.county') . ' (' . $data['county'] . ')', - 'other' => County::all() - ->map(fn ($item) => $item->name) - ->implode(', '), - ] - ), - ]); - - return new Volunteer(); - } - $fields['county_id'] = $county->id; - - if (isset($data['city'])) { - $city = City::query() - ->search(trim($data['city'])) - ->where('county_id', $county->id) - ->first(); - - if (! $city) { - $this->setFailureMsg([ - __( - 'validation.in_array', - [ - 'attribute' => __('general.city') . ' (' . $data['city'] . ')', - 'other' => __( - 'general.localities_from_county', - ['county' => $data['county']] - ), - ] - ), - ]); - - return new Volunteer(); - } - $fields['city_id'] = $city->id; - } - } - - return Volunteer::create($fields); - }); - } - - public function setFailureMsg(array $messages) - { - foreach ($messages as &$msg) { - $msg = \is_array($msg) ? implode(' ', $msg) : $msg; - } - $msgString = implode(' ', $messages); - $msgString = substr($msgString, 0, 100); - $this->failureNotificationTitle($msgString); - $this->failure(); - } -} diff --git a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php index 38b6963..7c582df 100644 --- a/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php +++ b/app/Filament/Resources/VolunteerResource/Pages/ListVolunteers.php @@ -5,8 +5,6 @@ namespace App\Filament\Resources\VolunteerResource\Pages; use App\Filament\Resources\VolunteerResource; -use App\Filament\Resources\VolunteerResource\Actions\ExportVolunteersExample; -use App\Filament\Resources\VolunteerResource\Actions\ImportVolunteersAction; use Filament\Pages\Actions; use Filament\Resources\Pages\ListRecords; use Illuminate\Database\Eloquent\Builder; @@ -19,8 +17,6 @@ protected function getActions(): array { return [ Actions\CreateAction::make(), - ImportVolunteersAction::make(), -// ExportVolunteersExample::make(), ]; } diff --git a/composer.json b/composer.json index 2463988..58ded64 100644 --- a/composer.json +++ b/composer.json @@ -17,8 +17,7 @@ "laravel/tinker": "^2.8", "league/flysystem-aws-s3-v3": "^3.21", "pxlrbt/filament-excel": "^1.1", - "sentry/sentry-laravel": "^4.1", - "konnco/filament-import": "1.6.0" + "sentry/sentry-laravel": "^4.1" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.13", @@ -31,8 +30,6 @@ "laravel/telescope": "^4.17", "mockery/mockery": "^1.6", "nunomaduro/collision": "^7.10", - "pestphp/pest": "^2.34", - "pestphp/pest-plugin-livewire": "^2.1", "phpunit/phpunit": "^10.4", "spatie/laravel-ignition": "^2.3" }, diff --git a/composer.lock b/composer.lock index fdb03a8..2d99c58 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": "234b00b722c7a92367e53bdfc4724a73", + "content-hash": "7a70662ab504734cb42fc3e00403f5de", "packages": [ { "name": "akaunting/laravel-money", @@ -2494,76 +2494,6 @@ }, "time": "2024-01-31T15:40:42+00:00" }, - { - "name": "konnco/filament-import", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://github.com/konnco/filament-import.git", - "reference": "00c5f09be296f039cc4090a1e546637b48a4b43a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/konnco/filament-import/zipball/00c5f09be296f039cc4090a1e546637b48a4b43a", - "reference": "00c5f09be296f039cc4090a1e546637b48a4b43a", - "shasum": "" - }, - "require": { - "filament/filament": "^2.0", - "filament/notifications": "^2.0", - "illuminate/contracts": "^9.0|^10.0", - "illuminate/support": "^9.0|^10.0", - "maatwebsite/excel": "^3.1", - "php": "^8.0", - "psr/simple-cache": "^2.0|^3.0", - "spatie/laravel-package-tools": "^1.14" - }, - "require-dev": { - "laravel/pint": "^1.0", - "nunomaduro/collision": "^6.0|^7.0", - "nunomaduro/larastan": "^2.0", - "orchestra/testbench": "^7.0", - "pestphp/pest": "^1.21", - "pestphp/pest-plugin-laravel": "^1.1", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^9.5|^10.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Konnco\\FilamentImport\\FilamentImportServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Konnco\\FilamentImport\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Franky So", - "email": "frankyso.mail@gmail.com" - } - ], - "keywords": [ - "filament-import", - "import", - "laravel" - ], - "support": { - "issues": "https://github.com/konnco/filament-import/issues", - "source": "https://github.com/konnco/filament-import/tree/1.6.0" - }, - "time": "2023-06-18T04:00:35+00:00" - }, { "name": "laravel/framework", "version": "v10.48.7", @@ -9445,100 +9375,6 @@ }, "time": "2023-06-14T05:06:27+00:00" }, - { - "name": "brianium/paratest", - "version": "v7.4.3", - "source": { - "type": "git", - "url": "https://github.com/paratestphp/paratest.git", - "reference": "64fcfd0e28a6b8078a19dbf9127be2ee645b92ec" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/64fcfd0e28a6b8078a19dbf9127be2ee645b92ec", - "reference": "64fcfd0e28a6b8078a19dbf9127be2ee645b92ec", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-pcre": "*", - "ext-reflection": "*", - "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.1.0", - "jean85/pretty-package-versions": "^2.0.5", - "php": "~8.2.0 || ~8.3.0", - "phpunit/php-code-coverage": "^10.1.11 || ^11.0.0", - "phpunit/php-file-iterator": "^4.1.0 || ^5.0.0", - "phpunit/php-timer": "^6.0.0 || ^7.0.0", - "phpunit/phpunit": "^10.5.9 || ^11.0.3", - "sebastian/environment": "^6.0.1 || ^7.0.0", - "symfony/console": "^6.4.3 || ^7.0.3", - "symfony/process": "^6.4.3 || ^7.0.3" - }, - "require-dev": { - "doctrine/coding-standard": "^12.0.0", - "ext-pcov": "*", - "ext-posix": "*", - "phpstan/phpstan": "^1.10.58", - "phpstan/phpstan-deprecation-rules": "^1.1.4", - "phpstan/phpstan-phpunit": "^1.3.15", - "phpstan/phpstan-strict-rules": "^1.5.2", - "squizlabs/php_codesniffer": "^3.9.0", - "symfony/filesystem": "^6.4.3 || ^7.0.3" - }, - "bin": [ - "bin/paratest", - "bin/paratest.bat", - "bin/paratest_for_phpstorm" - ], - "type": "library", - "autoload": { - "psr-4": { - "ParaTest\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brian Scaturro", - "email": "scaturrob@gmail.com", - "role": "Developer" - }, - { - "name": "Filippo Tessarotto", - "email": "zoeslam@gmail.com", - "role": "Developer" - } - ], - "description": "Parallel testing for PHP", - "homepage": "https://github.com/paratestphp/paratest", - "keywords": [ - "concurrent", - "parallel", - "phpunit", - "testing" - ], - "support": { - "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.4.3" - }, - "funding": [ - { - "url": "https://github.com/sponsors/Slamdunk", - "type": "github" - }, - { - "url": "https://paypal.me/filippotessarotto", - "type": "paypal" - } - ], - "time": "2024-02-20T07:24:02+00:00" - }, { "name": "composer/class-map-generator", "version": "1.1.1", @@ -10400,67 +10236,6 @@ }, "time": "2024-01-02T13:46:09+00:00" }, - { - "name": "fidry/cpu-core-counter", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "fidry/makefile": "^0.2.0", - "fidry/php-cs-fixer-config": "^1.1.2", - "phpstan/extension-installer": "^1.2.0", - "phpstan/phpstan": "^1.9.2", - "phpstan/phpstan-deprecation-rules": "^1.0.0", - "phpstan/phpstan-phpunit": "^1.2.2", - "phpstan/phpstan-strict-rules": "^1.4.4", - "phpunit/phpunit": "^8.5.31 || ^9.5.26", - "webmozarts/strict-phpunit": "^7.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Fidry\\CpuCoreCounter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Théo FIDRY", - "email": "theo.fidry@gmail.com" - } - ], - "description": "Tiny utility to get the number of CPU cores.", - "keywords": [ - "CPU", - "core" - ], - "support": { - "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" - }, - "funding": [ - { - "url": "https://github.com/theofidry", - "type": "github" - } - ], - "time": "2024-02-07T09:43:46+00:00" - }, { "name": "filp/whoops", "version": "2.15.4", @@ -11714,321 +11489,6 @@ ], "time": "2023-10-11T15:45:01+00:00" }, - { - "name": "pestphp/pest", - "version": "v2.34.7", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest.git", - "reference": "a7a3e4240e341d0fee1c54814ce18adc26ce5a76" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/a7a3e4240e341d0fee1c54814ce18adc26ce5a76", - "reference": "a7a3e4240e341d0fee1c54814ce18adc26ce5a76", - "shasum": "" - }, - "require": { - "brianium/paratest": "^7.3.1", - "nunomaduro/collision": "^7.10.0|^8.1.1", - "nunomaduro/termwind": "^1.15.1|^2.0.1", - "pestphp/pest-plugin": "^2.1.1", - "pestphp/pest-plugin-arch": "^2.7.0", - "php": "^8.1.0", - "phpunit/phpunit": "^10.5.17" - }, - "conflict": { - "phpunit/phpunit": ">10.5.17", - "sebastian/exporter": "<5.1.0", - "webmozart/assert": "<1.11.0" - }, - "require-dev": { - "pestphp/pest-dev-tools": "^2.16.0", - "pestphp/pest-plugin-type-coverage": "^2.8.1", - "symfony/process": "^6.4.0|^7.0.4" - }, - "bin": [ - "bin/pest" - ], - "type": "library", - "extra": { - "pest": { - "plugins": [ - "Pest\\Plugins\\Bail", - "Pest\\Plugins\\Cache", - "Pest\\Plugins\\Coverage", - "Pest\\Plugins\\Init", - "Pest\\Plugins\\Environment", - "Pest\\Plugins\\Help", - "Pest\\Plugins\\Memory", - "Pest\\Plugins\\Only", - "Pest\\Plugins\\Printer", - "Pest\\Plugins\\ProcessIsolation", - "Pest\\Plugins\\Profile", - "Pest\\Plugins\\Retry", - "Pest\\Plugins\\Snapshot", - "Pest\\Plugins\\Verbose", - "Pest\\Plugins\\Version", - "Pest\\Plugins\\Parallel" - ] - }, - "phpstan": { - "includes": [ - "extension.neon" - ] - } - }, - "autoload": { - "files": [ - "src/Functions.php", - "src/Pest.php" - ], - "psr-4": { - "Pest\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "The elegant PHP Testing Framework.", - "keywords": [ - "framework", - "pest", - "php", - "test", - "testing", - "unit" - ], - "support": { - "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v2.34.7" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - } - ], - "time": "2024-04-05T07:44:17+00:00" - }, - { - "name": "pestphp/pest-plugin", - "version": "v2.1.1", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest-plugin.git", - "reference": "e05d2859e08c2567ee38ce8b005d044e72648c0b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/e05d2859e08c2567ee38ce8b005d044e72648c0b", - "reference": "e05d2859e08c2567ee38ce8b005d044e72648c0b", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^2.0.0", - "composer-runtime-api": "^2.2.2", - "php": "^8.1" - }, - "conflict": { - "pestphp/pest": "<2.2.3" - }, - "require-dev": { - "composer/composer": "^2.5.8", - "pestphp/pest": "^2.16.0", - "pestphp/pest-dev-tools": "^2.16.0" - }, - "type": "composer-plugin", - "extra": { - "class": "Pest\\Plugin\\Manager" - }, - "autoload": { - "psr-4": { - "Pest\\Plugin\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "The Pest plugin manager", - "keywords": [ - "framework", - "manager", - "pest", - "php", - "plugin", - "test", - "testing", - "unit" - ], - "support": { - "source": "https://github.com/pestphp/pest-plugin/tree/v2.1.1" - }, - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], - "time": "2023-08-22T08:40:06+00:00" - }, - { - "name": "pestphp/pest-plugin-arch", - "version": "v2.7.0", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest-plugin-arch.git", - "reference": "d23b2d7498475354522c3818c42ef355dca3fcda" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/d23b2d7498475354522c3818c42ef355dca3fcda", - "reference": "d23b2d7498475354522c3818c42ef355dca3fcda", - "shasum": "" - }, - "require": { - "nunomaduro/collision": "^7.10.0|^8.1.0", - "pestphp/pest-plugin": "^2.1.1", - "php": "^8.1", - "ta-tikoma/phpunit-architecture-test": "^0.8.4" - }, - "require-dev": { - "pestphp/pest": "^2.33.0", - "pestphp/pest-dev-tools": "^2.16.0" - }, - "type": "library", - "extra": { - "pest": { - "plugins": [ - "Pest\\Arch\\Plugin" - ] - } - }, - "autoload": { - "files": [ - "src/Autoload.php" - ], - "psr-4": { - "Pest\\Arch\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "The Arch plugin for Pest PHP.", - "keywords": [ - "arch", - "architecture", - "framework", - "pest", - "php", - "plugin", - "test", - "testing", - "unit" - ], - "support": { - "source": "https://github.com/pestphp/pest-plugin-arch/tree/v2.7.0" - }, - "funding": [ - { - "url": "https://www.paypal.com/paypalme/enunomaduro", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - } - ], - "time": "2024-01-26T09:46:42+00:00" - }, - { - "name": "pestphp/pest-plugin-livewire", - "version": "v2.1.0", - "source": { - "type": "git", - "url": "https://github.com/pestphp/pest-plugin-livewire.git", - "reference": "e72a2f850f727dfdb6bfa6e2ee6ff478ccc93f97" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-livewire/zipball/e72a2f850f727dfdb6bfa6e2ee6ff478ccc93f97", - "reference": "e72a2f850f727dfdb6bfa6e2ee6ff478ccc93f97", - "shasum": "" - }, - "require": { - "livewire/livewire": "^2.12.3|^3.0", - "pestphp/pest": "^2.9.1", - "php": "^8.1" - }, - "require-dev": { - "orchestra/testbench": "^8.5.10", - "pestphp/pest-dev-tools": "^2.12.0" - }, - "type": "library", - "autoload": { - "files": [ - "src/Autoload.php" - ], - "psr-4": { - "Pest\\Livewire\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "The Pest Livewire Plugin", - "keywords": [ - "framework", - "livewire", - "pest", - "php", - "plugin", - "test", - "testing", - "unit" - ], - "support": { - "source": "https://github.com/pestphp/pest-plugin-livewire/tree/v2.1.0" - }, - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], - "time": "2023-07-20T16:28:21+00:00" - }, { "name": "phar-io/manifest", "version": "2.0.4", @@ -12200,63 +11660,6 @@ }, "time": "2020-06-27T09:03:43+00:00" }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, { "name": "phpdocumentor/type-resolver", "version": "1.8.2", @@ -14280,65 +13683,6 @@ ], "time": "2024-01-23T15:02:46+00:00" }, - { - "name": "ta-tikoma/phpunit-architecture-test", - "version": "0.8.4", - "source": { - "type": "git", - "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", - "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/89f0dea1cb0f0d5744d3ec1764a286af5e006636", - "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18.0 || ^5.0.0", - "php": "^8.1.0", - "phpdocumentor/reflection-docblock": "^5.3.0", - "phpunit/phpunit": "^10.5.5 || ^11.0.0", - "symfony/finder": "^6.4.0 || ^7.0.0" - }, - "require-dev": { - "laravel/pint": "^1.13.7", - "phpstan/phpstan": "^1.10.52" - }, - "type": "library", - "autoload": { - "psr-4": { - "PHPUnit\\Architecture\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ni Shi", - "email": "futik0ma011@gmail.com" - }, - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "Methods for testing application architecture", - "keywords": [ - "architecture", - "phpunit", - "stucture", - "test", - "testing" - ], - "support": { - "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", - "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.4" - }, - "time": "2024-01-05T14:10:56+00:00" - }, { "name": "theseer/tokenizer", "version": "1.2.3", diff --git a/database/factories/OrganisationFactory.php b/database/factories/OrganisationFactory.php index 2c532cd..8fda2b0 100644 --- a/database/factories/OrganisationFactory.php +++ b/database/factories/OrganisationFactory.php @@ -159,16 +159,19 @@ public function withUserAndDocuments() public function withUserAndVolunteers() { return $this->afterCreating(function (Organisation $organisation) { -// var_dump($organisation->email, $organisation->id, User::all()->pluck('email')); -// dd(Organisation::all()->pluck('email', 'id'), $organisation); -// User::factory(['email' => $organisation->email]) -// ->orgAdmin() -// ->for($organisation) -// ->create(); + // User::factory(['email' => $organisation->email]) + // ->orgAdmin() + // ->for($organisation) + // ->create(); Volunteer::factory() ->for($organisation) - ->count(5) + ->translator() + ->create(); + + Volunteer::factory() + ->for($organisation) + ->count(4) ->create(); }); } diff --git a/database/factories/VolunteerFactory.php b/database/factories/VolunteerFactory.php index 1a67218..f83f489 100644 --- a/database/factories/VolunteerFactory.php +++ b/database/factories/VolunteerFactory.php @@ -36,4 +36,11 @@ public function definition() 'has_first_aid_accreditation' => fake()->boolean(), ]; } + + public function translator(): static + { + return $this->state(fn ($attributes) => [ + 'specializations' => array_merge($attributes['specializations'], [VolunteerSpecialization::translator]), + ]); + } } diff --git a/tests/Feature/Documents/DocumentsBaseTest.php b/tests/Feature/Documents/DocumentsBase.php similarity index 99% rename from tests/Feature/Documents/DocumentsBaseTest.php rename to tests/Feature/Documents/DocumentsBase.php index 3f393a7..c407c3f 100644 --- a/tests/Feature/Documents/DocumentsBaseTest.php +++ b/tests/Feature/Documents/DocumentsBase.php @@ -21,7 +21,7 @@ use Livewire\Testing\TestableLivewire; use Tests\TestCase; -abstract class DocumentsBaseTest extends TestCase +abstract class DocumentsBase extends TestCase { use RefreshDatabase; diff --git a/tests/Feature/Documents/OrganisationAdminTest.php b/tests/Feature/Documents/OrganisationAdminTest.php index f70ce3c..aa14fef 100644 --- a/tests/Feature/Documents/OrganisationAdminTest.php +++ b/tests/Feature/Documents/OrganisationAdminTest.php @@ -11,7 +11,7 @@ use App\Models\User; use Livewire\Livewire; -class OrganisationAdminTest extends DocumentsBaseTest +class OrganisationAdminTest extends DocumentsBase { protected function setUp(): void { diff --git a/tests/Feature/Documents/PlatformAdminTest.php b/tests/Feature/Documents/PlatformAdminTest.php index d2006b1..d34ddb8 100644 --- a/tests/Feature/Documents/PlatformAdminTest.php +++ b/tests/Feature/Documents/PlatformAdminTest.php @@ -12,7 +12,7 @@ use Livewire\Livewire; use Tests\Traits\ActingAsPlatformAdmin; -class PlatformAdminTest extends DocumentsBaseTest +class PlatformAdminTest extends DocumentsBase { use ActingAsPlatformAdmin; diff --git a/tests/Feature/Documents/PlatformCoordinatorTest.php b/tests/Feature/Documents/PlatformCoordinatorTest.php index ace6d79..23bbbf3 100644 --- a/tests/Feature/Documents/PlatformCoordinatorTest.php +++ b/tests/Feature/Documents/PlatformCoordinatorTest.php @@ -10,7 +10,7 @@ use App\Models\User; use Livewire\Livewire; -class PlatformCoordinatorTest extends DocumentsBaseTest +class PlatformCoordinatorTest extends DocumentsBase { protected function setUp(): void { diff --git a/tests/Feature/Volunteers/OrganisationAdminTest.php b/tests/Feature/Volunteers/OrganisationAdminTest.php index a2ebecb..e4ac4d2 100644 --- a/tests/Feature/Volunteers/OrganisationAdminTest.php +++ b/tests/Feature/Volunteers/OrganisationAdminTest.php @@ -17,7 +17,7 @@ use App\Models\Volunteer; use Livewire\Livewire; -class OrganisationAdminTest extends VolunteersBaseTest +class OrganisationAdminTest extends VolunteersBase { protected function setUp(): void { diff --git a/tests/Feature/Volunteers/PlatformAdminTest.php b/tests/Feature/Volunteers/PlatformAdminTest.php index 099437d..e0c08b2 100644 --- a/tests/Feature/Volunteers/PlatformAdminTest.php +++ b/tests/Feature/Volunteers/PlatformAdminTest.php @@ -17,7 +17,7 @@ use Livewire\Livewire; use Tests\Traits\ActingAsPlatformAdmin; -class PlatformAdminTest extends VolunteersBaseTest +class PlatformAdminTest extends VolunteersBase { use ActingAsPlatformAdmin; diff --git a/tests/Feature/Volunteers/PlatformCoordinatorTest.php b/tests/Feature/Volunteers/PlatformCoordinatorTest.php index acbf172..e7f5378 100644 --- a/tests/Feature/Volunteers/PlatformCoordinatorTest.php +++ b/tests/Feature/Volunteers/PlatformCoordinatorTest.php @@ -14,7 +14,7 @@ use App\Models\Volunteer; use Livewire\Livewire; -class PlatformCoordinatorTest extends VolunteersBaseTest +class PlatformCoordinatorTest extends VolunteersBase { protected function setUp(): void { diff --git a/tests/Feature/Volunteers/VolunteersBaseTest.php b/tests/Feature/Volunteers/VolunteersBase.php similarity index 93% rename from tests/Feature/Volunteers/VolunteersBaseTest.php rename to tests/Feature/Volunteers/VolunteersBase.php index fe2b910..681f76e 100644 --- a/tests/Feature/Volunteers/VolunteersBaseTest.php +++ b/tests/Feature/Volunteers/VolunteersBase.php @@ -11,7 +11,7 @@ use Illuminate\Support\Facades\Notification; use Tests\TestCase; -abstract class VolunteersBaseTest extends TestCase +abstract class VolunteersBase extends TestCase { use RefreshDatabase; From 5c24d434ab4d7306bb2de9742c1c3af3d8c5d02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20Ioni=C8=9B=C4=83?= Date: Mon, 9 Sep 2024 15:39:36 +0100 Subject: [PATCH 16/16] cleanup --- lang/ro/general.php | 1 - lang/ro/volunteer.php | 5 ----- lang/vendor/filament-import/ro/actions.php | 11 ----------- 3 files changed, 17 deletions(-) delete mode 100644 lang/vendor/filament-import/ro/actions.php diff --git a/lang/ro/general.php b/lang/ro/general.php index fb55fb8..d3fab65 100644 --- a/lang/ro/general.php +++ b/lang/ro/general.php @@ -5,7 +5,6 @@ return [ 'county' => 'Județ', 'city' => 'Localitate', - 'localities_from_county' => 'Localitatile din județul :county', 'created_at' => 'Inregistrat la data de', 'updated_at' => 'Actualizat la data de', 'help' => [ diff --git a/lang/ro/volunteer.php b/lang/ro/volunteer.php index 9495683..e36acb8 100644 --- a/lang/ro/volunteer.php +++ b/lang/ro/volunteer.php @@ -24,11 +24,6 @@ 'organisation' => 'Organizație', ], - 'labels' => [ - 'import' => 'Importa voluntari', - 'download_example' => 'Descarca exemplu de import', - ], - 'role' => [ 'volunteer' => 'Voluntar', 'coordinator' => 'Coordonator voluntari', diff --git a/lang/vendor/filament-import/ro/actions.php b/lang/vendor/filament-import/ro/actions.php deleted file mode 100644 index 7c382d9..0000000 --- a/lang/vendor/filament-import/ro/actions.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Import', - 'skip_header' => 'Omite prima linie', - 'match_to_column' => 'Mapeaza coloanele', -// 'import_failed' => 'Import failed, please check your import file and try again', -// 'import_failed_title' => 'Import Failed', -// 'import_succeeded' => 'Import of :count row(s) succeeded, :skipped skipped row(s)', -// 'import_succeeded_title' => 'Import Succeeded', -];