diff --git a/.phpunit.cache/test-results b/.phpunit.cache/test-results new file mode 100644 index 00000000..0d361301 --- /dev/null +++ b/.phpunit.cache/test-results @@ -0,0 +1 @@ +{"version":1,"defects":{"Waziri123\\WaziriLivewireToast\\Tests\\BackgroundColorTest::test_setType":8},"times":{"Waziri123\\WaziriLivewireToast\\Tests\\BackgroundColorTest::test_setType":4.365}} \ No newline at end of file diff --git a/BackgroundColorTest.php b/BackgroundColorTest.php new file mode 100644 index 00000000..3373155c --- /dev/null +++ b/BackgroundColorTest.php @@ -0,0 +1,31 @@ +call('_setType','warning') + ->assertSet('type', 'warning'); + +} + + + +} \ No newline at end of file diff --git a/composer.json b/composer.json index 38a76486..66e6b3a6 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,13 @@ "name": "waziri123/waziri-livewire-toast", "description": "Livewire Package to display Toast Notifications", "license": "MIT", - "keywords": ["Laravel", "LivewireToast", "Toast", "Notifications", "Livewire"], + "keywords": [ + "Laravel", + "LivewireToast", + "Toast", + "Notifications", + "Livewire" + ], "authors": [ { "name": "Waziri123", @@ -11,12 +17,39 @@ ], "autoload": { "psr-4": { - "Waziri123\\WaziriLivewireToast\\" : "src/" + "Waziri123\\WaziriLivewireToast\\": "src/" } }, + "autoload-dev": { + "psr-4": { + "Waziri123\\WaziriLivewireToast\\Tests\\": "tests", + "Workbench\\App\\": "workbench/app/", + "Workbench\\Database\\Factories\\": "workbench/database/factories/", + "Workbench\\Database\\Seeders\\": "workbench/database/seeders/" + } + }, + "scripts": { + "test": "vendor/bin/phpunit", + "test-coverage": "phpunit --coverage-html coverage", + "post-autoload-dump": [ + "@clear", + "@prepare" + ], + "clear": "@php vendor/bin/testbench package:purge-skeleton --ansi", + "prepare": "@php vendor/bin/testbench package:discover --ansi", + "build": "@php vendor/bin/testbench workbench:build --ansi", + "serve": [ + "Composer\\Config::disableProcessTimeout", + "@build", + "@php vendor/bin/testbench serve" + ], + "lint": [ + "@php vendor/bin/phpstan analyse" + ] + }, "require": { - - "livewire/livewire": "^3.4.12" + "livewire/livewire": "^3.4.12", + "christophrumpel/missing-livewire-assertions": "^2.8" }, "extra": { "laravel": { @@ -28,4 +61,4 @@ "require-dev": { "orchestra/testbench": "^9.0" } -} +} \ No newline at end of file diff --git a/composer.lock b/composer.lock index f6b24a1e..b9ad5c5e 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": "ec3b0421fc03952dee81028822bd6b1e", + "content-hash": "4e738e8a2d246fe389d2b1640c03abf4", "packages": [ { "name": "brick/math", @@ -135,6 +135,71 @@ ], "time": "2024-02-09T16:56:22+00:00" }, + { + "name": "christophrumpel/missing-livewire-assertions", + "version": "v2.8.0", + "source": { + "type": "git", + "url": "https://github.com/christophrumpel/missing-livewire-assertions.git", + "reference": "3075093b0e5229bccfb768f32ce5f42736d1c1f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/christophrumpel/missing-livewire-assertions/zipball/3075093b0e5229bccfb768f32ce5f42736d1c1f5", + "reference": "3075093b0e5229bccfb768f32ce5f42736d1c1f5", + "shasum": "" + }, + "require": { + "illuminate/support": "^10.0|^9.0|^11.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.4.3" + }, + "require-dev": { + "brianium/paratest": "^6.2|^7.4", + "livewire/livewire": "^3.0", + "orchestra/testbench": "^8.0|^7.4|^9.0", + "pestphp/pest": "^2.34", + "phpunit/phpunit": "^9.3|^10.5", + "spatie/laravel-ray": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Christophrumpel\\MissingLivewireAssertions\\MissingLivewireAssertionsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Christophrumpel\\MissingLivewireAssertions\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christoph Rumpel", + "email": "christoph@christoph-rumpel.com", + "role": "Developer" + } + ], + "description": "This package adds missing livewire test assertions.", + "homepage": "https://github.com/christophrumpel/missing-livewire-assertions", + "keywords": [ + "assertions", + "christophrumpel", + "laravel", + "livewire" + ], + "support": { + "issues": "https://github.com/christophrumpel/missing-livewire-assertions/issues", + "source": "https://github.com/christophrumpel/missing-livewire-assertions/tree/v2.8.0" + }, + "time": "2024-04-11T15:23:28+00:00" + }, { "name": "dflydev/dot-access-data", "version": "v3.0.2", @@ -1052,16 +1117,16 @@ }, { "name": "laravel/framework", - "version": "v11.6.0", + "version": "v11.7.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e090ee638ebd4ce221d8bad43b49bbf59ea70ae5" + "reference": "e5ac72f513f635f208024aa76b8a04efc1b47f93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e090ee638ebd4ce221d8bad43b49bbf59ea70ae5", - "reference": "e090ee638ebd4ce221d8bad43b49bbf59ea70ae5", + "url": "https://api.github.com/repos/laravel/framework/zipball/e5ac72f513f635f208024aa76b8a04efc1b47f93", + "reference": "e5ac72f513f635f208024aa76b8a04efc1b47f93", "shasum": "" }, "require": { @@ -1253,7 +1318,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-04-30T13:30:08+00:00" + "time": "2024-05-07T13:41:51+00:00" }, { "name": "laravel/prompts", @@ -2565,20 +2630,20 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "type": "library", @@ -2602,7 +2667,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -2614,9 +2679,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, - "time": "2023-04-10T20:10:41+00:00" + "time": "2024-04-15T12:06:14+00:00" }, { "name": "psr/http-message", @@ -2997,6 +3062,66 @@ ], "time": "2024-04-27T21:32:50+00:00" }, + { + "name": "spatie/laravel-package-tools", + "version": "1.16.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5.24", + "spatie/pest-plugin-test-time": "^1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.4" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-03-20T07:29:11+00:00" + }, { "name": "symfony/clock", "version": "v7.0.7", @@ -6228,16 +6353,16 @@ }, { "name": "orchestra/testbench-core", - "version": "v9.0.15", + "version": "v9.0.16", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "f3a8819310294646d628fc3c5b5958a0a651b066" + "reference": "dbd43bf3845f5d07fed375fff0cb4083924c5de2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/f3a8819310294646d628fc3c5b5958a0a651b066", - "reference": "f3a8819310294646d628fc3c5b5958a0a651b066", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/dbd43bf3845f5d07fed375fff0cb4083924c5de2", + "reference": "dbd43bf3845f5d07fed375fff0cb4083924c5de2", "shasum": "" }, "require": { @@ -6313,7 +6438,7 @@ "issues": "https://github.com/orchestral/testbench/issues", "source": "https://github.com/orchestral/testbench-core" }, - "time": "2024-04-24T12:11:58+00:00" + "time": "2024-05-09T06:53:54+00:00" }, { "name": "orchestra/workbench", @@ -7113,16 +7238,16 @@ }, { "name": "rector/rector", - "version": "1.0.4", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "6e04d0eb087aef707fa0c5686d33d6ff61f4a555" + "reference": "73eb63e4f9011dba6b7c66c3262543014e352f34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/6e04d0eb087aef707fa0c5686d33d6ff61f4a555", - "reference": "6e04d0eb087aef707fa0c5686d33d6ff61f4a555", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/73eb63e4f9011dba6b7c66c3262543014e352f34", + "reference": "73eb63e4f9011dba6b7c66c3262543014e352f34", "shasum": "" }, "require": { @@ -7160,7 +7285,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.0.4" + "source": "https://github.com/rectorphp/rector/tree/1.0.5" }, "funding": [ { @@ -7168,7 +7293,7 @@ "type": "github" } ], - "time": "2024-04-05T09:01:07+00:00" + "time": "2024-05-10T05:31:15+00:00" }, { "name": "sebastian/cli-parser", diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 00000000..6f0a0c08 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,31 @@ + + + + + + ./tests/Unit + + + ./tests/Feature + + + + + + + + + src/ + + + \ No newline at end of file diff --git a/src/Http/Livewire/LivewireToast.php b/src/Http/Livewire/LivewireToast.php index bd0c268b..c190e8d7 100644 --- a/src/Http/Livewire/LivewireToast.php +++ b/src/Http/Livewire/LivewireToast.php @@ -2,6 +2,7 @@ namespace Waziri123\WaziriLivewireToast\Http\Livewire; +use Livewire\Attributes\On; use Livewire\Component; class LivewireToast extends Component @@ -33,7 +34,7 @@ public function mount() $this->show($message); } } - + #[On('show')] public function show($params) { $type = ''; @@ -45,25 +46,28 @@ public function show($params) } $this->_setType($type); } - + #[On('showWarning')] public function showWarning($message) { $this->message = $message; $this->_setType('warning'); } + #[On('showInfo')] public function showInfo($message) { $this->message = $message; $this->_setType('info'); } + #[On('showError')] public function showError($message) { $this->message = $message; $this->_setType('error'); } + #[On('showSuccess')] public function showSuccess($message) { $this->message = $message; @@ -86,7 +90,7 @@ public function render() return view('livewire-toast::livewire.livewire-toast'); } - private function _setType($type = '') + public function _setType($type = '') { if (in_array($type, ['warning', 'info', 'error', 'success'])) { $this->type = $type; diff --git a/testbench.yaml b/testbench.yaml new file mode 100644 index 00000000..4843c843 --- /dev/null +++ b/testbench.yaml @@ -0,0 +1,22 @@ +providers: + # - Workbench\App\Providers\WorkbenchServiceProvider + +migrations: + - workbench/database/migrations + +seeders: + - Workbench\Database\Seeders\DatabaseSeeder + +workbench: + start: '/' + install: true + health: false + discovers: + web: true + api: false + commands: false + components: false + views: false + build: [] + assets: [] + sync: [] diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 00000000..dd80a885 --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,24 @@ + array($vendorDir . '/zbateson/stream-decorators/src'), 'ZBateson\\MbWrapper\\' => array($vendorDir . '/zbateson/mb-wrapper/src'), 'ZBateson\\MailMimeParser\\' => array($vendorDir . '/zbateson/mail-mime-parser/src'), + 'Workbench\\Database\\Seeders\\' => array($baseDir . '/workbench/database/seeders'), + 'Workbench\\Database\\Factories\\' => array($baseDir . '/workbench/database/factories'), + 'Workbench\\App\\' => array($baseDir . '/workbench/app'), 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'Waziri123\\LivewireToast\\' => array($baseDir . '/src'), + 'Waziri123\\WaziriLivewireToast\\Tests\\' => array($baseDir . '/tests'), + 'Waziri123\\WaziriLivewireToast\\' => array($baseDir . '/src'), 'TijsVerkoyen\\CssToInlineStyles\\' => array($vendorDir . '/tijsverkoyen/css-to-inline-styles/src'), 'Termwind\\' => array($vendorDir . '/nunomaduro/termwind/src'), 'Symfony\\Polyfill\\Uuid\\' => array($vendorDir . '/symfony/polyfill-uuid'), @@ -48,6 +52,7 @@ 'Spatie\\Ray\\' => array($vendorDir . '/spatie/ray/src'), 'Spatie\\Macroable\\' => array($vendorDir . '/spatie/macroable/src'), 'Spatie\\LaravelRay\\' => array($vendorDir . '/spatie/laravel-ray/src'), + 'Spatie\\LaravelPackageTools\\' => array($vendorDir . '/spatie/laravel-package-tools/src'), 'Spatie\\Backtrace\\' => array($vendorDir . '/spatie/backtrace/src'), 'Ramsey\\Uuid\\' => array($vendorDir . '/ramsey/uuid/src'), 'Ramsey\\Collection\\' => array($vendorDir . '/ramsey/collection/src'), @@ -93,6 +98,7 @@ 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), 'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'), 'Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), + 'Christophrumpel\\MissingLivewireAssertions\\' => array($vendorDir . '/christophrumpel/missing-livewire-assertions/src'), 'Carbon\\Doctrine\\' => array($vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine'), 'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'), 'Brick\\Math\\' => array($vendorDir . '/brick/math/src'), diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index d5ece03c..e7fd0dd7 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -57,8 +57,12 @@ class ComposerStaticInit23a18a6d13a892c1c51f1c04a8596be0 ), 'W' => array ( + 'Workbench\\Database\\Seeders\\' => 27, + 'Workbench\\Database\\Factories\\' => 29, + 'Workbench\\App\\' => 14, 'Webmozart\\Assert\\' => 17, - 'Waziri123\\LivewireToast\\' => 24, + 'Waziri123\\WaziriLivewireToast\\Tests\\' => 36, + 'Waziri123\\WaziriLivewireToast\\' => 30, ), 'T' => array ( @@ -101,6 +105,7 @@ class ComposerStaticInit23a18a6d13a892c1c51f1c04a8596be0 'Spatie\\Ray\\' => 11, 'Spatie\\Macroable\\' => 17, 'Spatie\\LaravelRay\\' => 18, + 'Spatie\\LaravelPackageTools\\' => 27, 'Spatie\\Backtrace\\' => 17, ), 'R' => @@ -179,6 +184,7 @@ class ComposerStaticInit23a18a6d13a892c1c51f1c04a8596be0 array ( 'Cron\\' => 5, 'Composer\\Semver\\' => 16, + 'Christophrumpel\\MissingLivewireAssertions\\' => 42, 'Carbon\\Doctrine\\' => 16, 'Carbon\\' => 7, ), @@ -205,11 +211,27 @@ class ComposerStaticInit23a18a6d13a892c1c51f1c04a8596be0 array ( 0 => __DIR__ . '/..' . '/zbateson/mail-mime-parser/src', ), + 'Workbench\\Database\\Seeders\\' => + array ( + 0 => __DIR__ . '/../..' . '/workbench/database/seeders', + ), + 'Workbench\\Database\\Factories\\' => + array ( + 0 => __DIR__ . '/../..' . '/workbench/database/factories', + ), + 'Workbench\\App\\' => + array ( + 0 => __DIR__ . '/../..' . '/workbench/app', + ), 'Webmozart\\Assert\\' => array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', ), - 'Waziri123\\LivewireToast\\' => + 'Waziri123\\WaziriLivewireToast\\Tests\\' => + array ( + 0 => __DIR__ . '/../..' . '/tests', + ), + 'Waziri123\\WaziriLivewireToast\\' => array ( 0 => __DIR__ . '/../..' . '/src', ), @@ -357,6 +379,10 @@ class ComposerStaticInit23a18a6d13a892c1c51f1c04a8596be0 array ( 0 => __DIR__ . '/..' . '/spatie/laravel-ray/src', ), + 'Spatie\\LaravelPackageTools\\' => + array ( + 0 => __DIR__ . '/..' . '/spatie/laravel-package-tools/src', + ), 'Spatie\\Backtrace\\' => array ( 0 => __DIR__ . '/..' . '/spatie/backtrace/src', @@ -540,6 +566,10 @@ class ComposerStaticInit23a18a6d13a892c1c51f1c04a8596be0 array ( 0 => __DIR__ . '/..' . '/composer/semver/src', ), + 'Christophrumpel\\MissingLivewireAssertions\\' => + array ( + 0 => __DIR__ . '/..' . '/christophrumpel/missing-livewire-assertions/src', + ), 'Carbon\\Doctrine\\' => array ( 0 => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 2ca3dec2..d202223b 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -135,6 +135,74 @@ ], "install-path": "../carbonphp/carbon-doctrine-types" }, + { + "name": "christophrumpel/missing-livewire-assertions", + "version": "v2.8.0", + "version_normalized": "2.8.0.0", + "source": { + "type": "git", + "url": "https://github.com/christophrumpel/missing-livewire-assertions.git", + "reference": "3075093b0e5229bccfb768f32ce5f42736d1c1f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/christophrumpel/missing-livewire-assertions/zipball/3075093b0e5229bccfb768f32ce5f42736d1c1f5", + "reference": "3075093b0e5229bccfb768f32ce5f42736d1c1f5", + "shasum": "" + }, + "require": { + "illuminate/support": "^10.0|^9.0|^11.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.4.3" + }, + "require-dev": { + "brianium/paratest": "^6.2|^7.4", + "livewire/livewire": "^3.0", + "orchestra/testbench": "^8.0|^7.4|^9.0", + "pestphp/pest": "^2.34", + "phpunit/phpunit": "^9.3|^10.5", + "spatie/laravel-ray": "^1.9" + }, + "time": "2024-04-11T15:23:28+00:00", + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Christophrumpel\\MissingLivewireAssertions\\MissingLivewireAssertionsServiceProvider" + ] + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Christophrumpel\\MissingLivewireAssertions\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christoph Rumpel", + "email": "christoph@christoph-rumpel.com", + "role": "Developer" + } + ], + "description": "This package adds missing livewire test assertions.", + "homepage": "https://github.com/christophrumpel/missing-livewire-assertions", + "keywords": [ + "assertions", + "christophrumpel", + "laravel", + "livewire" + ], + "support": { + "issues": "https://github.com/christophrumpel/missing-livewire-assertions/issues", + "source": "https://github.com/christophrumpel/missing-livewire-assertions/tree/v2.8.0" + }, + "install-path": "../christophrumpel/missing-livewire-assertions" + }, { "name": "composer/semver", "version": "3.4.0", @@ -1289,17 +1357,17 @@ }, { "name": "laravel/framework", - "version": "v11.6.0", - "version_normalized": "11.6.0.0", + "version": "v11.7.0", + "version_normalized": "11.7.0.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e090ee638ebd4ce221d8bad43b49bbf59ea70ae5" + "reference": "e5ac72f513f635f208024aa76b8a04efc1b47f93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e090ee638ebd4ce221d8bad43b49bbf59ea70ae5", - "reference": "e090ee638ebd4ce221d8bad43b49bbf59ea70ae5", + "url": "https://api.github.com/repos/laravel/framework/zipball/e5ac72f513f635f208024aa76b8a04efc1b47f93", + "reference": "e5ac72f513f635f208024aa76b8a04efc1b47f93", "shasum": "" }, "require": { @@ -1448,7 +1516,7 @@ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).", "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)." }, - "time": "2024-04-30T13:30:08+00:00", + "time": "2024-05-07T13:41:51+00:00", "type": "library", "extra": { "branch-alias": { @@ -3051,17 +3119,17 @@ }, { "name": "orchestra/testbench-core", - "version": "v9.0.15", - "version_normalized": "9.0.15.0", + "version": "v9.0.16", + "version_normalized": "9.0.16.0", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "f3a8819310294646d628fc3c5b5958a0a651b066" + "reference": "dbd43bf3845f5d07fed375fff0cb4083924c5de2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/f3a8819310294646d628fc3c5b5958a0a651b066", - "reference": "f3a8819310294646d628fc3c5b5958a0a651b066", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/dbd43bf3845f5d07fed375fff0cb4083924c5de2", + "reference": "dbd43bf3845f5d07fed375fff0cb4083924c5de2", "shasum": "" }, "require": { @@ -3100,7 +3168,7 @@ "symfony/yaml": "Required for Testbench CLI (^7.0).", "vlucas/phpdotenv": "Required for Testbench CLI (^5.4.1)." }, - "time": "2024-04-24T12:11:58+00:00", + "time": "2024-05-09T06:53:54+00:00", "bin": [ "testbench" ], @@ -4186,24 +4254,24 @@ }, { "name": "psr/http-factory", - "version": "1.0.2", - "version_normalized": "1.0.2.0", + "version": "1.1.0", + "version_normalized": "1.1.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-factory.git", - "reference": "e616d01114759c4c489f93b099585439f795fe35" + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", - "reference": "e616d01114759c4c489f93b099585439f795fe35", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", "shasum": "" }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, - "time": "2023-04-10T20:10:41+00:00", + "time": "2024-04-15T12:06:14+00:00", "type": "library", "extra": { "branch-alias": { @@ -4226,7 +4294,7 @@ "homepage": "https://www.php-fig.org/" } ], - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "factory", "http", @@ -4238,7 +4306,7 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + "source": "https://github.com/php-fig/http-factory" }, "install-path": "../psr/http-factory" }, @@ -4723,17 +4791,17 @@ }, { "name": "rector/rector", - "version": "1.0.4", - "version_normalized": "1.0.4.0", + "version": "1.0.5", + "version_normalized": "1.0.5.0", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "6e04d0eb087aef707fa0c5686d33d6ff61f4a555" + "reference": "73eb63e4f9011dba6b7c66c3262543014e352f34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/6e04d0eb087aef707fa0c5686d33d6ff61f4a555", - "reference": "6e04d0eb087aef707fa0c5686d33d6ff61f4a555", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/73eb63e4f9011dba6b7c66c3262543014e352f34", + "reference": "73eb63e4f9011dba6b7c66c3262543014e352f34", "shasum": "" }, "require": { @@ -4749,7 +4817,7 @@ "suggest": { "ext-dom": "To manipulate phpunit.xml via the custom-rule command" }, - "time": "2024-04-05T09:01:07+00:00", + "time": "2024-05-10T05:31:15+00:00", "bin": [ "bin/rector" ], @@ -4773,7 +4841,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/1.0.4" + "source": "https://github.com/rectorphp/rector/tree/1.0.5" }, "funding": [ { @@ -5817,6 +5885,69 @@ ], "install-path": "../spatie/backtrace" }, + { + "name": "spatie/laravel-package-tools", + "version": "1.16.4", + "version_normalized": "1.16.4.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "reference": "ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0", + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^9.5.24", + "spatie/pest-plugin-test-time": "^1.1" + }, + "time": "2024-03-20T07:29:11+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.4" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "install-path": "../spatie/laravel-package-tools" + }, { "name": "spatie/laravel-ray", "version": "1.36.2", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 48dde089..c8653df2 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -5,7 +5,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => 'de5665ef90b3a4410109ead9743ff0c2d7f84cf0', + 'reference' => '98f48c5b387e00149babbe04f21306e27c7c01e3', 'name' => 'waziri123/waziri-livewire-toast', 'dev' => true, ), @@ -28,6 +28,15 @@ 'reference' => '18ba5ddfec8976260ead6e866180bd5d2f71aa1d', 'dev_requirement' => false, ), + 'christophrumpel/missing-livewire-assertions' => array( + 'pretty_version' => 'v2.8.0', + 'version' => '2.8.0.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../christophrumpel/missing-livewire-assertions', + 'aliases' => array(), + 'reference' => '3075093b0e5229bccfb768f32ce5f42736d1c1f5', + 'dev_requirement' => false, + ), 'composer/semver' => array( 'pretty_version' => '3.4.0', 'version' => '3.4.0.0', @@ -169,199 +178,199 @@ 'illuminate/auth' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/broadcasting' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/bus' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/cache' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/collections' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/conditionable' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/config' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/console' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/container' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/contracts' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/cookie' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/database' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/encryption' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/events' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/filesystem' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/hashing' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/http' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/log' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/macroable' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/mail' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/notifications' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/pagination' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/pipeline' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/process' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/queue' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/redis' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/routing' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/session' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/support' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/testing' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/translation' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/validation' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'illuminate/view' => array( 'dev_requirement' => false, 'replaced' => array( - 0 => 'v11.6.0', + 0 => 'v11.7.0', ), ), 'kodova/hamcrest-php' => array( @@ -371,12 +380,12 @@ ), ), 'laravel/framework' => array( - 'pretty_version' => 'v11.6.0', - 'version' => '11.6.0.0', + 'pretty_version' => 'v11.7.0', + 'version' => '11.7.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../laravel/framework', 'aliases' => array(), - 'reference' => 'e090ee638ebd4ce221d8bad43b49bbf59ea70ae5', + 'reference' => 'e5ac72f513f635f208024aa76b8a04efc1b47f93', 'dev_requirement' => false, ), 'laravel/prompts' => array( @@ -566,12 +575,12 @@ 'dev_requirement' => true, ), 'orchestra/testbench-core' => array( - 'pretty_version' => 'v9.0.15', - 'version' => '9.0.15.0', + 'pretty_version' => 'v9.0.16', + 'version' => '9.0.16.0', 'type' => 'library', 'install_path' => __DIR__ . '/../orchestra/testbench-core', 'aliases' => array(), - 'reference' => 'f3a8819310294646d628fc3c5b5958a0a651b066', + 'reference' => 'dbd43bf3845f5d07fed375fff0cb4083924c5de2', 'dev_requirement' => true, ), 'orchestra/workbench' => array( @@ -743,12 +752,12 @@ ), ), 'psr/http-factory' => array( - 'pretty_version' => '1.0.2', - 'version' => '1.0.2.0', + 'pretty_version' => '1.1.0', + 'version' => '1.1.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(), - 'reference' => 'e616d01114759c4c489f93b099585439f795fe35', + 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', 'dev_requirement' => false, ), 'psr/http-factory-implementation' => array( @@ -784,8 +793,8 @@ 'psr/log-implementation' => array( 'dev_requirement' => false, 'provided' => array( - 0 => '1.0|2.0|3.0', - 1 => '3.0.0', + 0 => '3.0.0', + 1 => '1.0|2.0|3.0', ), ), 'psr/simple-cache' => array( @@ -840,12 +849,12 @@ 'dev_requirement' => false, ), 'rector/rector' => array( - 'pretty_version' => '1.0.4', - 'version' => '1.0.4.0', + 'pretty_version' => '1.0.5', + 'version' => '1.0.5.0', 'type' => 'library', 'install_path' => __DIR__ . '/../rector/rector', 'aliases' => array(), - 'reference' => '6e04d0eb087aef707fa0c5686d33d6ff61f4a555', + 'reference' => '73eb63e4f9011dba6b7c66c3262543014e352f34', 'dev_requirement' => true, ), 'rhumsaa/uuid' => array( @@ -998,6 +1007,15 @@ 'reference' => '8373b9d51638292e3bfd736a9c19a654111b4a23', 'dev_requirement' => true, ), + 'spatie/laravel-package-tools' => array( + 'pretty_version' => '1.16.4', + 'version' => '1.16.4.0', + 'type' => 'library', + 'install_path' => __DIR__ . '/../spatie/laravel-package-tools', + 'aliases' => array(), + 'reference' => 'ddf678e78d7f8b17e5cdd99c0c3413a4a6592e53', + 'dev_requirement' => false, + ), 'spatie/laravel-ray' => array( 'pretty_version' => '1.36.2', 'version' => '1.36.2.0', @@ -1373,7 +1391,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => 'de5665ef90b3a4410109ead9743ff0c2d7f84cf0', + 'reference' => '98f48c5b387e00149babbe04f21306e27c7c01e3', 'dev_requirement' => false, ), 'webmozart/assert' => array( diff --git a/vendor/laravel/framework/CHANGELOG.md b/vendor/laravel/framework/CHANGELOG.md index e5e8e5e7..90b57fa4 100644 --- a/vendor/laravel/framework/CHANGELOG.md +++ b/vendor/laravel/framework/CHANGELOG.md @@ -1,6 +1,22 @@ # Release Notes for 11.x -## [Unreleased](https://github.com/laravel/framework/compare/v11.5.0...11.x) +## [Unreleased](https://github.com/laravel/framework/compare/v11.6.0...11.x) + +## [v11.6.0](https://github.com/laravel/framework/compare/v11.5.0...v11.6.0) - 2024-04-30 + +* [11.x] github: mariadb database healthcheck+naming by @grooverdan in https://github.com/laravel/framework/pull/51192 +* Add support for PHPUnit 11.1 by @crynobone in https://github.com/laravel/framework/pull/51197 +* Move whitespace in front of verbatim block in Blade templates by @Sjord in https://github.com/laravel/framework/pull/51195 +* [11.x] Trim trailing `?` from generated URL without query params by @onlime in https://github.com/laravel/framework/pull/51191 +* Add some tests on route:list sort command by @fgaroby in https://github.com/laravel/framework/pull/51202 +* [10.x] Improve releases flow by @driesvints in https://github.com/laravel/framework/pull/51213 +* Fix return types of `firstWhere` and `first` of `BelongsToMany` and `HasManyThrough` by @SanderMuller in https://github.com/laravel/framework/pull/51219 +* [10.x] Fix typo in signed URL tampering tests by @Krisell in https://github.com/laravel/framework/pull/51238 +* [10.x] Add "Server has gone away" to DetectsLostConnection by @Jubeki in https://github.com/laravel/framework/pull/51241 +* [11.x] Add some tests in `SupportStrTest` class by @saMahmoudzadeh in https://github.com/laravel/framework/pull/51235 +* [10.x] Fix support for the LARAVEL_STORAGE_PATH env var (#51238) by @dunglas in https://github.com/laravel/framework/pull/51243 +* [11.x] Add replaceable tags to translations by @LegendEffects in https://github.com/laravel/framework/pull/51190 +* [10.x] fix: Factory::createMany creating n^2 records by @calebdw in https://github.com/laravel/framework/pull/51225 ## [v11.5.0](https://github.com/laravel/framework/compare/v11.4.0...v11.5.0) - 2024-04-23 diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php index eb213c49..5f99fa3e 100644 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBroker.php @@ -3,9 +3,11 @@ namespace Illuminate\Auth\Passwords; use Closure; +use Illuminate\Auth\Events\PasswordResetLinkSent; use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; use Illuminate\Contracts\Auth\PasswordBroker as PasswordBrokerContract; use Illuminate\Contracts\Auth\UserProvider; +use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Support\Arr; use UnexpectedValueException; @@ -25,17 +27,26 @@ class PasswordBroker implements PasswordBrokerContract */ protected $users; + /** + * The event dispatcher instance. + * + * @var \Illuminate\Contracts\Events\Dispatcher + */ + protected $events; + /** * Create a new password broker instance. * * @param \Illuminate\Auth\Passwords\TokenRepositoryInterface $tokens * @param \Illuminate\Contracts\Auth\UserProvider $users + * @param \Illuminate\Contracts\Events\Dispatcher $users * @return void */ - public function __construct(TokenRepositoryInterface $tokens, UserProvider $users) + public function __construct(TokenRepositoryInterface $tokens, UserProvider $users, ?Dispatcher $dispatcher = null) { $this->users = $users; $this->tokens = $tokens; + $this->events = $dispatcher; } /** @@ -71,6 +82,10 @@ public function sendResetLink(array $credentials, ?Closure $callback = null) // the current URI having nothing set in the session to indicate errors. $user->sendPasswordResetNotification($token); + if ($this->events) { + $this->events->dispatch(new PasswordResetLinkSent($user)); + } + return static::RESET_LINK_SENT; } diff --git a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php index 5c80dcf3..e11e4449 100644 --- a/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php +++ b/vendor/laravel/framework/src/Illuminate/Auth/Passwords/PasswordBrokerManager.php @@ -69,7 +69,8 @@ protected function resolve($name) // aggregate service of sorts providing a convenient interface for resets. return new PasswordBroker( $this->createTokenRepository($config), - $this->app['auth']->createUserProvider($config['provider'] ?? null) + $this->app['auth']->createUserProvider($config['provider'] ?? null), + $this->app['events'] ?? null, ); } diff --git a/vendor/laravel/framework/src/Illuminate/Collections/Collection.php b/vendor/laravel/framework/src/Illuminate/Collections/Collection.php index 966caaa2..02dfa471 100644 --- a/vendor/laravel/framework/src/Illuminate/Collections/Collection.php +++ b/vendor/laravel/framework/src/Illuminate/Collections/Collection.php @@ -755,7 +755,7 @@ public function last(?callable $callback = null, $default = null) /** * Get the values of a given key. * - * @param string|int|array $value + * @param string|int|array|null $value * @param string|null $key * @return static */ diff --git a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php index f18b79c7..28a90cd0 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Collection.php @@ -631,7 +631,7 @@ public function pad($size, $value) /** * Get an array with the values of a given key. * - * @param string|array $value + * @param string|array|null $value * @param string|null $key * @return \Illuminate\Support\Collection */ diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php index 72fc88cc..25d43ccc 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php @@ -1921,6 +1921,65 @@ public function orWhereJsonDoesntContain($column, $value) return $this->whereJsonDoesntContain($column, $value, 'or'); } + /** + * Add a "where JSON overlaps" clause to the query. + * + * @param string $column + * @param mixed $value + * @param string $boolean + * @param bool $not + * @return $this + */ + public function whereJsonOverlaps($column, $value, $boolean = 'and', $not = false) + { + $type = 'JsonOverlaps'; + + $this->wheres[] = compact('type', 'column', 'value', 'boolean', 'not'); + + if (! $value instanceof ExpressionContract) { + $this->addBinding($this->grammar->prepareBindingForJsonContains($value)); + } + + return $this; + } + + /** + * Add an "or where JSON overlaps" clause to the query. + * + * @param string $column + * @param mixed $value + * @return $this + */ + public function orWhereJsonOverlaps($column, $value) + { + return $this->whereJsonOverlaps($column, $value, 'or'); + } + + /** + * Add a "where JSON not overlap" clause to the query. + * + * @param string $column + * @param mixed $value + * @param string $boolean + * @return $this + */ + public function whereJsonDoesntOverlap($column, $value, $boolean = 'and') + { + return $this->whereJsonOverlaps($column, $value, $boolean, true); + } + + /** + * Add an "or where JSON not overlap" clause to the query. + * + * @param string $column + * @param mixed $value + * @return $this + */ + public function orWhereJsonDoesntOverlap($column, $value) + { + return $this->whereJsonDoesntOverlap($column, $value, 'or'); + } + /** * Add a clause that determines if a JSON path exists to the query. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php index f2ce92c2..42c9102b 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/Grammar.php @@ -643,6 +643,37 @@ protected function compileJsonContains($column, $value) throw new RuntimeException('This database engine does not support JSON contains operations.'); } + /** + * Compile a "where JSON overlaps" clause. + * + * @param \Illuminate\Database\Query\Builder $query + * @param array $where + * @return string + */ + protected function whereJsonOverlaps(Builder $query, $where) + { + $not = $where['not'] ? 'not ' : ''; + + return $not.$this->compileJsonOverlaps( + $where['column'], + $this->parameter($where['value']) + ); + } + + /** + * Compile a "JSON overlaps" statement into SQL. + * + * @param string $column + * @param string $value + * @return string + * + * @throws \RuntimeException + */ + protected function compileJsonOverlaps($column, $value) + { + throw new RuntimeException('This database engine does not support JSON overlaps operations.'); + } + /** * Prepare the binding for a "JSON contains" statement. * diff --git a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php index 65ab6991..8c1521f6 100644 --- a/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php +++ b/vendor/laravel/framework/src/Illuminate/Database/Query/Grammars/MySqlGrammar.php @@ -210,6 +210,20 @@ protected function compileJsonContains($column, $value) return 'json_contains('.$field.', '.$value.$path.')'; } + /** + * Compile a "JSON overlaps" statement into SQL. + * + * @param string $column + * @param string $value + * @return string + */ + protected function compileJsonOverlaps($column, $value) + { + [$field, $path] = $this->wrapJsonFieldAndPath($column); + + return 'json_overlaps('.$field.', '.$value.$path.')'; + } + /** * Compile a "JSON contains key" statement into SQL. * diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php b/vendor/laravel/framework/src/Illuminate/Foundation/Application.php index b9ce4a95..857772f4 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Application.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Application.php @@ -45,7 +45,7 @@ class Application extends Container implements ApplicationContract, CachesConfig * * @var string */ - const VERSION = '11.6.0'; + const VERSION = '11.7.0'; /** * The base path for the Laravel installation. diff --git a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php index 72ba1cc1..ad881b37 100644 --- a/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php +++ b/vendor/laravel/framework/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php @@ -36,6 +36,13 @@ class RouteServiceProvider extends ServiceProvider */ protected static $alwaysLoadRoutesUsing; + /** + * The callback that should be used to load the application's cached routes. + * + * @var \Closure|null + */ + protected static $alwaysLoadCachedRoutesUsing; + /** * Register any application services. * @@ -93,6 +100,17 @@ public static function loadRoutesUsing(?Closure $routesCallback) self::$alwaysLoadRoutesUsing = $routesCallback; } + /** + * Register the callback that will be used to load the application's cached routes. + * + * @param \Closure|null $routesCallback + * @return void + */ + public static function loadCachedRoutesUsing(?Closure $routesCallback) + { + self::$alwaysLoadCachedRoutesUsing = $routesCallback; + } + /** * Set the root controller namespace for the application. * @@ -122,6 +140,12 @@ protected function routesAreCached() */ protected function loadCachedRoutes() { + if (! is_null(self::$alwaysLoadCachedRoutesUsing)) { + $this->app->call(self::$alwaysLoadCachedRoutesUsing); + + return; + } + $this->app->booted(function () { require $this->app->getCachedRoutesPath(); }); diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesV2Transport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesV2Transport.php index 85debd5b..b94973f8 100644 --- a/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesV2Transport.php +++ b/vendor/laravel/framework/src/Illuminate/Mail/Transport/SesV2Transport.php @@ -56,7 +56,7 @@ protected function doSend(SentMessage $message): void foreach ($message->getOriginalMessage()->getHeaders()->all() as $header) { if ($header instanceof MetadataHeader) { - $options['Tags'][] = ['Name' => $header->getKey(), 'Value' => $header->getValue()]; + $options['EmailTags'][] = ['Name' => $header->getKey(), 'Value' => $header->getValue()]; } } } diff --git a/vendor/laravel/framework/src/Illuminate/Process/FakeInvokedProcess.php b/vendor/laravel/framework/src/Illuminate/Process/FakeInvokedProcess.php index 7c445a73..c82f53c8 100644 --- a/vendor/laravel/framework/src/Illuminate/Process/FakeInvokedProcess.php +++ b/vendor/laravel/framework/src/Illuminate/Process/FakeInvokedProcess.php @@ -226,7 +226,7 @@ public function latestOutput() $this->nextOutputIndex = $i + 1; } - return isset($output) ? $output : ''; + return $output ?? ''; } /** @@ -249,7 +249,7 @@ public function latestErrorOutput() $this->nextErrorOutputIndex = $i + 1; } - return isset($output) ? $output : ''; + return $output ?? ''; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Queue/Queue.php b/vendor/laravel/framework/src/Illuminate/Queue/Queue.php index 8a69b683..df7b8ec2 100644 --- a/vendor/laravel/framework/src/Illuminate/Queue/Queue.php +++ b/vendor/laravel/framework/src/Illuminate/Queue/Queue.php @@ -360,11 +360,7 @@ protected function shouldDispatchAfterCommit($job) return $job->afterCommit; } - if (isset($this->dispatchAfterCommit)) { - return $this->dispatchAfterCommit; - } - - return false; + return $this->dispatchAfterCommit ?? false; } /** diff --git a/vendor/laravel/framework/src/Illuminate/Support/ValidatedInput.php b/vendor/laravel/framework/src/Illuminate/Support/ValidatedInput.php index 87e47b55..85c5108c 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/ValidatedInput.php +++ b/vendor/laravel/framework/src/Illuminate/Support/ValidatedInput.php @@ -4,7 +4,9 @@ use ArrayIterator; use Illuminate\Contracts\Support\ValidatedData; +use Illuminate\Support\Facades\Date; use stdClass; +use Symfony\Component\VarDumper\VarDumper; use Traversable; class ValidatedInput implements ValidatedData @@ -27,6 +29,17 @@ public function __construct(array $input) $this->input = $input; } + /** + * Determine if the validated input has one or more keys. + * + * @param string|array $key + * @return bool + */ + public function exists($key) + { + return $this->has($key); + } + /** * Determine if the validated input has one or more keys. * @@ -38,7 +51,81 @@ public function has($keys) $keys = is_array($keys) ? $keys : func_get_args(); foreach ($keys as $key) { - if (! Arr::has($this->input, $key)) { + if (! Arr::has($this->all(), $key)) { + return false; + } + } + + return true; + } + + /** + * Determine if the validated input contains any of the given keys. + * + * @param string|array $keys + * @return bool + */ + public function hasAny($keys) + { + $keys = is_array($keys) ? $keys : func_get_args(); + + $input = $this->all(); + + return Arr::hasAny($input, $keys); + } + + /** + * Apply the callback if the validated input contains the given input item key. + * + * @param string $key + * @param callable $callback + * @param callable|null $default + * @return $this|mixed + */ + public function whenHas($key, callable $callback, callable $default = null) + { + if ($this->has($key)) { + return $callback(data_get($this->all(), $key)) ?: $this; + } + + if ($default) { + return $default(); + } + + return $this; + } + + /** + * Determine if the validated input contains a non-empty value for an input item. + * + * @param string|array $key + * @return bool + */ + public function filled($key) + { + $keys = is_array($key) ? $key : func_get_args(); + + foreach ($keys as $value) { + if ($this->isEmptyString($value)) { + return false; + } + } + + return true; + } + + /** + * Determine if the validated input contains an empty value for an input item. + * + * @param string|array $key + * @return bool + */ + public function isNotFilled($key) + { + $keys = is_array($key) ? $key : func_get_args(); + + foreach ($keys as $value) { + if (! $this->isEmptyString($value)) { return false; } } @@ -46,6 +133,59 @@ public function has($keys) return true; } + /** + * Determine if the validated input contains a non-empty value for any of the given input items. + * + * @param string|array $keys + * @return bool + */ + public function anyFilled($keys) + { + $keys = is_array($keys) ? $keys : func_get_args(); + + foreach ($keys as $key) { + if ($this->filled($key)) { + return true; + } + } + + return false; + } + + /** + * Apply the callback if the validated input contains a non-empty value for the given input item key. + * + * @param string $key + * @param callable $callback + * @param callable|null $default + * @return $this|mixed + */ + public function whenFilled($key, callable $callback, callable $default = null) + { + if ($this->filled($key)) { + return $callback(data_get($this->all(), $key)) ?: $this; + } + + if ($default) { + return $default(); + } + + return $this; + } + + /** + * Determine if the given input item is an empty string. + * + * @param string $key + * @return bool + */ + protected function isEmptyString($key) + { + $value = $this->input($key); + + return ! is_bool($value) && ! is_array($value) && trim((string) $value) === ''; + } + /** * Determine if the validated input is missing one or more keys. * @@ -57,6 +197,156 @@ public function missing($keys) return ! $this->has($keys); } + /** + * Apply the callback if the validated input is missing the given input item key. + * + * @param string $key + * @param callable $callback + * @param callable|null $default + * @return $this|mixed + */ + public function whenMissing($key, callable $callback, callable $default = null) + { + if ($this->missing($key)) { + return $callback(data_get($this->all(), $key)) ?: $this; + } + + if ($default) { + return $default(); + } + + return $this; + } + + /** + * Get the keys for all of the input. + * + * @return array + */ + public function keys() + { + return array_keys($this->input()); + } + + /** + * Retrieve an input item from the validated input. + * + * @param string|null $key + * @param mixed $default + * @return mixed + */ + public function input($key = null, $default = null) + { + return data_get( + $this->all(), $key, $default + ); + } + + /** + * Retrieve input from the validated input as a Stringable instance. + * + * @param string $key + * @param mixed $default + * @return \Illuminate\Support\Stringable + */ + public function str($key, $default = null) + { + return $this->string($key, $default); + } + + /** + * Retrieve input from the validated input as a Stringable instance. + * + * @param string $key + * @param mixed $default + * @return \Illuminate\Support\Stringable + */ + public function string($key, $default = null) + { + return str($this->input($key, $default)); + } + + /** + * Retrieve input as a boolean value. + * + * Returns true when value is "1", "true", "on", and "yes". Otherwise, returns false. + * + * @param string|null $key + * @param bool $default + * @return bool + */ + public function boolean($key = null, $default = false) + { + return filter_var($this->input($key, $default), FILTER_VALIDATE_BOOLEAN); + } + + /** + * Retrieve input as an integer value. + * + * @param string $key + * @param int $default + * @return int + */ + public function integer($key, $default = 0) + { + return intval($this->input($key, $default)); + } + + /** + * Retrieve input as a float value. + * + * @param string $key + * @param float $default + * @return float + */ + public function float($key, $default = 0.0) + { + return floatval($this->input($key, $default)); + } + + /** + * Retrieve input from the validated input as a Carbon instance. + * + * @param string $key + * @param string|null $format + * @param string|null $tz + * @return \Illuminate\Support\Carbon|null + * + * @throws \Carbon\Exceptions\InvalidFormatException + */ + public function date($key, $format = null, $tz = null) + { + if ($this->isNotFilled($key)) { + return null; + } + + if (is_null($format)) { + return Date::parse($this->input($key), $tz); + } + + return Date::createFromFormat($format, $this->input($key), $tz); + } + + /** + * Retrieve input from the validated input as an enum. + * + * @template TEnum + * + * @param string $key + * @param class-string $enumClass + * @return TEnum|null + */ + public function enum($key, $enumClass) + { + if ($this->isNotFilled($key) || + ! enum_exists($enumClass) || + ! method_exists($enumClass, 'tryFrom')) { + return null; + } + + return $enumClass::tryFrom($this->input($key)); + } + /** * Get a subset containing the provided keys with values from the input data. * @@ -67,7 +357,7 @@ public function only($keys) { $results = []; - $input = $this->input; + $input = $this->all(); $placeholder = new stdClass; @@ -92,7 +382,7 @@ public function except($keys) { $keys = is_array($keys) ? $keys : func_get_args(); - $results = $this->input; + $results = $this->all(); Arr::forget($results, $keys); @@ -107,17 +397,18 @@ public function except($keys) */ public function merge(array $items) { - return new static(array_merge($this->input, $items)); + return new static(array_merge($this->all(), $items)); } /** * Get the input as a collection. * + * @param array|string|null $key * @return \Illuminate\Support\Collection */ - public function collect() + public function collect($key = null) { - return new Collection($this->input); + return collect(is_array($key) ? $this->only($key) : $this->input($key)); } /** @@ -130,6 +421,34 @@ public function all() return $this->input; } + /** + * Dump the validated input items and end the script. + * + * @param mixed ...$keys + * @return never + */ + public function dd(...$keys) + { + $this->dump(...$keys); + + exit(1); + } + + /** + * Dump the items. + * + * @param mixed $keys + * @return $this + */ + public function dump($keys = []) + { + $keys = is_array($keys) ? $keys : func_get_args(); + + VarDumper::dump(count($keys) > 0 ? $this->only($keys) : $this->all()); + + return $this; + } + /** * Get the instance as an array. * @@ -148,7 +467,7 @@ public function toArray() */ public function __get($name) { - return $this->input[$name]; + return $this->input($name); } /** @@ -164,17 +483,17 @@ public function __set($name, $value) } /** - * Determine if an input key is set. + * Determine if an input item is set. * * @return bool */ public function __isset($name) { - return isset($this->input[$name]); + return $this->exists($name); } /** - * Remove an input key. + * Remove an input item. * * @param string $name * @return void @@ -192,7 +511,7 @@ public function __unset($name) */ public function offsetExists($key): bool { - return isset($this->input[$key]); + return $this->exists($key); } /** @@ -203,7 +522,7 @@ public function offsetExists($key): bool */ public function offsetGet($key): mixed { - return $this->input[$key]; + return $this->input($key); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Support/helpers.php b/vendor/laravel/framework/src/Illuminate/Support/helpers.php index be59c1fe..deaa7945 100644 --- a/vendor/laravel/framework/src/Illuminate/Support/helpers.php +++ b/vendor/laravel/framework/src/Illuminate/Support/helpers.php @@ -60,6 +60,10 @@ function blank($value) return count($value) === 0; } + if ($value instanceof Stringable) { + return trim((string) $value) === ''; + } + return empty($value); } } @@ -106,7 +110,7 @@ function class_uses_recursive($class) /** * Encode HTML special characters in a string. * - * @param \Illuminate\Contracts\Support\DeferringDisplayableValue|\Illuminate\Contracts\Support\Htmlable|\BackedEnum|string|null $value + * @param \Illuminate\Contracts\Support\DeferringDisplayableValue|\Illuminate\Contracts\Support\Htmlable|\BackedEnum|string|int|float|null $value * @param bool $doubleEncode * @return string */ diff --git a/vendor/laravel/framework/src/Illuminate/Testing/Concerns/RunsInParallel.php b/vendor/laravel/framework/src/Illuminate/Testing/Concerns/RunsInParallel.php index 4a6c475a..66750434 100644 --- a/vendor/laravel/framework/src/Illuminate/Testing/Concerns/RunsInParallel.php +++ b/vendor/laravel/framework/src/Illuminate/Testing/Concerns/RunsInParallel.php @@ -121,9 +121,7 @@ public function execute(): int }); } - return $potentialExitCode === null - ? $this->getExitCode() - : $potentialExitCode; + return $potentialExitCode ?? $this->getExitCode(); } /** diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php index d0f5335e..20e76008 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php @@ -761,7 +761,7 @@ protected function failsRatioCheck($parameters, $width, $height) [1, 1], array_filter(sscanf($parameters['ratio'], '%f/%d')) ); - $precision = 1 / (max($width, $height) + 1); + $precision = 1 / (max(($width + $height) / 2, $height) + 1); return abs($numerator / $denominator - $width / $height) > $precision; } @@ -1460,7 +1460,7 @@ public function validateJson($attribute, $value) } /** - * Validate the size of an attribute is less than a maximum value. + * Validate the size of an attribute is less than or equal to a maximum value. * * @param string $attribute * @param mixed $value @@ -1566,7 +1566,7 @@ protected function shouldBlockPhpUpload($value, $parameters) } /** - * Validate the size of an attribute is greater than a minimum value. + * Validate the size of an attribute is greater than or equal to a minimum value. * * @param string $attribute * @param mixed $value diff --git a/vendor/laravel/framework/src/Illuminate/Validation/Rule.php b/vendor/laravel/framework/src/Illuminate/Validation/Rule.php index a2aa467e..35a38040 100644 --- a/vendor/laravel/framework/src/Illuminate/Validation/Rule.php +++ b/vendor/laravel/framework/src/Illuminate/Validation/Rule.php @@ -4,6 +4,7 @@ use Illuminate\Contracts\Support\Arrayable; use Illuminate\Support\Traits\Macroable; +use Illuminate\Validation\Rules\ArrayRule; use Illuminate\Validation\Rules\Can; use Illuminate\Validation\Rules\Dimensions; use Illuminate\Validation\Rules\Enum; @@ -59,6 +60,17 @@ public static function unless($condition, $rules, $defaultRules = []) return new ConditionalRules($condition, $defaultRules, $rules); } + /** + * Get an array rule builder instance. + * + * @param array|null $keys + * @return \Illuminate\Validation\ArrayRule + */ + public static function array($keys = null) + { + return new ArrayRule(...func_get_args()); + } + /** * Create a new nested rule set. * @@ -95,7 +107,7 @@ public static function exists($table, $column = 'NULL') } /** - * Get an in constraint builder instance. + * Get an in rule builder instance. * * @param \Illuminate\Contracts\Support\Arrayable|\BackedEnum|\UnitEnum|array|string $values * @return \Illuminate\Validation\Rules\In @@ -110,7 +122,7 @@ public static function in($values) } /** - * Get a not_in constraint builder instance. + * Get a not_in rule builder instance. * * @param \Illuminate\Contracts\Support\Arrayable|\BackedEnum|\UnitEnum|array|string $values * @return \Illuminate\Validation\Rules\NotIn @@ -125,7 +137,7 @@ public static function notIn($values) } /** - * Get a required_if constraint builder instance. + * Get a required_if rule builder instance. * * @param callable|bool $callback * @return \Illuminate\Validation\Rules\RequiredIf @@ -136,7 +148,7 @@ public static function requiredIf($callback) } /** - * Get a exclude_if constraint builder instance. + * Get a exclude_if rule builder instance. * * @param callable|bool $callback * @return \Illuminate\Validation\Rules\ExcludeIf @@ -147,7 +159,7 @@ public static function excludeIf($callback) } /** - * Get a prohibited_if constraint builder instance. + * Get a prohibited_if rule builder instance. * * @param callable|bool $callback * @return \Illuminate\Validation\Rules\ProhibitedIf @@ -158,7 +170,7 @@ public static function prohibitedIf($callback) } /** - * Get an enum constraint builder instance. + * Get an enum rule builder instance. * * @param class-string $type * @return \Illuminate\Validation\Rules\Enum @@ -169,7 +181,7 @@ public static function enum($type) } /** - * Get a file constraint builder instance. + * Get a file rule builder instance. * * @return \Illuminate\Validation\Rules\File */ @@ -179,7 +191,7 @@ public static function file() } /** - * Get an image file constraint builder instance. + * Get an image file rule builder instance. * * @return \Illuminate\Validation\Rules\ImageFile */ @@ -189,7 +201,7 @@ public static function imageFile() } /** - * Get a dimensions constraint builder instance. + * Get a dimensions rule builder instance. * * @param array $constraints * @return \Illuminate\Validation\Rules\Dimensions diff --git a/vendor/orchestra/testbench-core/laravel/config/mail.php b/vendor/orchestra/testbench-core/laravel/config/mail.php index a4b9780e..a3be42c1 100644 --- a/vendor/orchestra/testbench-core/laravel/config/mail.php +++ b/vendor/orchestra/testbench-core/laravel/config/mail.php @@ -30,7 +30,8 @@ | your mailers below. You may also add additional mailers if needed. | | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", - | "postmark", "log", "array", "failover", "roundrobin" + | "postmark", "resend", "log", "array", + | "failover", "roundrobin" | */ @@ -60,6 +61,10 @@ // ], ], + 'resend' => [ + 'transport' => 'resend', + ], + 'sendmail' => [ 'transport' => 'sendmail', 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), diff --git a/vendor/psr/http-factory/composer.json b/vendor/psr/http-factory/composer.json index d1bbddee..82a1d326 100644 --- a/vendor/psr/http-factory/composer.json +++ b/vendor/psr/http-factory/composer.json @@ -1,6 +1,6 @@ { "name": "psr/http-factory", - "description": "Common interfaces for PSR-7 HTTP message factories", + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", "keywords": [ "psr", "psr-7", @@ -18,8 +18,11 @@ "homepage": "https://www.php-fig.org/" } ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, "require": { - "php": ">=7.0.0", + "php": ">=7.1", "psr/http-message": "^1.0 || ^2.0" }, "autoload": { diff --git a/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php b/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php index 7db4e30a..d7adbf0e 100644 --- a/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php +++ b/vendor/psr/http-factory/src/UploadedFileFactoryInterface.php @@ -15,10 +15,10 @@ interface UploadedFileFactoryInterface * * @param StreamInterface $stream Underlying stream representing the * uploaded file content. - * @param int $size in bytes + * @param int|null $size in bytes * @param int $error PHP file upload error - * @param string $clientFilename Filename as provided by the client, if any. - * @param string $clientMediaType Media type as provided by the client, if any. + * @param string|null $clientFilename Filename as provided by the client, if any. + * @param string|null $clientMediaType Media type as provided by the client, if any. * * @return UploadedFileInterface * @@ -26,9 +26,9 @@ interface UploadedFileFactoryInterface */ public function createUploadedFile( StreamInterface $stream, - int $size = null, + ?int $size = null, int $error = \UPLOAD_ERR_OK, - string $clientFilename = null, - string $clientMediaType = null + ?string $clientFilename = null, + ?string $clientMediaType = null ): UploadedFileInterface; } diff --git a/workbench/app/Models/.gitkeep b/workbench/app/Models/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/workbench/app/Providers/WorkbenchServiceProvider.php b/workbench/app/Providers/WorkbenchServiceProvider.php new file mode 100644 index 00000000..e8cec9c2 --- /dev/null +++ b/workbench/app/Providers/WorkbenchServiceProvider.php @@ -0,0 +1,24 @@ +comment(Inspiring::quote()); +})->purpose('Display an inspiring quote')->hourly(); diff --git a/workbench/routes/web.php b/workbench/routes/web.php new file mode 100644 index 00000000..86a06c53 --- /dev/null +++ b/workbench/routes/web.php @@ -0,0 +1,7 @@ +