diff --git a/app/Http/CacheProfiles/SkipCacheWhenSessionHasFlash.php b/app/Http/CacheProfiles/SkipCacheWhenSessionHasFlash.php
new file mode 100644
index 0000000..4da52df
--- /dev/null
+++ b/app/Http/CacheProfiles/SkipCacheWhenSessionHasFlash.php
@@ -0,0 +1,50 @@
+.
+ */
+
+namespace App\Http\CacheProfiles;
+
+use Illuminate\Http\Request;
+use Spatie\ResponseCache\CacheProfiles\CacheAllSuccessfulGetRequests;
+
+/**
+ * Caches successful GET requests, except while the session carries flash data.
+ *
+ * Flash data (toast messages, validation errors, old input) is rendered into
+ * the page, so such a request must neither be served from the cache nor be
+ * stored in it.
+ */
+class SkipCacheWhenSessionHasFlash extends CacheAllSuccessfulGetRequests
+{
+ public function enabled(Request $request): bool
+ {
+ return parent::enabled($request) && ! $this->hasFlashData($request);
+ }
+
+ protected function hasFlashData(Request $request): bool
+ {
+ if (! $request->hasSession()) {
+ return false;
+ }
+
+ $session = $request->session();
+
+ return ! empty($session->get('_flash.old')) || ! empty($session->get('_flash.new'));
+ }
+}
diff --git a/bootstrap/app.php b/bootstrap/app.php
index 39ef885..aba7142 100644
--- a/bootstrap/app.php
+++ b/bootstrap/app.php
@@ -3,6 +3,9 @@
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
+use RealRashid\SweetAlert\Http\Middleware\ToSweetAlert;
+use Spatie\ResponseCache\Middlewares\CacheResponse;
+use Spatie\ResponseCache\Middlewares\DoNotCacheResponse;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
@@ -12,13 +15,13 @@
)
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
- \RealRashid\SweetAlert\ToSweetAlert::class,
- \Spatie\ResponseCache\Middlewares\CacheResponse::class,
+ ToSweetAlert::class,
+ CacheResponse::class,
]);
$middleware->alias([
- 'cacheResponse' => \Spatie\ResponseCache\Middlewares\CacheResponse::class,
- 'doNotCacheResponse' => \Spatie\ResponseCache\Middlewares\DoNotCacheResponse::class,
+ 'cacheResponse' => CacheResponse::class,
+ 'doNotCacheResponse' => DoNotCacheResponse::class,
]);
})
->withExceptions(function (Exceptions $exceptions) {
diff --git a/composer.json b/composer.json
index 9168b3e..f717897 100644
--- a/composer.json
+++ b/composer.json
@@ -20,20 +20,20 @@
"laravel/framework": "^12.0",
"laravel/horizon": "^5.48",
"laravel/sanctum": "^v4.0.0",
- "laravel/tinker": "^2.7",
- "realrashid/sweet-alert": "^v7.3.0",
+ "laravel/tinker": "^3.0",
+ "realrashid/sweet-alert": "^8.0",
"spatie/laravel-honeypot": "^4.6",
- "spatie/laravel-permission": "^6.0",
- "spatie/laravel-responsecache": "^7.7"
+ "spatie/laravel-permission": "^8.3",
+ "spatie/laravel-responsecache": "^8.6"
},
"require-dev": {
- "austinmastlab/deployer-recipes": "^1.0.1",
- "barryvdh/laravel-debugbar": "^3.5",
+ "austinmastlab/deployer-recipes": "^1.2.0-rc1",
+ "barryvdh/laravel-debugbar": "^4.4",
"barryvdh/laravel-ide-helper": "^v3.0.0",
"deployer/deployer": "^8.0",
"fakerphp/faker": "^1.23",
"kitloong/laravel-migrations-generator": "^v7.0.1",
- "laravel/boost": "^1.8",
+ "laravel/boost": "^2.10",
"laravel/pail": "^1.2.2",
"laravel/pint": "^1.24",
"mockery/mockery": "^1.6",
@@ -61,7 +61,7 @@
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover --ansi",
- "@php artisan sweetalert:publish --ansi"
+ "@php artisan alert:publish --assets --force --ansi"
],
"post-update-cmd": [
"@php artisan vendor:publish --tag=laravel-assets --ansi --force",
diff --git a/composer.lock b/composer.lock
index 08e7129..2ebbc81 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": "6f296384221ea47be2b4267fdb5edbac",
+ "content-hash": "4746205b64fc9957f3e6a110e6e5fedd",
"packages": [
{
"name": "anourvalar/eloquent-serialize",
@@ -1162,16 +1162,16 @@
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.6.0",
+ "version": "v3.6.1",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013"
+ "reference": "4189372ffeff09bf14f731f67a9de90c7b413ebe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013",
- "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/4189372ffeff09bf14f731f67a9de90c7b413ebe",
+ "reference": "4189372ffeff09bf14f731f67a9de90c7b413ebe",
"shasum": ""
},
"require": {
@@ -1182,8 +1182,8 @@
},
"require-dev": {
"phpstan/extension-installer": "^1.4.3",
- "phpstan/phpstan": "^1.12.32|^2.1.31",
- "phpunit/phpunit": "^8.5.48|^9.0"
+ "phpstan/phpstan": "^2.1.31",
+ "phpunit/phpunit": "^11.5.43 || ^12.4"
},
"type": "library",
"extra": {
@@ -1214,7 +1214,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.1"
},
"funding": [
{
@@ -1222,7 +1222,7 @@
"type": "github"
}
],
- "time": "2025-10-31T18:51:33+00:00"
+ "time": "2026-10-19T17:53:57+00:00"
},
{
"name": "egulias/email-validator",
@@ -1293,16 +1293,16 @@
},
{
"name": "filament/actions",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/actions.git",
- "reference": "8955db05154dde548e5d8ccaa0b0fdb5a3cedab5"
+ "reference": "35a082b09d60b0910c2f6b43032a42936ba10483"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/actions/zipball/8955db05154dde548e5d8ccaa0b0fdb5a3cedab5",
- "reference": "8955db05154dde548e5d8ccaa0b0fdb5a3cedab5",
+ "url": "https://api.github.com/repos/filamentphp/actions/zipball/35a082b09d60b0910c2f6b43032a42936ba10483",
+ "reference": "35a082b09d60b0910c2f6b43032a42936ba10483",
"shasum": ""
},
"require": {
@@ -1338,20 +1338,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-07T20:04:46+00:00"
+ "time": "2026-10-26T16:30:14+00:00"
},
{
"name": "filament/filament",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/panels.git",
- "reference": "15d2478ebb2eeb70bd321daa0e2a721754e67001"
+ "reference": "fa538cd75c888133e497541d74768aaf430f90be"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/panels/zipball/15d2478ebb2eeb70bd321daa0e2a721754e67001",
- "reference": "15d2478ebb2eeb70bd321daa0e2a721754e67001",
+ "url": "https://api.github.com/repos/filamentphp/panels/zipball/fa538cd75c888133e497541d74768aaf430f90be",
+ "reference": "fa538cd75c888133e497541d74768aaf430f90be",
"shasum": ""
},
"require": {
@@ -1396,20 +1396,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-07T19:53:58+00:00"
+ "time": "2026-10-26T16:29:24+00:00"
},
{
"name": "filament/forms",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/forms.git",
- "reference": "643d4f63dc7975832c07e3c12d206a7126375c47"
+ "reference": "9516ec5608e21e1136f17a25e535f30b94615ced"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/forms/zipball/643d4f63dc7975832c07e3c12d206a7126375c47",
- "reference": "643d4f63dc7975832c07e3c12d206a7126375c47",
+ "url": "https://api.github.com/repos/filamentphp/forms/zipball/9516ec5608e21e1136f17a25e535f30b94615ced",
+ "reference": "9516ec5608e21e1136f17a25e535f30b94615ced",
"shasum": ""
},
"require": {
@@ -1449,20 +1449,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-07T20:06:07+00:00"
+ "time": "2026-10-26T16:30:02+00:00"
},
{
"name": "filament/infolists",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/infolists.git",
- "reference": "fca1a820cbb600f0670911d0b1ceb0d0b4cc4918"
+ "reference": "3bcf42cf09d08ee2172d00bd3a2565cc4ae74ce2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/infolists/zipball/fca1a820cbb600f0670911d0b1ceb0d0b4cc4918",
- "reference": "fca1a820cbb600f0670911d0b1ceb0d0b4cc4918",
+ "url": "https://api.github.com/repos/filamentphp/infolists/zipball/3bcf42cf09d08ee2172d00bd3a2565cc4ae74ce2",
+ "reference": "3bcf42cf09d08ee2172d00bd3a2565cc4ae74ce2",
"shasum": ""
},
"require": {
@@ -1494,20 +1494,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-06T18:18:34+00:00"
+ "time": "2026-10-26T16:17:20+00:00"
},
{
"name": "filament/notifications",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/notifications.git",
- "reference": "dfeac53a9efe2148e7a2c64c1de25057e1f7ec08"
+ "reference": "4f0e598feb7dd2809b249f1a69c2fb15b5a11d28"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/notifications/zipball/dfeac53a9efe2148e7a2c64c1de25057e1f7ec08",
- "reference": "dfeac53a9efe2148e7a2c64c1de25057e1f7ec08",
+ "url": "https://api.github.com/repos/filamentphp/notifications/zipball/4f0e598feb7dd2809b249f1a69c2fb15b5a11d28",
+ "reference": "4f0e598feb7dd2809b249f1a69c2fb15b5a11d28",
"shasum": ""
},
"require": {
@@ -1541,20 +1541,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-06T18:17:21+00:00"
+ "time": "2026-10-26T16:22:53+00:00"
},
{
"name": "filament/query-builder",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/query-builder.git",
- "reference": "699dd609f7c2d286bdc956abffb33cba8f6538ef"
+ "reference": "f6b34ae663109a01198f316971ac20102b5762f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/699dd609f7c2d286bdc956abffb33cba8f6538ef",
- "reference": "699dd609f7c2d286bdc956abffb33cba8f6538ef",
+ "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/f6b34ae663109a01198f316971ac20102b5762f5",
+ "reference": "f6b34ae663109a01198f316971ac20102b5762f5",
"shasum": ""
},
"require": {
@@ -1587,20 +1587,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-06T18:17:16+00:00"
+ "time": "2026-10-20T18:27:08+00:00"
},
{
"name": "filament/schemas",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/schemas.git",
- "reference": "afd4b0d9be71dfbac83e100416f8704c8253a78b"
+ "reference": "d01d80aa2eb67508f31e33cfb4188e0257c24385"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/schemas/zipball/afd4b0d9be71dfbac83e100416f8704c8253a78b",
- "reference": "afd4b0d9be71dfbac83e100416f8704c8253a78b",
+ "url": "https://api.github.com/repos/filamentphp/schemas/zipball/d01d80aa2eb67508f31e33cfb4188e0257c24385",
+ "reference": "d01d80aa2eb67508f31e33cfb4188e0257c24385",
"shasum": ""
},
"require": {
@@ -1632,20 +1632,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-07T20:05:11+00:00"
+ "time": "2026-10-26T16:15:13+00:00"
},
{
"name": "filament/support",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/support.git",
- "reference": "586a70360bf4e20f2f5f31af42b4a62cb3697518"
+ "reference": "f4057deedf4d29e12bbccb1fff3146046497a5d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/support/zipball/586a70360bf4e20f2f5f31af42b4a62cb3697518",
- "reference": "586a70360bf4e20f2f5f31af42b4a62cb3697518",
+ "url": "https://api.github.com/repos/filamentphp/support/zipball/f4057deedf4d29e12bbccb1fff3146046497a5d8",
+ "reference": "f4057deedf4d29e12bbccb1fff3146046497a5d8",
"shasum": ""
},
"require": {
@@ -1657,7 +1657,7 @@
"illuminate/contracts": "^11.28|^12.0|^13.0",
"kirschbaum-development/eloquent-power-joins": "^4.0",
"league/uri-components": "^7.0",
- "livewire/livewire": "^4.4.7",
+ "livewire/livewire": "^4.4.8",
"nette/php-generator": "^4.0",
"php": "^8.2",
"ryangjchandler/blade-capture-directive": "^1.0",
@@ -1692,20 +1692,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-07T19:52:43+00:00"
+ "time": "2026-10-26T16:36:54+00:00"
},
{
"name": "filament/tables",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/tables.git",
- "reference": "97c8ce63e8eb1d226be68e9b22360d6c7f3f8db2"
+ "reference": "d196e432e173f0d0d8c737cb87a2995552124dfc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/tables/zipball/97c8ce63e8eb1d226be68e9b22360d6c7f3f8db2",
- "reference": "97c8ce63e8eb1d226be68e9b22360d6c7f3f8db2",
+ "url": "https://api.github.com/repos/filamentphp/tables/zipball/d196e432e173f0d0d8c737cb87a2995552124dfc",
+ "reference": "d196e432e173f0d0d8c737cb87a2995552124dfc",
"shasum": ""
},
"require": {
@@ -1738,20 +1738,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-07T20:05:38+00:00"
+ "time": "2026-10-26T16:30:37+00:00"
},
{
"name": "filament/widgets",
- "version": "v5.10.1",
+ "version": "v5.11.0",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/widgets.git",
- "reference": "8d81b9b61a5e9280b169bf0f3c526465e8e675bd"
+ "reference": "4cfc070e73a23b16e51a536b283f88a4cee009b9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/widgets/zipball/8d81b9b61a5e9280b169bf0f3c526465e8e675bd",
- "reference": "8d81b9b61a5e9280b169bf0f3c526465e8e675bd",
+ "url": "https://api.github.com/repos/filamentphp/widgets/zipball/4cfc070e73a23b16e51a536b283f88a4cee009b9",
+ "reference": "4cfc070e73a23b16e51a536b283f88a4cee009b9",
"shasum": ""
},
"require": {
@@ -1782,7 +1782,7 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-10-07T19:56:38+00:00"
+ "time": "2026-10-26T16:36:37+00:00"
},
{
"name": "firebase/php-jwt",
@@ -2179,22 +2179,22 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.15.5",
+ "version": "7.16.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a"
+ "reference": "81755d989b3007ca7f88a069857553cd08e7dc2e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a",
- "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/81755d989b3007ca7f88a069857553cd08e7dc2e",
+ "reference": "81755d989b3007ca7f88a069857553cd08e7dc2e",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^2.5.3",
- "guzzlehttp/psr7": "^2.13.1",
+ "guzzlehttp/promises": "^2.6",
+ "guzzlehttp/psr7": "^2.13.2",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.5 || ^3.0",
@@ -2287,7 +2287,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.15.5"
+ "source": "https://github.com/guzzle/guzzle/tree/7.16.1"
},
"funding": [
{
@@ -2303,20 +2303,20 @@
"type": "tidelift"
}
],
- "time": "2026-08-24T09:21:06+00:00"
+ "time": "2026-10-25T21:35:21+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "2.5.3",
+ "version": "2.6.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1"
+ "reference": "3d88c829bd5f13d13847b39067dbf09a60af2154"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/cde49999552d185d64715fe9c1f77a2aadd2f9f1",
- "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/3d88c829bd5f13d13847b39067dbf09a60af2154",
+ "reference": "3d88c829bd5f13d13847b39067dbf09a60af2154",
"shasum": ""
},
"require": {
@@ -2371,7 +2371,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.5.3"
+ "source": "https://github.com/guzzle/promises/tree/2.6.0"
},
"funding": [
{
@@ -2387,20 +2387,20 @@
"type": "tidelift"
}
],
- "time": "2026-08-24T09:11:28+00:00"
+ "time": "2026-10-18T12:46:59+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.13.1",
+ "version": "2.13.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "95e7828100de18b4e269fb1703be530082d5166d"
+ "reference": "adee536f95101929f262b8c59e8a61472f347d58"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/95e7828100de18b4e269fb1703be530082d5166d",
- "reference": "95e7828100de18b4e269fb1703be530082d5166d",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/adee536f95101929f262b8c59e8a61472f347d58",
+ "reference": "adee536f95101929f262b8c59e8a61472f347d58",
"shasum": ""
},
"require": {
@@ -2490,7 +2490,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.13.1"
+ "source": "https://github.com/guzzle/psr7/tree/2.13.2"
},
"funding": [
{
@@ -2506,7 +2506,7 @@
"type": "tidelift"
}
],
- "time": "2026-08-24T09:13:11+00:00"
+ "time": "2026-10-17T23:49:46+00:00"
},
{
"name": "guzzlehttp/uri-template",
@@ -2596,16 +2596,16 @@
},
{
"name": "kirschbaum-development/eloquent-power-joins",
- "version": "4.3.4",
+ "version": "4.3.6",
"source": {
"type": "git",
"url": "https://github.com/kirschbaum-development/eloquent-power-joins.git",
- "reference": "a0e6c0420c381861e1830693c4b74bdac7f7fb5f"
+ "reference": "549b642c027719b34787246f2c0121cff10adf42"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/a0e6c0420c381861e1830693c4b74bdac7f7fb5f",
- "reference": "a0e6c0420c381861e1830693c4b74bdac7f7fb5f",
+ "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/549b642c027719b34787246f2c0121cff10adf42",
+ "reference": "549b642c027719b34787246f2c0121cff10adf42",
"shasum": ""
},
"require": {
@@ -2653,9 +2653,9 @@
],
"support": {
"issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues",
- "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.4"
+ "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.6"
},
- "time": "2026-09-25T11:10:42+00:00"
+ "time": "2026-10-24T14:38:24+00:00"
},
{
"name": "laravel/fortify",
@@ -2724,16 +2724,16 @@
},
{
"name": "laravel/framework",
- "version": "v12.69.3",
+ "version": "v12.70.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717"
+ "reference": "e09fc54263d1a56cfe1709958fcbb22a4159b1e3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/58ea544a2a80dc03c168e13a5dc9a1d176a88717",
- "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/e09fc54263d1a56cfe1709958fcbb22a4159b1e3",
+ "reference": "e09fc54263d1a56cfe1709958fcbb22a4159b1e3",
"shasum": ""
},
"require": {
@@ -2846,10 +2846,10 @@
"league/flysystem-sftp-v3": "^3.25.1",
"mockery/mockery": "^1.6.10",
"opis/json-schema": "^2.4.1",
- "orchestra/testbench-core": "^10.9.0",
+ "orchestra/testbench-core": "^10.15.0",
"pda/pheanstalk": "^5.0.6|^7.0.0",
"php-http/discovery": "^1.15",
- "phpstan/phpstan": "^2.1.41",
+ "phpstan/phpstan": "2.2.13",
"phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1",
"predis/predis": "^2.3|^3.0",
"resend/resend-php": "^0.10.0|^1.0",
@@ -2942,20 +2942,20 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2026-09-29T12:53:25+00:00"
+ "time": "2026-10-21T12:55:36+00:00"
},
{
"name": "laravel/horizon",
- "version": "v5.50.0",
+ "version": "v5.50.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/horizon.git",
- "reference": "009177cc3d0829c839c8ab573dd17d158fc0b71e"
+ "reference": "9d65cae809688179ce2c4ace64eb75e886e245c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/horizon/zipball/009177cc3d0829c839c8ab573dd17d158fc0b71e",
- "reference": "009177cc3d0829c839c8ab573dd17d158fc0b71e",
+ "url": "https://api.github.com/repos/laravel/horizon/zipball/9d65cae809688179ce2c4ace64eb75e886e245c5",
+ "reference": "9d65cae809688179ce2c4ace64eb75e886e245c5",
"shasum": ""
},
"require": {
@@ -3020,9 +3020,9 @@
],
"support": {
"issues": "https://github.com/laravel/horizon/issues",
- "source": "https://github.com/laravel/horizon/tree/v5.50.0"
+ "source": "https://github.com/laravel/horizon/tree/v5.50.1"
},
- "time": "2026-09-15T13:59:54+00:00"
+ "time": "2026-10-13T06:25:19+00:00"
},
{
"name": "laravel/passkeys",
@@ -3094,16 +3094,16 @@
},
{
"name": "laravel/prompts",
- "version": "v0.3.25",
+ "version": "v0.3.26",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
- "reference": "21b7b49d60fcb700016dd27b582ae739c75de816"
+ "reference": "2d1e9bf6bab8d3f383c254db7f2b4ea8816d55e0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/prompts/zipball/21b7b49d60fcb700016dd27b582ae739c75de816",
- "reference": "21b7b49d60fcb700016dd27b582ae739c75de816",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/2d1e9bf6bab8d3f383c254db7f2b4ea8816d55e0",
+ "reference": "2d1e9bf6bab8d3f383c254db7f2b4ea8816d55e0",
"shasum": ""
},
"require": {
@@ -3146,9 +3146,9 @@
],
"description": "Add beautiful and user-friendly forms to your command-line applications.",
"support": {
- "source": "https://github.com/laravel/prompts/tree/v0.3.25"
+ "source": "https://github.com/laravel/prompts/tree/v0.3.26"
},
- "time": "2026-10-06T02:25:49+00:00"
+ "time": "2026-10-09T14:45:13+00:00"
},
{
"name": "laravel/sanctum",
@@ -3332,33 +3332,33 @@
},
{
"name": "laravel/tinker",
- "version": "v2.11.1",
+ "version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
- "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741"
+ "reference": "4faba77764bd33411735936acdf30446d058c78b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741",
- "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/4faba77764bd33411735936acdf30446d058c78b",
+ "reference": "4faba77764bd33411735936acdf30446d058c78b",
"shasum": ""
},
"require": {
- "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
- "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
- "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
- "php": "^7.2.5|^8.0",
- "psy/psysh": "^0.11.1|^0.12.0",
- "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0"
+ "illuminate/console": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
+ "php": "^8.1",
+ "psy/psysh": "^0.12.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0|^8.0"
},
"require-dev": {
"mockery/mockery": "~1.3.3|^1.4.2",
"phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0"
+ "phpunit/phpunit": "^10.5|^11.5"
},
"suggest": {
- "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)."
+ "illuminate/database": "The Illuminate Database package (^8.0|^9.0|^10.0|^11.0|^12.0|^13.0)."
},
"type": "library",
"extra": {
@@ -3366,6 +3366,9 @@
"providers": [
"Laravel\\Tinker\\TinkerServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -3392,22 +3395,22 @@
],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.11.1"
+ "source": "https://github.com/laravel/tinker/tree/v3.0.2"
},
- "time": "2026-02-06T14:12:35+00:00"
+ "time": "2026-03-17T14:54:13+00:00"
},
{
"name": "league/commonmark",
- "version": "2.10.3",
+ "version": "2.10.4",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "6efbd9c472b91db0a3350fcd601c8332c2382e1f"
+ "reference": "40821b7606d8d946bac57dbd2290076c722e3a65"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6efbd9c472b91db0a3350fcd601c8332c2382e1f",
- "reference": "6efbd9c472b91db0a3350fcd601c8332c2382e1f",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/40821b7606d8d946bac57dbd2290076c722e3a65",
+ "reference": "40821b7606d8d946bac57dbd2290076c722e3a65",
"shasum": ""
},
"require": {
@@ -3501,7 +3504,7 @@
"type": "tidelift"
}
],
- "time": "2026-09-21T13:07:34+00:00"
+ "time": "2026-10-17T19:59:50+00:00"
},
{
"name": "league/config",
@@ -3866,20 +3869,21 @@
},
{
"name": "league/uri",
- "version": "7.8.1",
+ "version": "7.9.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri.git",
- "reference": "08cf38e3924d4f56238125547b5720496fac8fd4"
+ "reference": "fcc872a3d872aa13f935e0cd1887b9abb06da07f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4",
- "reference": "08cf38e3924d4f56238125547b5720496fac8fd4",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/fcc872a3d872aa13f935e0cd1887b9abb06da07f",
+ "reference": "fcc872a3d872aa13f935e0cd1887b9abb06da07f",
"shasum": ""
},
"require": {
- "league/uri-interfaces": "^7.8.1",
+ "ext-mbstring": "*",
+ "league/uri-interfaces": "^7.9.0",
"php": "^8.1",
"psr/http-factory": "^1"
},
@@ -3952,7 +3956,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri/tree/7.8.1"
+ "source": "https://github.com/thephpleague/uri/tree/7.9.0"
},
"funding": [
{
@@ -3960,24 +3964,24 @@
"type": "github"
}
],
- "time": "2026-03-15T20:22:25+00:00"
+ "time": "2026-10-16T15:19:33+00:00"
},
{
"name": "league/uri-components",
- "version": "7.8.1",
+ "version": "7.9.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-components.git",
- "reference": "848ff9db2f0be06229d6034b7c2e33d41b4fd675"
+ "reference": "4e37c1663f7d0daebbab6b3d947631b0835b3943"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/848ff9db2f0be06229d6034b7c2e33d41b4fd675",
- "reference": "848ff9db2f0be06229d6034b7c2e33d41b4fd675",
+ "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/4e37c1663f7d0daebbab6b3d947631b0835b3943",
+ "reference": "4e37c1663f7d0daebbab6b3d947631b0835b3943",
"shasum": ""
},
"require": {
- "league/uri": "^7.8.1",
+ "league/uri": "^7.9.0",
"php": "^8.1"
},
"suggest": {
@@ -4036,7 +4040,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri-components/tree/7.8.1"
+ "source": "https://github.com/thephpleague/uri-components/tree/7.9.0"
},
"funding": [
{
@@ -4044,20 +4048,20 @@
"type": "github"
}
],
- "time": "2026-03-15T20:22:25+00:00"
+ "time": "2026-10-16T15:19:33+00:00"
},
{
"name": "league/uri-interfaces",
- "version": "7.8.1",
+ "version": "7.9.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-interfaces.git",
- "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928"
+ "reference": "eb5f6d24e6a4fe0a8e9c78ded4eb1dfff1404f58"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928",
- "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/eb5f6d24e6a4fe0a8e9c78ded4eb1dfff1404f58",
+ "reference": "eb5f6d24e6a4fe0a8e9c78ded4eb1dfff1404f58",
"shasum": ""
},
"require": {
@@ -4120,7 +4124,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1"
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.9.0"
},
"funding": [
{
@@ -4128,20 +4132,20 @@
"type": "github"
}
],
- "time": "2026-03-08T20:05:35+00:00"
+ "time": "2026-10-16T15:19:33+00:00"
},
{
"name": "livewire/livewire",
- "version": "v4.4.7",
+ "version": "v4.4.8",
"source": {
"type": "git",
"url": "https://github.com/livewire/livewire.git",
- "reference": "5976d18b1c808287017a17337d9e68dc1ca64ca2"
+ "reference": "8d7f8fc6138274a2f3384c9db354ca012215a259"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/livewire/livewire/zipball/5976d18b1c808287017a17337d9e68dc1ca64ca2",
- "reference": "5976d18b1c808287017a17337d9e68dc1ca64ca2",
+ "url": "https://api.github.com/repos/livewire/livewire/zipball/8d7f8fc6138274a2f3384c9db354ca012215a259",
+ "reference": "8d7f8fc6138274a2f3384c9db354ca012215a259",
"shasum": ""
},
"require": {
@@ -4196,7 +4200,7 @@
"description": "A front-end framework for Laravel.",
"support": {
"issues": "https://github.com/livewire/livewire/issues",
- "source": "https://github.com/livewire/livewire/tree/v4.4.7"
+ "source": "https://github.com/livewire/livewire/tree/v4.4.8"
},
"funding": [
{
@@ -4204,7 +4208,7 @@
"type": "github"
}
],
- "time": "2026-09-28T18:12:51+00:00"
+ "time": "2026-10-21T12:53:46+00:00"
},
{
"name": "monolog/monolog",
@@ -4313,16 +4317,16 @@
},
{
"name": "nesbot/carbon",
- "version": "3.14.2",
+ "version": "3.15.1",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon.git",
- "reference": "94cfc34887f07ab5c0efa07914c8f527544e3224"
+ "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/94cfc34887f07ab5c0efa07914c8f527544e3224",
- "reference": "94cfc34887f07ab5c0efa07914c8f527544e3224",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ce0e5636fae7d1e99856eb70cae4c719a284aa08",
+ "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08",
"shasum": ""
},
"require": {
@@ -4332,6 +4336,7 @@
"psr/clock": "^1.0",
"symfony/clock": "^6.3.12 || ^7.0 || ^8.0",
"symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-time": "^1.0",
"symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0 || ^8.0"
},
"provide": {
@@ -4414,25 +4419,25 @@
"type": "tidelift"
}
],
- "time": "2026-10-02T07:26:52+00:00"
+ "time": "2026-10-25T14:32:48+00:00"
},
{
"name": "nette/php-generator",
- "version": "v4.2.2",
+ "version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/nette/php-generator.git",
- "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5"
+ "reference": "abdfd4c22f9077af10daa7391d14e83fc36ba809"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/php-generator/zipball/0d7060926f5c3e8c488b9b9ced42d857f12a34b5",
- "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5",
+ "url": "https://api.github.com/repos/nette/php-generator/zipball/abdfd4c22f9077af10daa7391d14e83fc36ba809",
+ "reference": "abdfd4c22f9077af10daa7391d14e83fc36ba809",
"shasum": ""
},
"require": {
"nette/utils": "^4.0.6",
- "php": "8.1 - 8.5"
+ "php": "8.1 - 8.6"
},
"require-dev": {
"jetbrains/phpstorm-attributes": "^1.2",
@@ -4470,55 +4475,52 @@
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
}
],
- "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.5 features.",
- "homepage": "https://nette.org",
+ "description": "🐘 Nette PHP Generator: generates PHP code from objects. Classes, enums, functions and whole files, with namespaces resolved for you, and always up to date with the latest PHP.",
+ "homepage": "https://doc.nette.org/php-generator",
"keywords": [
- "code",
+ "code generation",
+ "code generator",
+ "codegen",
"nette",
- "php",
"scaffolding"
],
"support": {
"issues": "https://github.com/nette/php-generator/issues",
- "source": "https://github.com/nette/php-generator/tree/v4.2.2"
+ "source": "https://github.com/nette/php-generator/tree/v4.2.3"
},
- "time": "2026-02-26T00:58:33+00:00"
+ "time": "2026-10-22T01:12:52+00:00"
},
{
"name": "nette/schema",
- "version": "v1.3.6",
+ "version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "c54350438cd6914616f790a49cb424605f421562"
+ "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/c54350438cd6914616f790a49cb424605f421562",
- "reference": "c54350438cd6914616f790a49cb424605f421562",
+ "url": "https://api.github.com/repos/nette/schema/zipball/af9fa8a86bfca9b02b10346220db26e62ef942ec",
+ "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec",
"shasum": ""
},
"require": {
"nette/utils": "^4.0",
- "php": "8.1 - 8.5"
+ "php": "8.1 - 8.6"
},
"require-dev": {
- "nette/phpstan-rules": "^1.0",
+ "nette/phpstan-rules": "^1.0.7",
"nette/tester": "^2.6",
"phpstan/extension-installer": "^1.4@stable",
- "phpstan/phpstan": "^2.1.39@stable",
+ "phpstan/phpstan": "^2.3@stable",
"tracy/tracy": "^2.8"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "1.4-dev"
}
},
"autoload": {
@@ -4539,40 +4541,40 @@
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
}
],
- "description": "📐 Nette Schema: validating data structures against a given Schema.",
- "homepage": "https://nette.org",
+ "description": "📐 Nette Schema: validates and normalizes data such as configuration or API input against a schema described in a few readable lines of PHP, with precise error messages.",
+ "homepage": "https://doc.nette.org/schema",
"keywords": [
- "config",
- "nette"
+ "configuration",
+ "data validation",
+ "nette",
+ "normalization",
+ "schema",
+ "validation"
],
"support": {
"issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.3.6"
+ "source": "https://github.com/nette/schema/tree/v1.4.0"
},
- "time": "2026-08-16T21:58:41+00:00"
+ "time": "2026-10-22T02:12:50+00:00"
},
{
"name": "nette/utils",
- "version": "v4.1.5",
+ "version": "v4.1.6",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0"
+ "reference": "6bf24518accf32cf845bca305e0b92078700fd01"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0",
- "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0",
+ "url": "https://api.github.com/repos/nette/utils/zipball/6bf24518accf32cf845bca305e0b92078700fd01",
+ "reference": "6bf24518accf32cf845bca305e0b92078700fd01",
"shasum": ""
},
"require": {
- "php": "8.2 - 8.5"
+ "php": "8.2 - 8.6"
},
"conflict": {
"nette/finder": "<3",
@@ -4644,9 +4646,9 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.1.5"
+ "source": "https://github.com/nette/utils/tree/v4.1.6"
},
- "time": "2026-07-17T23:02:45+00:00"
+ "time": "2026-10-20T17:07:56+00:00"
},
{
"name": "nikic/php-parser",
@@ -5212,16 +5214,16 @@
},
{
"name": "phpstan/phpdoc-parser",
- "version": "2.3.6",
+ "version": "2.3.7",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "1427af4647235b4a73b13940b1f1258d3584f36e"
+ "reference": "3fcdcf021e840f1ec9383152e3603fc790c7c15b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1427af4647235b4a73b13940b1f1258d3584f36e",
- "reference": "1427af4647235b4a73b13940b1f1258d3584f36e",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/3fcdcf021e840f1ec9383152e3603fc790c7c15b",
+ "reference": "3fcdcf021e840f1ec9383152e3603fc790c7c15b",
"shasum": ""
},
"require": {
@@ -5253,9 +5255,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/2.3.6"
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.7"
},
- "time": "2026-09-27T20:07:45+00:00"
+ "time": "2026-10-26T17:24:37+00:00"
},
{
"name": "pragmarx/google2fa",
@@ -6129,25 +6131,32 @@
},
{
"name": "realrashid/sweet-alert",
- "version": "v7.3.2",
+ "version": "v8.0.0",
"source": {
"type": "git",
"url": "https://github.com/realrashid/sweet-alert.git",
- "reference": "72754d27de400e5b177c4e066aca8484b9f8bbbe"
+ "reference": "c89e51836d6295ee20ef260b0670bef3f012b3a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/realrashid/sweet-alert/zipball/72754d27de400e5b177c4e066aca8484b9f8bbbe",
- "reference": "72754d27de400e5b177c4e066aca8484b9f8bbbe",
+ "url": "https://api.github.com/repos/realrashid/sweet-alert/zipball/c89e51836d6295ee20ef260b0670bef3f012b3a5",
+ "reference": "c89e51836d6295ee20ef260b0670bef3f012b3a5",
"shasum": ""
},
"require": {
- "laravel/framework": "^5.6|^6.0|^7.0|^8.0|^9.0|^9.11|9.14.*|^10.0|^11.0|^12.0|^13.0",
- "php": "^7.2|^8.0|^8.1|^8.2|^8.3"
+ "laravel/framework": "^11.0|^12.0|^13.0",
+ "php": "^8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.5",
- "symfony/thanks": "^1.0"
+ "inertiajs/inertia-laravel": "^2.0",
+ "laravel/pint": "^1.18",
+ "mockery/mockery": "^1.6",
+ "nunomaduro/collision": "^8.5.0",
+ "orchestra/testbench": "^9.0.0||^10.0||^11.0",
+ "pestphp/pest": "^3.0|^4.0",
+ "pestphp/pest-plugin-arch": "^3.0|^4.0",
+ "pestphp/pest-plugin-laravel": "^3.0|^4.0",
+ "phpstan/phpstan": "^2.0"
},
"type": "library",
"extra": {
@@ -6176,18 +6185,18 @@
{
"name": "Rashid Ali",
"email": "realrashid05@gmail.com",
- "homepage": "https://realrashid.com",
"role": "Developer"
}
],
- "description": "Laravel Sweet Alert Is A Package For Laravel Provides An Easy Way To Display Alert Messages Using The SweetAlert2 Library.",
+ "description": "A beautiful, responsive, customizable, accessible (WAI-ARIA) replacement for JavaScript popup boxes for Laravel - rebuilt with a fluent, Laravel-native API.",
"homepage": "https://github.com/realrashid/sweet-alert",
"keywords": [
"alert",
+ "fluent",
"laravel",
"laravel-package",
"notifier",
- "noty",
+ "realrashid",
"sweet-alert",
"sweet-alert2",
"toast"
@@ -6200,23 +6209,31 @@
},
"funding": [
{
- "url": "https://ko-fi.com/realrashid",
+ "url": "https://www.buymeacoffee.com/realrashid",
"type": "custom"
},
{
- "url": "https://www.buymeacoffee.com/realrashid",
- "type": "custom"
+ "url": "https://github.com/realrashid",
+ "type": "github"
},
{
"url": "https://issuehunt.io/r/realrashid",
"type": "issuehunt"
},
+ {
+ "url": "https://ko-fi.com/realrashid",
+ "type": "ko_fi"
+ },
+ {
+ "url": "https://www.patreon.com/realrashid",
+ "type": "patreon"
+ },
{
"url": "https://tidelift.com/funding/github/packagist/realrashid/sweet-alert",
"type": "tidelift"
}
],
- "time": "2026-03-29T14:20:34+00:00"
+ "time": "2026-09-07T22:06:26+00:00"
},
{
"name": "ryangjchandler/blade-capture-directive",
@@ -6376,27 +6393,35 @@
},
{
"name": "spatie/invade",
- "version": "2.1.1",
+ "version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/invade.git",
- "reference": "f929c7b6e75fceeefa7b41a491e91274bafb17af"
+ "reference": "10eb682c480bc5f677a6f9f5c5a64da12590dd97"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/invade/zipball/f929c7b6e75fceeefa7b41a491e91274bafb17af",
- "reference": "f929c7b6e75fceeefa7b41a491e91274bafb17af",
+ "url": "https://api.github.com/repos/spatie/invade/zipball/10eb682c480bc5f677a6f9f5c5a64da12590dd97",
+ "reference": "10eb682c480bc5f677a6f9f5c5a64da12590dd97",
"shasum": ""
},
"require": {
- "php": "^8.0"
+ "php": "^8.2"
},
"require-dev": {
- "pestphp/pest": "^1.20",
- "phpstan/phpstan": "^1.4",
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "pestphp/pest": "^3.8 || ^4.0",
+ "phpstan/phpstan": "^1.12 || ^2.0",
"spatie/ray": "^1.28"
},
"type": "library",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "phpstan-extension.neon"
+ ]
+ }
+ },
"autoload": {
"files": [
"src/functions.php"
@@ -6423,7 +6448,7 @@
"spatie"
],
"support": {
- "source": "https://github.com/spatie/invade/tree/2.1.1"
+ "source": "https://github.com/spatie/invade/tree/2.2.0"
},
"funding": [
{
@@ -6431,7 +6456,7 @@
"type": "github"
}
],
- "time": "2026-08-24T12:39:05+00:00"
+ "time": "2026-10-19T16:16:47+00:00"
},
{
"name": "spatie/laravel-honeypot",
@@ -6572,31 +6597,35 @@
},
{
"name": "spatie/laravel-permission",
- "version": "6.25.0",
+ "version": "8.3.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-permission.git",
- "reference": "d7d4cb0d58616722f1afc90e0484e4825155b9b3"
+ "reference": "e4e906f8ca5fe10fbe4b6a81f6c4e544a01d8053"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/d7d4cb0d58616722f1afc90e0484e4825155b9b3",
- "reference": "d7d4cb0d58616722f1afc90e0484e4825155b9b3",
+ "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/e4e906f8ca5fe10fbe4b6a81f6c4e544a01d8053",
+ "reference": "e4e906f8ca5fe10fbe4b6a81f6c4e544a01d8053",
"shasum": ""
},
"require": {
- "illuminate/auth": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0",
- "illuminate/container": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0",
- "illuminate/contracts": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0",
- "illuminate/database": "^8.12|^9.0|^10.0|^11.0|^12.0|^13.0",
- "php": "^8.0"
+ "illuminate/auth": "^12.0|^13.0",
+ "illuminate/container": "^12.0|^13.0",
+ "illuminate/contracts": "^12.0|^13.0",
+ "illuminate/database": "^12.0|^13.0",
+ "php": "^8.3",
+ "spatie/laravel-package-tools": "^1.0"
},
"require-dev": {
- "laravel/passport": "^11.0|^12.0|^13.0",
+ "larastan/larastan": "^3.9",
+ "laravel/octane": "^2.0",
+ "laravel/passport": "^13.0",
"laravel/pint": "^1.0",
- "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0|^11.0",
- "pestphp/pest": "^2.0|^3.0|^4.0",
- "pestphp/pest-plugin-laravel": "^2.0|^3.0|^4.0"
+ "orchestra/testbench": "^10.0|^11.0",
+ "pestphp/pest": "^4.7.8|^5.3.3",
+ "pestphp/pest-plugin-laravel": "^4.1|^5.0.1",
+ "phpstan/phpstan": "^2.1"
},
"type": "library",
"extra": {
@@ -6606,8 +6635,8 @@
]
},
"branch-alias": {
- "dev-main": "6.x-dev",
- "dev-master": "6.x-dev"
+ "dev-main": "8.x-dev",
+ "dev-master": "8.x-dev"
}
},
"autoload": {
@@ -6630,7 +6659,7 @@
"role": "Developer"
}
],
- "description": "Permission handling for Laravel 8.0 and up",
+ "description": "Permission handling for Laravel 12 and up",
"homepage": "https://github.com/spatie/laravel-permission",
"keywords": [
"acl",
@@ -6644,7 +6673,7 @@
],
"support": {
"issues": "https://github.com/spatie/laravel-permission/issues",
- "source": "https://github.com/spatie/laravel-permission/tree/6.25.0"
+ "source": "https://github.com/spatie/laravel-permission/tree/8.3.2"
},
"funding": [
{
@@ -6652,37 +6681,41 @@
"type": "github"
}
],
- "time": "2026-03-17T22:46:46+00:00"
+ "time": "2026-10-19T16:31:21+00:00"
},
{
"name": "spatie/laravel-responsecache",
- "version": "7.7.2",
+ "version": "8.6.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-responsecache.git",
- "reference": "039f8b9c2e2b2d838d0bfce32cfe52cf5d1cb8fc"
+ "reference": "b8861711a69f0c697898c8649d4d0def38760567"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-responsecache/zipball/039f8b9c2e2b2d838d0bfce32cfe52cf5d1cb8fc",
- "reference": "039f8b9c2e2b2d838d0bfce32cfe52cf5d1cb8fc",
+ "url": "https://api.github.com/repos/spatie/laravel-responsecache/zipball/b8861711a69f0c697898c8649d4d0def38760567",
+ "reference": "b8861711a69f0c697898c8649d4d0def38760567",
"shasum": ""
},
"require": {
- "illuminate/cache": "^10.0|^11.0|^12.0",
- "illuminate/console": "^10.0|^11.0|^12.0",
- "illuminate/container": "^10.0|^11.0|^12.0",
- "illuminate/http": "^10.0|^11.0|^12.0",
- "illuminate/support": "^10.0|^11.0|^12.0",
- "nesbot/carbon": "^2.63|^3.0",
- "php": "^8.2",
- "spatie/laravel-package-tools": "^1.9"
+ "illuminate/cache": "^12.0|^13.0",
+ "illuminate/console": "^12.0|^13.0",
+ "illuminate/container": "^12.0|^13.0",
+ "illuminate/http": "^12.0|^13.0",
+ "illuminate/support": "^12.0|^13.0",
+ "nesbot/carbon": "^3.0",
+ "php": "^8.4",
+ "spatie/laravel-package-tools": "^1.9",
+ "spatie/php-attribute-reader": "^1.0"
},
"require-dev": {
- "laravel/framework": "^10.0|^11.0|^12.0",
- "mockery/mockery": "^1.4",
- "orchestra/testbench": "^8.0|^9.0|^10.0",
- "pestphp/pest": "^2.22|^3.0"
+ "jasonmccreary/double": "^1.0",
+ "larastan/larastan": "^3.9",
+ "laravel/framework": "^12.0|^13.0",
+ "laravel/pint": "^1.13.7",
+ "mockery/mockery": "^1.6",
+ "orchestra/testbench": "^10.0|^11.0",
+ "pestphp/pest": "^4.7.8|^5.3.3"
},
"type": "library",
"extra": {
@@ -6723,7 +6756,8 @@
"spatie"
],
"support": {
- "source": "https://github.com/spatie/laravel-responsecache/tree/7.7.2"
+ "issues": "https://github.com/spatie/laravel-responsecache/issues",
+ "source": "https://github.com/spatie/laravel-responsecache/tree/8.6.0"
},
"funding": [
{
@@ -6735,7 +6769,65 @@
"type": "github"
}
],
- "time": "2025-08-28T20:22:23+00:00"
+ "time": "2026-10-19T13:47:53+00:00"
+ },
+ {
+ "name": "spatie/php-attribute-reader",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/php-attribute-reader.git",
+ "reference": "46e7484d7b51f5b22d672745c541e48c5a385404"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/php-attribute-reader/zipball/46e7484d7b51f5b22d672745c541e48c5a385404",
+ "reference": "46e7484d7b51f5b22d672745c541e48c5a385404",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "pestphp/pest": "^1.0|^2.0|^3.0|^4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Attributes\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A clean API for working with PHP attributes",
+ "homepage": "https://github.com/spatie/php-attribute-reader",
+ "keywords": [
+ "attributes",
+ "php-attribute-reader",
+ "reflection",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/php-attribute-reader/issues",
+ "source": "https://github.com/spatie/php-attribute-reader/tree/1.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2026-02-23T09:01:55+00:00"
},
{
"name": "spatie/shiki-php",
@@ -6986,16 +7078,16 @@
},
{
"name": "symfony/clock",
- "version": "v8.1.0",
+ "version": "v8.1.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "701ef4de9705d6c32292ebee5e8044094a09fbf6"
+ "reference": "945ea3b64d6da9c1c2c354fe5c07b27455df6442"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/701ef4de9705d6c32292ebee5e8044094a09fbf6",
- "reference": "701ef4de9705d6c32292ebee5e8044094a09fbf6",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/945ea3b64d6da9c1c2c354fe5c07b27455df6442",
+ "reference": "945ea3b64d6da9c1c2c354fe5c07b27455df6442",
"shasum": ""
},
"require": {
@@ -7039,7 +7131,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v8.1.0"
+ "source": "https://github.com/symfony/clock/tree/v8.1.9"
},
"funding": [
{
@@ -7059,20 +7151,20 @@
"type": "tidelift"
}
],
- "time": "2026-05-29T05:06:50+00:00"
+ "time": "2026-10-12T14:32:04+00:00"
},
{
"name": "symfony/console",
- "version": "v7.4.20",
+ "version": "v7.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "d7bca2fe05241dc7732d0c8b6d551b879f5d0a7d"
+ "reference": "21f1bc2296f7ff6043241a8dcbc09559b3732820"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/d7bca2fe05241dc7732d0c8b6d551b879f5d0a7d",
- "reference": "d7bca2fe05241dc7732d0c8b6d551b879f5d0a7d",
+ "url": "https://api.github.com/repos/symfony/console/zipball/21f1bc2296f7ff6043241a8dcbc09559b3732820",
+ "reference": "21f1bc2296f7ff6043241a8dcbc09559b3732820",
"shasum": ""
},
"require": {
@@ -7137,7 +7229,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v7.4.20"
+ "source": "https://github.com/symfony/console/tree/v7.4.21"
},
"funding": [
{
@@ -7157,7 +7249,7 @@
"type": "tidelift"
}
],
- "time": "2026-09-18T15:55:00+00:00"
+ "time": "2026-10-12T18:45:38+00:00"
},
{
"name": "symfony/css-selector",
@@ -7689,16 +7781,16 @@
},
{
"name": "symfony/http-foundation",
- "version": "v7.4.20",
+ "version": "v7.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "9d0761c0da6bd5b801b401666834901a9a1ffc33"
+ "reference": "58c89144c7a36dd89c3d01917e9fa3a72d8aaf31"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9d0761c0da6bd5b801b401666834901a9a1ffc33",
- "reference": "9d0761c0da6bd5b801b401666834901a9a1ffc33",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/58c89144c7a36dd89c3d01917e9fa3a72d8aaf31",
+ "reference": "58c89144c7a36dd89c3d01917e9fa3a72d8aaf31",
"shasum": ""
},
"require": {
@@ -7747,7 +7839,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v7.4.20"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.4.21"
},
"funding": [
{
@@ -7767,20 +7859,20 @@
"type": "tidelift"
}
],
- "time": "2026-09-24T07:12:44+00:00"
+ "time": "2026-10-08T16:56:12+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v7.4.20",
+ "version": "v7.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "392784b5d7b959b8d872542a2530c50c540a788f"
+ "reference": "4779fce7dedacb8801b2b61c703ef99159502331"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/392784b5d7b959b8d872542a2530c50c540a788f",
- "reference": "392784b5d7b959b8d872542a2530c50c540a788f",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4779fce7dedacb8801b2b61c703ef99159502331",
+ "reference": "4779fce7dedacb8801b2b61c703ef99159502331",
"shasum": ""
},
"require": {
@@ -7866,7 +7958,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/v7.4.20"
+ "source": "https://github.com/symfony/http-kernel/tree/v7.4.21"
},
"funding": [
{
@@ -7886,7 +7978,7 @@
"type": "tidelift"
}
],
- "time": "2026-09-29T14:05:16+00:00"
+ "time": "2026-10-14T06:44:08+00:00"
},
{
"name": "symfony/mailer",
@@ -7974,16 +8066,16 @@
},
{
"name": "symfony/mime",
- "version": "v7.4.19",
+ "version": "v7.4.22",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693"
+ "reference": "94a4c017435bc515f5ac80421a2c555fb9ca3676"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693",
- "reference": "f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/94a4c017435bc515f5ac80421a2c555fb9ca3676",
+ "reference": "94a4c017435bc515f5ac80421a2c555fb9ca3676",
"shasum": ""
},
"require": {
@@ -8039,7 +8131,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v7.4.19"
+ "source": "https://github.com/symfony/mime/tree/v7.4.22"
},
"funding": [
{
@@ -8059,7 +8151,7 @@
"type": "tidelift"
}
],
- "time": "2026-09-04T10:45:44+00:00"
+ "time": "2026-10-28T17:57:58+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -8887,6 +8979,89 @@
],
"time": "2026-09-25T15:46:47+00:00"
},
+ {
+ "name": "symfony/polyfill-time",
+ "version": "v1.42.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-time.git",
+ "reference": "ac9f1ed802dd58f37e720388130c088434aa09fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-time/zipball/ac9f1ed802dd58f37e720388130c088434aa09fc",
+ "reference": "ac9f1ed802dd58f37e720388130c088434aa09fc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Time\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ignace Philippe Nyamagana Butera",
+ "email": "nyamsprod@gmail.com"
+ },
+ {
+ "name": "Tim Düsterhus",
+ "email": "tim@tideways-gmbh.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Time API added to PHP 8.6",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "duration",
+ "polyfill",
+ "portable",
+ "shim",
+ "time"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-time/tree/v1.42.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-08-07T13:08:13+00:00"
+ },
{
"name": "symfony/polyfill-uuid",
"version": "v1.43.0",
@@ -8972,16 +9147,16 @@
},
{
"name": "symfony/process",
- "version": "v7.4.19",
+ "version": "v7.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "ed0ae095b86994d370d5791612e55984f15aa30e"
+ "reference": "e5247f4a5e0797d232ad8e8e6803aeb341843c83"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/ed0ae095b86994d370d5791612e55984f15aa30e",
- "reference": "ed0ae095b86994d370d5791612e55984f15aa30e",
+ "url": "https://api.github.com/repos/symfony/process/zipball/e5247f4a5e0797d232ad8e8e6803aeb341843c83",
+ "reference": "e5247f4a5e0797d232ad8e8e6803aeb341843c83",
"shasum": ""
},
"require": {
@@ -9013,7 +9188,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v7.4.19"
+ "source": "https://github.com/symfony/process/tree/v7.4.21"
},
"funding": [
{
@@ -9033,7 +9208,7 @@
"type": "tidelift"
}
],
- "time": "2026-09-02T12:38:34+00:00"
+ "time": "2026-10-08T16:56:12+00:00"
},
{
"name": "symfony/property-access",
@@ -9204,16 +9379,16 @@
},
{
"name": "symfony/routing",
- "version": "v7.4.20",
+ "version": "v7.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "2bacb72be5eadeaf9874d5accb75bfb33d21c74b"
+ "reference": "7a344cf871532d081875bfdd18f3dff8dca36c5b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/2bacb72be5eadeaf9874d5accb75bfb33d21c74b",
- "reference": "2bacb72be5eadeaf9874d5accb75bfb33d21c74b",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/7a344cf871532d081875bfdd18f3dff8dca36c5b",
+ "reference": "7a344cf871532d081875bfdd18f3dff8dca36c5b",
"shasum": ""
},
"require": {
@@ -9265,7 +9440,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v7.4.20"
+ "source": "https://github.com/symfony/routing/tree/v7.4.21"
},
"funding": [
{
@@ -9285,20 +9460,20 @@
"type": "tidelift"
}
],
- "time": "2026-09-28T19:09:50+00:00"
+ "time": "2026-10-11T18:40:59+00:00"
},
{
"name": "symfony/serializer",
- "version": "v8.1.8",
+ "version": "v8.1.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "df54c4fe859d945eb633d2c5e6a410ce535f21e4"
+ "reference": "bc6f84d67225d7a25d56af6d4bd52e9e34997a96"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/df54c4fe859d945eb633d2c5e6a410ce535f21e4",
- "reference": "df54c4fe859d945eb633d2c5e6a410ce535f21e4",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/bc6f84d67225d7a25d56af6d4bd52e9e34997a96",
+ "reference": "bc6f84d67225d7a25d56af6d4bd52e9e34997a96",
"shasum": ""
},
"require": {
@@ -9364,7 +9539,7 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/serializer/tree/v8.1.8"
+ "source": "https://github.com/symfony/serializer/tree/v8.1.9"
},
"funding": [
{
@@ -9384,7 +9559,7 @@
"type": "tidelift"
}
],
- "time": "2026-09-28T09:40:25+00:00"
+ "time": "2026-10-12T19:11:16+00:00"
},
{
"name": "symfony/service-contracts",
@@ -9475,16 +9650,16 @@
},
{
"name": "symfony/string",
- "version": "v8.1.7",
+ "version": "v8.1.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "d950140b5f56f31901e5b7a0c04ffc3a3deb943c"
+ "reference": "07fb208558f941eab50ec49c89c2a6a93fb11f01"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/d950140b5f56f31901e5b7a0c04ffc3a3deb943c",
- "reference": "d950140b5f56f31901e5b7a0c04ffc3a3deb943c",
+ "url": "https://api.github.com/repos/symfony/string/zipball/07fb208558f941eab50ec49c89c2a6a93fb11f01",
+ "reference": "07fb208558f941eab50ec49c89c2a6a93fb11f01",
"shasum": ""
},
"require": {
@@ -9541,7 +9716,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v8.1.7"
+ "source": "https://github.com/symfony/string/tree/v8.1.9"
},
"funding": [
{
@@ -9561,7 +9736,7 @@
"type": "tidelift"
}
],
- "time": "2026-09-11T14:51:16+00:00"
+ "time": "2026-10-03T15:16:03+00:00"
},
{
"name": "symfony/translation",
@@ -9822,16 +9997,16 @@
},
{
"name": "symfony/uid",
- "version": "v7.4.20",
+ "version": "v7.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "a96bbdb02a04ff3b5592cee6741b03edc78b56aa"
+ "reference": "3e706a245b5343ea93be9cafe84525bfb54e60fc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/a96bbdb02a04ff3b5592cee6741b03edc78b56aa",
- "reference": "a96bbdb02a04ff3b5592cee6741b03edc78b56aa",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/3e706a245b5343ea93be9cafe84525bfb54e60fc",
+ "reference": "3e706a245b5343ea93be9cafe84525bfb54e60fc",
"shasum": ""
},
"require": {
@@ -9876,7 +10051,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v7.4.20"
+ "source": "https://github.com/symfony/uid/tree/v7.4.21"
},
"funding": [
{
@@ -9896,20 +10071,20 @@
"type": "tidelift"
}
],
- "time": "2026-09-23T16:18:28+00:00"
+ "time": "2026-10-12T14:31:36+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v7.4.18",
+ "version": "v7.4.21",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "e088da50b813f32473a76871616cbb8fa54653a8"
+ "reference": "55d06b02f49eca9bff61828548988e6f8763e8a6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e088da50b813f32473a76871616cbb8fa54653a8",
- "reference": "e088da50b813f32473a76871616cbb8fa54653a8",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/55d06b02f49eca9bff61828548988e6f8763e8a6",
+ "reference": "55d06b02f49eca9bff61828548988e6f8763e8a6",
"shasum": ""
},
"require": {
@@ -9963,7 +10138,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v7.4.18"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.4.21"
},
"funding": [
{
@@ -9983,7 +10158,7 @@
"type": "tidelift"
}
],
- "time": "2026-08-30T20:10:52+00:00"
+ "time": "2026-10-13T05:48:33+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -10042,16 +10217,16 @@
},
{
"name": "ueberdosis/tiptap-php",
- "version": "2.2.0",
+ "version": "2.2.1",
"source": {
"type": "git",
"url": "https://github.com/ueberdosis/tiptap-php.git",
- "reference": "5a2e8155c5b09c9ad4efd480550270a6924865b9"
+ "reference": "242a7a150c1233a01622e050152699382fb20bea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ueberdosis/tiptap-php/zipball/5a2e8155c5b09c9ad4efd480550270a6924865b9",
- "reference": "5a2e8155c5b09c9ad4efd480550270a6924865b9",
+ "url": "https://api.github.com/repos/ueberdosis/tiptap-php/zipball/242a7a150c1233a01622e050152699382fb20bea",
+ "reference": "242a7a150c1233a01622e050152699382fb20bea",
"shasum": ""
},
"require": {
@@ -10091,7 +10266,7 @@
],
"support": {
"issues": "https://github.com/ueberdosis/tiptap-php/issues",
- "source": "https://github.com/ueberdosis/tiptap-php/tree/2.2.0"
+ "source": "https://github.com/ueberdosis/tiptap-php/tree/2.2.1"
},
"funding": [
{
@@ -10107,20 +10282,20 @@
"type": "open_collective"
}
],
- "time": "2026-08-31T07:00:09+00:00"
+ "time": "2026-10-19T10:48:00+00:00"
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.7.0",
+ "version": "v5.8.0",
"source": {
"type": "git",
"url": "https://github.com/phpdotenv/phpdotenv.git",
- "reference": "301c07936b16d88628b126b01d082ba153cf4c40"
+ "reference": "96149103e62ac67e915f6d2ef59b72dee2e011e0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpdotenv/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40",
- "reference": "301c07936b16d88628b126b01d082ba153cf4c40",
+ "url": "https://api.github.com/repos/phpdotenv/phpdotenv/zipball/96149103e62ac67e915f6d2ef59b72dee2e011e0",
+ "reference": "96149103e62ac67e915f6d2ef59b72dee2e011e0",
"shasum": ""
},
"require": {
@@ -10147,7 +10322,7 @@
"forward-command": false
},
"branch-alias": {
- "dev-master": "5.6-dev"
+ "dev-master": "5.8-dev"
}
},
"autoload": {
@@ -10178,8 +10353,8 @@
"environment"
],
"support": {
- "issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.7.0"
+ "issues": "https://github.com/phpdotenv/phpdotenv/issues",
+ "source": "https://github.com/phpdotenv/phpdotenv/tree/v5.8.0"
},
"funding": [
{
@@ -10191,7 +10366,7 @@
"type": "tidelift"
}
],
- "time": "2026-08-24T18:07:49+00:00"
+ "time": "2026-10-25T16:26:19+00:00"
},
{
"name": "voku/portable-ascii",
@@ -10498,16 +10673,16 @@
"packages-dev": [
{
"name": "austinmastlab/deployer-recipes",
- "version": "v1.1.0",
+ "version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/AustinMastLab/deployer-recipes",
- "reference": "6b1d741b3911863b6562ff28c7e9354ae688aeba"
+ "reference": "1a3c56693f52f09d079c895f6d0ba338e961eccc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/AustinMastLab/deployer-recipes/zipball/6b1d741b3911863b6562ff28c7e9354ae688aeba",
- "reference": "6b1d741b3911863b6562ff28c7e9354ae688aeba",
+ "url": "https://api.github.com/repos/AustinMastLab/deployer-recipes/zipball/1a3c56693f52f09d079c895f6d0ba338e961eccc",
+ "reference": "1a3c56693f52f09d079c895f6d0ba338e961eccc",
"shasum": ""
},
"require": {
@@ -10524,48 +10699,58 @@
],
"type": "library",
"description": "Shared Deployer recipes and AWS SSM environment tools for AustinMastLab sites",
- "time": "2026-10-11T17:41:30+00:00"
+ "time": "2026-10-22T00:56:00+00:00"
},
{
"name": "barryvdh/laravel-debugbar",
- "version": "v3.16.5",
+ "version": "v4.4.5",
"source": {
"type": "git",
"url": "https://github.com/fruitcake/laravel-debugbar.git",
- "reference": "e85c0a8464da67e5b4a53a42796d46a43fc06c9a"
+ "reference": "679c389306cd6255dbb3d2a9350d846c2e991dcc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/e85c0a8464da67e5b4a53a42796d46a43fc06c9a",
- "reference": "e85c0a8464da67e5b4a53a42796d46a43fc06c9a",
+ "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/679c389306cd6255dbb3d2a9350d846c2e991dcc",
+ "reference": "679c389306cd6255dbb3d2a9350d846c2e991dcc",
"shasum": ""
},
"require": {
- "illuminate/routing": "^10|^11|^12",
- "illuminate/session": "^10|^11|^12",
- "illuminate/support": "^10|^11|^12",
- "php": "^8.1",
- "php-debugbar/php-debugbar": "^2.2.4",
- "symfony/finder": "^6|^7|^8"
+ "illuminate/routing": "^11|^12|^13.0",
+ "illuminate/session": "^11|^12|^13.0",
+ "illuminate/support": "^11|^12|^13.0",
+ "php": "^8.2",
+ "php-debugbar/php-debugbar": "^3.8.0",
+ "php-debugbar/symfony-bridge": "^1.1"
},
"require-dev": {
+ "larastan/larastan": "^3",
+ "laravel/ai": "^0.8|^0.9|^0.10|^0.11|^1.0",
+ "laravel/octane": "^2",
+ "laravel/pennant": "^1",
+ "laravel/pint": "^1",
+ "laravel/telescope": "^5.16",
+ "livewire/livewire": "^3.7|^4",
"mockery/mockery": "^1.3.3",
- "orchestra/testbench-dusk": "^7|^8|^9|^10",
- "phpunit/phpunit": "^9.5.10|^10|^11",
- "squizlabs/php_codesniffer": "^3.5"
+ "orchestra/testbench-dusk": "^9|^10|^11",
+ "php-debugbar/twig-bridge": "^2.0",
+ "phpstan/phpstan-phpunit": "^2",
+ "phpstan/phpstan-strict-rules": "^2.0",
+ "phpunit/phpunit": "^11",
+ "shipmonk/phpstan-rules": "^4.3"
},
"type": "library",
"extra": {
"laravel": {
"aliases": {
- "Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar"
+ "Debugbar": "Fruitcake\\LaravelDebugbar\\Facades\\Debugbar"
},
"providers": [
- "Barryvdh\\Debugbar\\ServiceProvider"
+ "Fruitcake\\LaravelDebugbar\\ServiceProvider"
]
},
"branch-alias": {
- "dev-master": "3.16-dev"
+ "dev-master": "4.2-dev"
}
},
"autoload": {
@@ -10573,7 +10758,7 @@
"src/helpers.php"
],
"psr-4": {
- "Barryvdh\\Debugbar\\": "src/"
+ "Fruitcake\\LaravelDebugbar\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -10581,6 +10766,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Fruitcake",
+ "homepage": "https://fruitcake.nl"
+ },
{
"name": "Barry vd. Heuvel",
"email": "barryvdh@gmail.com"
@@ -10588,6 +10777,7 @@
],
"description": "PHP Debugbar integration for Laravel",
"keywords": [
+ "barryvdh",
"debug",
"debugbar",
"dev",
@@ -10597,7 +10787,7 @@
],
"support": {
"issues": "https://github.com/fruitcake/laravel-debugbar/issues",
- "source": "https://github.com/fruitcake/laravel-debugbar/tree/v3.16.5"
+ "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.4.5"
},
"funding": [
{
@@ -10609,7 +10799,7 @@
"type": "github"
}
],
- "time": "2026-01-23T15:03:22+00:00"
+ "time": "2026-10-28T13:25:29+00:00"
},
{
"name": "barryvdh/laravel-ide-helper",
@@ -10851,6 +11041,83 @@
],
"time": "2026-03-29T15:46:14+00:00"
},
+ {
+ "name": "composer/semver",
+ "version": "3.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "528948210cc46f967a4b98e83b19e76f2b504993"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/528948210cc46f967a4b98e83b19e76f2b504993",
+ "reference": "528948210cc46f967a4b98e83b19e76f2b504993",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Version comparison library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.5.1"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ }
+ ],
+ "time": "2026-10-05T13:12:12+00:00"
+ },
{
"name": "composer/xdebug-handler",
"version": "3.0.5",
@@ -11373,33 +11640,34 @@
},
{
"name": "laravel/boost",
- "version": "v1.8.13",
+ "version": "v2.10.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/boost.git",
- "reference": "cdcb12114315491f72a2cecb5130d8b9dffa0103"
+ "reference": "75c269a8a53e931c7252e7cd562e1a209356a7c6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/boost/zipball/cdcb12114315491f72a2cecb5130d8b9dffa0103",
- "reference": "cdcb12114315491f72a2cecb5130d8b9dffa0103",
+ "url": "https://api.github.com/repos/laravel/boost/zipball/75c269a8a53e931c7252e7cd562e1a209356a7c6",
+ "reference": "75c269a8a53e931c7252e7cd562e1a209356a7c6",
"shasum": ""
},
"require": {
- "guzzlehttp/guzzle": "^7.9",
- "illuminate/console": "^10.49.0|^11.45.3|^12.41.1",
- "illuminate/contracts": "^10.49.0|^11.45.3|^12.41.1",
- "illuminate/routing": "^10.49.0|^11.45.3|^12.41.1",
- "illuminate/support": "^10.49.0|^11.45.3|^12.41.1",
- "laravel/mcp": "^0.5.1",
- "laravel/prompts": "0.1.25|^0.3.6",
- "laravel/roster": "^0.2.9",
- "php": "^8.1"
+ "guzzlehttp/guzzle": "^7.9|^8.0",
+ "illuminate/console": "^11.45.3|^12.41.1|^13.0",
+ "illuminate/contracts": "^11.45.3|^12.41.1|^13.0",
+ "illuminate/routing": "^11.45.3|^12.41.1|^13.0",
+ "illuminate/support": "^11.45.3|^12.41.1|^13.0",
+ "laravel/mcp": "^0.7.1|^0.8.0|^0.9.0|^1.0",
+ "laravel/prompts": "^0.3.10",
+ "laravel/roster": "^1.0.0",
+ "php": "^8.2"
},
"require-dev": {
- "laravel/pint": "^1.20.0",
+ "jasonmccreary/double": "^1.0",
+ "laravel/pint": "^1.27.0",
"mockery/mockery": "^1.6.12",
- "orchestra/testbench": "^8.36.0|^9.15.0|^10.6",
+ "orchestra/testbench": "^9.15.0|^10.6|^11.0",
"pestphp/pest": "^2.36.0|^3.8.4|^4.1.5",
"phpstan/phpstan": "^2.1.27",
"rector/rector": "^2.1"
@@ -11435,20 +11703,20 @@
"issues": "https://github.com/laravel/boost/issues",
"source": "https://github.com/laravel/boost"
},
- "time": "2026-03-27T17:24:01+00:00"
+ "time": "2026-10-07T19:07:19+00:00"
},
{
"name": "laravel/mcp",
- "version": "v0.5.9",
+ "version": "v1.0.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/mcp.git",
- "reference": "39e8da60eb7bce4737c5d868d35a3fe78938c129"
+ "reference": "26c7803551028653beab49af0e672ae38607b772"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/mcp/zipball/39e8da60eb7bce4737c5d868d35a3fe78938c129",
- "reference": "39e8da60eb7bce4737c5d868d35a3fe78938c129",
+ "url": "https://api.github.com/repos/laravel/mcp/zipball/26c7803551028653beab49af0e672ae38607b772",
+ "reference": "26c7803551028653beab49af0e672ae38607b772",
"shasum": ""
},
"require": {
@@ -11462,9 +11730,11 @@
"illuminate/routing": "^11.45.3|^12.41.1|^13.0",
"illuminate/support": "^11.45.3|^12.41.1|^13.0",
"illuminate/validation": "^11.45.3|^12.41.1|^13.0",
- "php": "^8.2"
+ "php": "^8.2",
+ "symfony/process": "^7.4.5|^8.0.5"
},
"require-dev": {
+ "jasonmccreary/double": "^1.0",
"laravel/pint": "^1.20",
"orchestra/testbench": "^9.15|^10.8|^11.0",
"pestphp/pest": "^3.8.5|^4.3.2",
@@ -11475,7 +11745,7 @@
"extra": {
"laravel": {
"aliases": {
- "Mcp": "Laravel\\Mcp\\Server\\Facades\\Mcp"
+ "Mcp": "Laravel\\Mcp\\Facades\\Mcp"
},
"providers": [
"Laravel\\Mcp\\Server\\McpServiceProvider"
@@ -11508,7 +11778,7 @@
"issues": "https://github.com/laravel/mcp/issues",
"source": "https://github.com/laravel/mcp"
},
- "time": "2026-02-17T19:05:53+00:00"
+ "time": "2026-10-11T20:52:46+00:00"
},
{
"name": "laravel/pail",
@@ -11662,32 +11932,33 @@
},
{
"name": "laravel/roster",
- "version": "v0.2.9",
+ "version": "v1.0.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/roster.git",
- "reference": "82bbd0e2de614906811aebdf16b4305956816fa6"
+ "reference": "89e518bd88ae98ff50f6082f6b517c8d8e8245fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/roster/zipball/82bbd0e2de614906811aebdf16b4305956816fa6",
- "reference": "82bbd0e2de614906811aebdf16b4305956816fa6",
+ "url": "https://api.github.com/repos/laravel/roster/zipball/89e518bd88ae98ff50f6082f6b517c8d8e8245fa",
+ "reference": "89e518bd88ae98ff50f6082f6b517c8d8e8245fa",
"shasum": ""
},
"require": {
- "illuminate/console": "^10.0|^11.0|^12.0",
- "illuminate/contracts": "^10.0|^11.0|^12.0",
- "illuminate/routing": "^10.0|^11.0|^12.0",
- "illuminate/support": "^10.0|^11.0|^12.0",
- "php": "^8.1|^8.2",
- "symfony/yaml": "^6.4|^7.2"
+ "composer/semver": "^3.0",
+ "illuminate/console": "^11.0|^12.0|^13.0",
+ "illuminate/contracts": "^11.0|^12.0|^13.0",
+ "illuminate/support": "^11.0|^12.0|^13.0",
+ "php": "^8.2",
+ "symfony/yaml": "^7.2|^8.0"
},
"require-dev": {
- "laravel/pint": "^1.14",
+ "laravel/pint": "^1.29",
"mockery/mockery": "^1.6",
- "orchestra/testbench": "^8.22.0|^9.0|^10.0",
- "pestphp/pest": "^2.0|^3.0",
- "phpstan/phpstan": "^2.0"
+ "orchestra/testbench": "^9.0|^10.0|^11.0",
+ "pestphp/pest": "^3.0|^4.1",
+ "phpstan/phpstan": "^2.0",
+ "rector/rector": "^2.0"
},
"type": "library",
"extra": {
@@ -11719,7 +11990,7 @@
"issues": "https://github.com/laravel/roster/issues",
"source": "https://github.com/laravel/roster"
},
- "time": "2025-10-20T09:56:46+00:00"
+ "time": "2026-07-18T17:53:15+00:00"
},
{
"name": "maml/maml",
@@ -12597,47 +12868,63 @@
},
{
"name": "php-debugbar/php-debugbar",
- "version": "v2.2.6",
+ "version": "v3.8.0",
"source": {
"type": "git",
"url": "https://github.com/php-debugbar/php-debugbar.git",
- "reference": "abb9fa3c5c8dbe7efe03ddba56782917481de3e8"
+ "reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/abb9fa3c5c8dbe7efe03ddba56782917481de3e8",
- "reference": "abb9fa3c5c8dbe7efe03ddba56782917481de3e8",
+ "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/18ced90d4b882ed449b2278fea8692f8f7d1c13c",
+ "reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c",
"shasum": ""
},
"require": {
- "php": "^8.1",
+ "php": "^8.2",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^5.4|^6.4|^7.3|^8.0"
+ "symfony/var-dumper": "^5.4|^6|^7|^8"
},
"replace": {
"maximebf/debugbar": "self.version"
},
"require-dev": {
- "dbrekelmans/bdi": "^1",
+ "dbrekelmans/bdi": "^1.4",
+ "friendsofphp/php-cs-fixer": "^3.92",
+ "monolog/monolog": "^3.9",
+ "php-debugbar/doctrine-bridge": "^3@dev",
+ "php-debugbar/monolog-bridge": "^1@dev",
+ "php-debugbar/symfony-bridge": "^1@dev",
+ "php-debugbar/twig-bridge": "^2@dev",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpstan/phpstan-strict-rules": "^2.0",
"phpunit/phpunit": "^10",
- "symfony/browser-kit": "^6.0|7.0",
+ "predis/predis": "^3.3",
+ "shipmonk/phpstan-rules": "^4.3",
+ "symfony/browser-kit": "^6.4|7.0",
+ "symfony/dom-crawler": "^6.4|^7",
+ "symfony/event-dispatcher": "^5.4|^6.4|^7.3|^8.0",
+ "symfony/http-foundation": "^5.4|^6.4|^7.3|^8.0",
+ "symfony/mailer": "^5.4|^6.4|^7.3|^8.0",
"symfony/panther": "^1|^2.1",
"twig/twig": "^3.11.2"
},
"suggest": {
- "kriswallsmith/assetic": "The best way to manage assets",
- "monolog/monolog": "Log using Monolog",
- "predis/predis": "Redis storage"
+ "php-debugbar/doctrine-bridge": "To integrate Doctrine with php-debugbar.",
+ "php-debugbar/monolog-bridge": "To integrate Monolog with php-debugbar.",
+ "php-debugbar/symfony-bridge": "To integrate Symfony with php-debugbar.",
+ "php-debugbar/twig-bridge": "To integrate Twig with php-debugbar."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2-dev"
+ "dev-master": "3.8-dev"
}
},
"autoload": {
"psr-4": {
- "DebugBar\\": "src/DebugBar/"
+ "DebugBar\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -12661,13 +12948,91 @@
"debug",
"debug bar",
"debugbar",
- "dev"
+ "dev",
+ "profiler",
+ "toolbar"
],
"support": {
"issues": "https://github.com/php-debugbar/php-debugbar/issues",
- "source": "https://github.com/php-debugbar/php-debugbar/tree/v2.2.6"
+ "source": "https://github.com/php-debugbar/php-debugbar/tree/v3.8.0"
+ },
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "time": "2026-07-02T12:38:20+00:00"
+ },
+ {
+ "name": "php-debugbar/symfony-bridge",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-debugbar/symfony-bridge.git",
+ "reference": "e37d2debe5d316408b00d0ab2688d9c2cf59b5ad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-debugbar/symfony-bridge/zipball/e37d2debe5d316408b00d0ab2688d9c2cf59b5ad",
+ "reference": "e37d2debe5d316408b00d0ab2688d9c2cf59b5ad",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2",
+ "php-debugbar/php-debugbar": "^3.1",
+ "symfony/http-foundation": "^5.4|^6.4|^7.3|^8.0"
+ },
+ "require-dev": {
+ "dbrekelmans/bdi": "^1.4",
+ "phpunit/phpunit": "^10",
+ "symfony/browser-kit": "^6|^7",
+ "symfony/dom-crawler": "^6|^7",
+ "symfony/mailer": "^5.4|^6.4|^7.3|^8.0",
+ "symfony/panther": "^1|^2.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "DebugBar\\Bridge\\Symfony\\": "src/"
+ }
},
- "time": "2025-12-22T13:21:32+00:00"
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Maxime Bouroumeau-Fuseau",
+ "email": "maxime.bouroumeau@gmail.com",
+ "homepage": "http://maximebf.com"
+ },
+ {
+ "name": "Barry vd. Heuvel",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "Symfony bridge for PHP Debugbar",
+ "homepage": "https://github.com/php-debugbar/php-debugbar",
+ "keywords": [
+ "debugbar",
+ "dev",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/php-debugbar/symfony-bridge/issues",
+ "source": "https://github.com/php-debugbar/symfony-bridge/tree/v1.1.0"
+ },
+ "time": "2026-01-15T14:47:34+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -14344,16 +14709,16 @@
},
{
"name": "spatie/laravel-ignition",
- "version": "2.12.0",
+ "version": "2.12.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-ignition.git",
- "reference": "45b3b6e1e73fc161cba2149972698644b99594ee"
+ "reference": "0d49228686542bf718ad1a978ab3eb1d5a0dcd41"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/45b3b6e1e73fc161cba2149972698644b99594ee",
- "reference": "45b3b6e1e73fc161cba2149972698644b99594ee",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/0d49228686542bf718ad1a978ab3eb1d5a0dcd41",
+ "reference": "0d49228686542bf718ad1a978ab3eb1d5a0dcd41",
"shasum": ""
},
"require": {
@@ -14432,7 +14797,7 @@
"type": "github"
}
],
- "time": "2026-03-17T12:20:04+00:00"
+ "time": "2026-10-19T16:31:25+00:00"
},
{
"name": "staabm/side-effects-detector",
@@ -14488,28 +14853,28 @@
},
{
"name": "symfony/yaml",
- "version": "v7.4.20",
+ "version": "v8.1.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "0222bf4dfaa1e3ceb8fff579635d655f2950d5a7"
+ "reference": "6107ee26a25215c3df3af0a3315e56bb4fd0b7db"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/0222bf4dfaa1e3ceb8fff579635d655f2950d5a7",
- "reference": "0222bf4dfaa1e3ceb8fff579635d655f2950d5a7",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/6107ee26a25215c3df3af0a3315e56bb4fd0b7db",
+ "reference": "6107ee26a25215c3df3af0a3315e56bb4fd0b7db",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.4.1",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/console": "<6.4"
+ "symfony/console": "<7.4"
},
"require-dev": {
- "symfony/console": "^6.4|^7.0|^8.0"
+ "symfony/console": "^7.4|^8.0",
+ "yaml/yaml-test-suite": "*"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -14540,7 +14905,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v7.4.20"
+ "source": "https://github.com/symfony/yaml/tree/v8.1.9"
},
"funding": [
{
@@ -14560,7 +14925,7 @@
"type": "tidelift"
}
],
- "time": "2026-09-26T06:31:10+00:00"
+ "time": "2026-10-12T12:37:13+00:00"
},
{
"name": "ta-tikoma/phpunit-architecture-test",
diff --git a/config/debugbar.php b/config/debugbar.php
index 8cbae69..f64cc24 100644
--- a/config/debugbar.php
+++ b/config/debugbar.php
@@ -1,4 +1,5 @@
.
*/
+declare(strict_types=1);
+
return [
/*
@@ -31,32 +34,158 @@
|
*/
- 'enabled' => env('DEBUGBAR_ENABLED', null),
+ 'enabled' => env('DEBUGBAR_ENABLED'),
+ 'collect_jobs' => env('DEBUGBAR_COLLECT_JOBS', false),
'except' => [
'telescope*',
'horizon*',
+ '_boost/browser-logs',
+ 'livewire-*/livewire.js',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | DataCollectors
+ |--------------------------------------------------------------------------
+ |
+ | Enable/disable DataCollectors
+ |
+ */
+
+ 'collectors' => [
+ 'phpinfo' => env('DEBUGBAR_COLLECTORS_PHPINFO', false), // Php version
+ 'messages' => env('DEBUGBAR_COLLECTORS_MESSAGES', true), // Messages
+ 'time' => env('DEBUGBAR_COLLECTORS_TIME', true), // Time Datalogger
+ 'memory' => env('DEBUGBAR_COLLECTORS_MEMORY', true), // Memory usage
+ 'exceptions' => env('DEBUGBAR_COLLECTORS_EXCEPTIONS', true), // Exception displayer
+ 'log' => env('DEBUGBAR_COLLECTORS_LOG', true), // Logs from Monolog (merged in messages if enabled)
+ 'db' => env('DEBUGBAR_COLLECTORS_DB', true), // Show database (PDO) queries and bindings
+ 'views' => env('DEBUGBAR_COLLECTORS_VIEWS', true), // Views with their data
+ 'route' => env('DEBUGBAR_COLLECTORS_ROUTE', false), // Current route information
+ 'auth' => env('DEBUGBAR_COLLECTORS_AUTH', false), // Display Laravel authentication status
+ 'gate' => env('DEBUGBAR_COLLECTORS_GATE', true), // Display Laravel Gate checks
+ 'session' => env('DEBUGBAR_COLLECTORS_SESSION', false), // Display session data
+ 'symfony_request' => env('DEBUGBAR_COLLECTORS_SYMFONY_REQUEST', true), // Default Request Data
+ 'mail' => env('DEBUGBAR_COLLECTORS_MAIL', true), // Catch mail messages
+ 'laravel' => env('DEBUGBAR_COLLECTORS_LARAVEL', true), // Laravel version and environment
+ 'events' => env('DEBUGBAR_COLLECTORS_EVENTS', false), // All events fired
+ 'logs' => env('DEBUGBAR_COLLECTORS_LOGS', false), // Add the latest log messages
+ 'config' => env('DEBUGBAR_COLLECTORS_CONFIG', false), // Display config settings
+ 'cache' => env('DEBUGBAR_COLLECTORS_CACHE', true), // Display cache events
+ 'models' => env('DEBUGBAR_COLLECTORS_MODELS', true), // Display models
+ 'livewire' => env('DEBUGBAR_COLLECTORS_LIVEWIRE', true), // Display Livewire (when available)
+ 'inertia' => env('DEBUGBAR_COLLECTORS_INERTIA', true), // Display Inertia (when available)
+ 'jobs' => env('DEBUGBAR_COLLECTORS_JOBS', true), // Display dispatched jobs
+ 'pennant' => env('DEBUGBAR_COLLECTORS_PENNANT', true), // Display Pennant feature flags
+ 'ai' => env('DEBUGBAR_COLLECTORS_AI', true), // Display laravel/ai agent runs
+ 'http_client' => env('DEBUGBAR_COLLECTORS_HTTP_CLIENT', true), // Display HTTP Client requests
],
/*
|--------------------------------------------------------------------------
- | Storage settings
+ | Extra options
|--------------------------------------------------------------------------
|
- | DebugBar stores data for session/ajax requests.
- | You can disable this, so the debugbar stores data in headers/session,
- | but this can cause problems with large data collectors.
- | By default, file storage (in the storage folder) is used. Redis and PDO
- | can also be used. For PDO, run the package migrations first.
+ | Configure some DataCollectors
|
*/
- 'storage' => [
- 'enabled' => true,
- 'driver' => 'file', // redis, file, pdo, socket, custom
- 'path' => storage_path('debugbar'), // For file driver
- 'connection' => null, // Leave null for default connection (Redis/PDO)
- 'provider' => '', // Instance of StorageInterface for custom driver
- 'hostname' => '127.0.0.1', // Hostname to use with the "socket" driver
- 'port' => 2304, // Port to use with the "socket" driver
+
+ 'options' => [
+ 'time' => [
+ 'memory_usage' => env('DEBUGBAR_OPTIONS_TIME_MEMORY_USAGE', false), // Calculated by subtracting memory start and end, it may be inaccurate
+ ],
+ 'messages' => [
+ 'trace' => env('DEBUGBAR_OPTIONS_MESSAGES_TRACE', true), // Trace the origin of the debug message
+ 'backtrace_exclude_paths' => [], // Paths to exclude from backtrace. (in addition to defaults)
+ 'capture_dumps' => env('DEBUGBAR_OPTIONS_MESSAGES_CAPTURE_DUMPS', false), // Capture laravel `dump();` as message
+ 'timeline' => env('DEBUGBAR_OPTIONS_MESSAGES_TIMELINE', true), // Add messages to the timeline
+ ],
+ 'memory' => [
+ 'reset_peak' => env('DEBUGBAR_OPTIONS_MEMORY_RESET_PEAK', false), // run memory_reset_peak_usage before collecting
+ 'with_baseline' => env('DEBUGBAR_OPTIONS_MEMORY_WITH_BASELINE', false), // Set boot memory usage as memory peak baseline
+ 'precision' => (int) env('DEBUGBAR_OPTIONS_MEMORY_PRECISION', 0), // Memory rounding precision
+ ],
+ 'auth' => [
+ 'show_name' => env('DEBUGBAR_OPTIONS_AUTH_SHOW_NAME', true), // Also show the users name/email in the debugbar
+ 'show_guards' => env('DEBUGBAR_OPTIONS_AUTH_SHOW_GUARDS', true), // Show the guards that are used
+ ],
+ 'gate' => [
+ 'trace' => false, // Trace the origin of the Gate checks
+ 'timeline' => env('DEBUGBAR_OPTIONS_GATE_TIMELINE', false), // Add mails to the timeline
+ ],
+ 'db' => [
+ 'with_params' => env('DEBUGBAR_OPTIONS_WITH_PARAMS', true), // Render SQL with the parameters substituted
+ 'exclude_paths' => [ // Paths to exclude entirely from the collector
+ // 'vendor/laravel/framework/src/Illuminate/Session', // Exclude sessions queries
+ ],
+ 'backtrace' => env('DEBUGBAR_OPTIONS_DB_BACKTRACE', true), // Use a backtrace to find the origin of the query in your files.
+ 'backtrace_exclude_paths' => [], // Paths to exclude from backtrace. (in addition to defaults)
+ 'backtrace_editor_links' => env('DEBUGBAR_OPTIONS_DB_BACKTRACE_EDITOR_LINKS', false), // Add editor links to backtrace entries (non-vendor files only)
+ 'timeline' => env('DEBUGBAR_OPTIONS_DB_TIMELINE', false), // Add the queries to the timeline
+ 'duration_background' => env('DEBUGBAR_OPTIONS_DB_DURATION_BACKGROUND', true), // Show shaded background on each query relative to how long it took to execute.
+ 'explain' => env('DEBUGBAR_OPTIONS_DB_EXPLAIN_ENABLED', true), // Show EXPLAIN output on queries
+ 'show_query_result' => env('DEBUGBAR_OPTIONS_DB_SHOW_QUERY_RESULT', false), // Show option to re-run SELECT queries and show the result
+ 'only_slow_queries' => env('DEBUGBAR_OPTIONS_DB_ONLY_SLOW_QUERIES', true), // Only track queries that last longer than `slow_threshold`
+ 'slow_threshold' => env('DEBUGBAR_OPTIONS_DB_SLOW_THRESHOLD', false), // Max query execution time (ms). Exceeding queries will be highlighted
+ 'memory_usage' => env('DEBUGBAR_OPTIONS_DB_MEMORY_USAGE', false), // Show queries memory usage
+ 'soft_limit' => (int) env('DEBUGBAR_OPTIONS_DB_SOFT_LIMIT', 100), // After the soft limit, no parameters/backtrace are captured
+ 'hard_limit' => (int) env('DEBUGBAR_OPTIONS_DB_HARD_LIMIT', 500), // After the hard limit, queries are ignored
+ ],
+ 'mail' => [
+ 'timeline' => env('DEBUGBAR_OPTIONS_MAIL_TIMELINE', true), // Add mails to the timeline
+ 'show_body' => env('DEBUGBAR_OPTIONS_MAIL_SHOW_BODY', true),
+ ],
+ 'views' => [
+ 'timeline' => env('DEBUGBAR_OPTIONS_VIEWS_TIMELINE', true), // Add the views to the timeline
+ 'timeline_duration' => env('DEBUGBAR_OPTIONS_VIEWS_TIMELINE_DURATION', false), // Add the views duration on timeline (Experimental)
+ 'data' => env('DEBUGBAR_OPTIONS_VIEWS_DATA', false), // True for all data, 'keys' for only names, false for no parameters.
+ 'group' => (int) env('DEBUGBAR_OPTIONS_VIEWS_GROUP', 50), // Group duplicate views. Pass value to auto-group, or true/false to force
+ 'exclude_paths' => [ // Add the paths which you don't want to appear in the views
+ 'vendor/filament', // Exclude Filament components by default
+ ],
+ ],
+ 'inertia' => [
+ 'pages' => env('DEBUGBAR_OPTIONS_VIEWS_INERTIA_PAGES', 'js/Pages'), // Path for Inertia views
+ ],
+ 'route' => [
+ 'label' => env('DEBUGBAR_OPTIONS_ROUTE_LABEL', true), // Show complete route on bar
+ ],
+ 'session' => [
+ 'masked' => [], // List of keys that are masked
+ ],
+ 'symfony_request' => [
+ 'label' => env('DEBUGBAR_OPTIONS_SYMFONY_REQUEST_LABEL', true), // Show route on bar
+ 'masked' => [], // List of keys that are masked
+ ],
+ 'events' => [
+ 'data' => env('DEBUGBAR_OPTIONS_EVENTS_DATA', false), // Collect events data
+ 'listeners' => env('DEBUGBAR_OPTIONS_EVENTS_LISTENERS', false), // Add listeners to the events data
+ 'excluded' => [], // Example: ['eloquent.*', 'composing', Illuminate\Cache\Events\CacheHit::class]
+ ],
+ 'logs' => [
+ 'file' => env('DEBUGBAR_OPTIONS_LOGS_FILE'),
+ ],
+ 'config' => [
+ 'masked' => [],
+ ],
+ 'cache' => [
+ 'values' => env('DEBUGBAR_OPTIONS_CACHE_VALUES', true), // Collect cache values
+ 'timeline' => env('DEBUGBAR_OPTIONS_CACHE_TIMELINE', false), // Add cache events to the timeline
+ ],
+ 'http_client' => [
+ 'masked' => [],
+ 'timeline' => env('DEBUGBAR_OPTIONS_HTTP_CLIENT_TIMELINE', true), // Add requests to the timeline
+ ],
+ 'ai' => [
+ 'values' => env('DEBUGBAR_OPTIONS_AI_VALUES', true), // Collect prompt/response/tool bodies
+ ],
+ ],
+
+ /**
+ * Add any additional DataCollectors by adding the class name of a DataCollector or invokable class.
+ */
+ 'custom_collectors' => [
+ // MyCollector::class => env('DEBUGBAR_COLLECTORS_MYCOLLECTOR', true),
],
/*
@@ -66,14 +195,48 @@
|
| Choose your preferred editor to use when clicking file name.
|
- | Supported: "phpstorm", "vscode", "vscode-insiders", "vscode-remote",
- | "vscode-insiders-remote", "vscodium", "textmate", "emacs",
- | "sublime", "atom", "nova", "macvim", "idea", "netbeans",
- | "xdebug", "espresso"
+ | Supported: "sublime", "textmate", "emacs", "macvim", "codelite",
+ | "phpstorm", "phpstorm-remote", "idea", "idea-remote",
+ | "vscode", "vscode-insiders", "vscode-remote", "vscode-insiders-remote",
+ | "vscodium", "nova", "xdebug", "atom", "espresso",
+ | "netbeans", "cursor", "windsurf", "zed", "antigravity"
|
*/
- 'editor' => env('DEBUGBAR_EDITOR', 'phpstorm'),
+ 'editor' => env('DEBUGBAR_EDITOR') ?: env('IGNITION_EDITOR', 'phpstorm'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Capture Ajax Requests
+ |--------------------------------------------------------------------------
+ |
+ | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors),
+ | you can use this option to disable sending the data through the headers.
+ |
+ | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools.
+ |
+ | Note for your request to be identified as ajax requests they must either send the header
+ | X-Requested-With with the value XMLHttpRequest (most JS libraries send this), or have application/json as a Accept header.
+ |
+ | By default `ajax_handler_auto_show` is set to true allowing ajax requests to be shown automatically in the Debugbar.
+ | Changing `ajax_handler_auto_show` to false will prevent the Debugbar from reloading.
+ |
+ | You can defer loading the dataset, so it will be loaded with ajax after the request is done. (Experimental)
+ |
+ | Streamed responses (SSE, StreamedResponse, Livewire streaming) lose the phpdebugbar-id response header.
+ | Enable `capture_streamed` to tag same-origin fetch/XHR requests with a phpdebugbar-request-id header and
+ | look the dataset up through the open handler afterwards (requires storage + the open handler enabled).
+ | `streamed_content_types` limits the fallback to these Content-Types; set it to an empty array or null to
+ | match any response missing the id header. Broaden it (e.g. text/html, application/json) for chunked responses.
+ */
+
+ 'capture_ajax' => env('DEBUGBAR_CAPTURE_AJAX', true),
+ 'add_ajax_timing' => env('DEBUGBAR_ADD_AJAX_TIMING', false),
+ 'ajax_handler_auto_show' => env('DEBUGBAR_AJAX_HANDLER_AUTO_SHOW', true),
+ 'ajax_handler_enable_tab' => env('DEBUGBAR_AJAX_HANDLER_ENABLE_TAB', true),
+ 'capture_streamed' => env('DEBUGBAR_CAPTURE_STREAMED', false),
+ 'streamed_content_types' => ['text/event-stream'],
+ 'defer_datasets' => env('DEBUGBAR_DEFER_DATASETS', false),
/*
|--------------------------------------------------------------------------
@@ -98,41 +261,65 @@
|
*/
- 'remote_sites_path' => env('DEBUGBAR_REMOTE_SITES_PATH', ''),
- 'local_sites_path' => env('DEBUGBAR_LOCAL_SITES_PATH', ''),
+ 'remote_sites_path' => env('DEBUGBAR_REMOTE_SITES_PATH'),
+ 'local_sites_path' => env('DEBUGBAR_LOCAL_SITES_PATH', env('IGNITION_LOCAL_SITES_PATH')),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Storage settings
+ |--------------------------------------------------------------------------
+ |
+ | Debugbar stores data for session/ajax requests.
+ | You can disable this, so the debugbar stores data in headers/session,
+ | but this can cause problems with large data collectors.
+ | By default, file storage (in the storage folder) is used. Sqlite will
+ | create a database file in the storage folder.
+ | Redis and PDO can also be used. For PDO, run the package migrations first.
+ |
+ | Warning: Enabling storage.open will allow everyone to access previous
+ | request, do not enable open storage in publicly available environments!
+ | Specify a callback if you want to limit based on IP or authentication.
+ | Leaving it to null will allow localhost and private network IPs
+ | (eg. Docker/Sail or LAN) only. Set to false to disable it completely.
+ */
+ 'storage' => [
+ 'enabled' => env('DEBUGBAR_STORAGE_ENABLED', true),
+ 'open' => env('DEBUGBAR_OPEN_STORAGE'), // bool/callback.
+ 'driver' => env('DEBUGBAR_STORAGE_DRIVER', 'file'), // redis, file, sqlite, pdo, custom
+ 'path' => env('DEBUGBAR_STORAGE_PATH', storage_path('debugbar')), // For file driver
+ 'connection' => env('DEBUGBAR_STORAGE_CONNECTION'), // Leave null for default connection (Redis/PDO)
+ 'provider' => env('DEBUGBAR_STORAGE_PROVIDER', ''), // Instance of StorageInterface for custom driver
+ ],
/*
|--------------------------------------------------------------------------
- | Vendors
+ | Force Allow Debugbar to be Enabled during boot
|--------------------------------------------------------------------------
|
- | Vendor files are included by default, but can be set to false.
- | This can also be set to 'js' or 'css', to only include javascript or css vendor files.
- | Vendor files are for css: font-awesome (including fonts) and highlight.js (css files)
- | and for js: jquery and and highlight.js
- | So if you want syntax highlighting, set it to true.
- | jQuery is set to not conflict with existing jQuery scripts.
+ | By default, debugbar can only be enabled when the app is in debug mode and not in production.
+ | For special cases, eg admin panels behind proper authentication, you can force debugbar to be enabled.
+ | Just this setting alone will not enable the Debugbar, but it will boot the Debugbar including routes and listeners,
+ | so you can enable it further in the requests using $debugbar->enable().
|
- */
-
- 'include_vendors' => true,
+ | Warning: Use with caution. Debugbar is a development tool and should never be exposed in non-trusted endpoints.
+ |
+ */
+ 'force_allow_enable' => env('DEBUGBAR_FORCE_ALLOW_ENABLE', false),
/*
|--------------------------------------------------------------------------
- | Capture Ajax Requests
+ | Assets
|--------------------------------------------------------------------------
|
- | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors),
- | you can use this option to disable sending the data through the headers.
- |
- | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools.
+ | Vendor files are included by default, but can be set to false.
+ | This can also be set to 'js' or 'css', to only include javascript or css vendor files.
+ | Vendor files are for css: (none)
+ | and for js: highlight.js
+ | So if you want syntax highlighting, set it to true.
|
- | Note for your request to be identified as ajax requests they must either send the header
- | X-Requested-With with the value XMLHttpRequest (most JS libraries send this), or have application/json as a Accept header.
*/
-
- 'capture_ajax' => true,
- 'add_ajax_timing' => false,
+ 'use_dist_files' => env('DEBUGBAR_USE_DIST_FILES', true),
+ 'include_vendors' => env('DEBUGBAR_INCLUDE_VENDORS', true),
/*
|--------------------------------------------------------------------------
@@ -142,98 +329,29 @@
| When enabled, the Debugbar shows deprecated warnings for Symfony components
| in the Messages tab.
|
- */
- 'error_handler' => false,
-
- /*
- |--------------------------------------------------------------------------
- | Clockwork integration
- |--------------------------------------------------------------------------
- |
- | The Debugbar can emulate the Clockwork headers, so you can use the Chrome
- | Extension, without the server-side code. It uses Debugbar collectors instead.
+ | You can set a custom error reporting level to filter which errors are
+ | handled. For example, to exclude deprecation warnings:
+ | E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED
|
- */
- 'clockwork' => false,
-
- /*
- |--------------------------------------------------------------------------
- | DataCollectors
- |--------------------------------------------------------------------------
+ | To exclude notices, strict warnings, and deprecations:
+ | E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_USER_DEPRECATED
|
- | Enable/disable DataCollectors
+ | Defaults to E_ALL (all errors).
|
*/
-
- 'collectors' => [
- 'phpinfo' => true, // Php version
- 'messages' => true, // Messages
- 'time' => true, // Time Datalogger
- 'memory' => true, // Memory usage
- 'exceptions' => true, // Exception displayer
- 'log' => true, // Logs from Monolog (merged in messages if enabled)
- 'db' => true, // Show database (PDO) queries and bindings
- 'views' => true, // Views with their data
- 'route' => true, // Current route information
- 'auth' => false, // Display Laravel authentication status
- 'gate' => true, // Display Laravel Gate checks
- 'session' => true, // Display session data
- 'symfony_request' => true, // Only one can be enabled..
- 'mail' => true, // Catch mail messages
- 'laravel' => false, // Laravel version and environment
- 'events' => false, // All events fired
- 'default_request' => false, // Regular or special Symfony request logger
- 'logs' => false, // Add the latest log messages
- 'files' => false, // Show the included files
- 'config' => false, // Display config settings
- 'cache' => false, // Display cache events
- 'models' => true, // Display models
- 'livewire' => true, // Display Livewire (when available)
- ],
+ 'error_handler' => env('DEBUGBAR_ERROR_HANDLER', false),
+ 'error_level' => env('DEBUGBAR_ERROR_LEVEL', E_ALL),
/*
|--------------------------------------------------------------------------
- | Extra options
+ | Clockwork integration
|--------------------------------------------------------------------------
|
- | Configure some DataCollectors
+ | The Debugbar can emulate the Clockwork headers, so you can use the Chrome
+ | Extension, without the server-side code. It uses Debugbar collectors instead.
|
*/
-
- 'options' => [
- 'auth' => [
- 'show_name' => true, // Also show the users name/email in the debugbar
- ],
- 'db' => [
- 'with_params' => true, // Render SQL with the parameters substituted
- 'backtrace' => true, // Use a backtrace to find the origin of the query in your files.
- 'backtrace_exclude_paths' => [], // Paths to exclude from backtrace. (in addition to defaults)
- 'timeline' => false, // Add the queries to the timeline
- 'duration_background' => true, // Show shaded background on each query relative to how long it took to execute.
- 'explain' => [ // Show EXPLAIN output on queries
- 'enabled' => false,
- 'types' => ['SELECT'], // Deprecated setting, is always only SELECT
- ],
- 'hints' => false, // Show hints for common mistakes
- 'show_copy' => false, // Show copy button next to the query
- ],
- 'mail' => [
- 'full_log' => false,
- ],
- 'views' => [
- 'timeline' => false, // Add the views to the timeline (Experimental)
- 'data' => false, //Note: Can slow down the application, because the data can be quite large..
- ],
- 'route' => [
- 'label' => true, // show complete route on bar
- ],
- 'logs' => [
- 'file' => null,
- ],
- 'cache' => [
- 'values' => true, // collect cache values
- ],
- ],
+ 'clockwork' => env('DEBUGBAR_CLOCKWORK', false),
/*
|--------------------------------------------------------------------------
@@ -246,33 +364,42 @@
|
*/
- 'inject' => true,
+ 'inject' => env('DEBUGBAR_INJECT', true),
/*
|--------------------------------------------------------------------------
- | DebugBar route prefix
+ | Debugbar route prefix
|--------------------------------------------------------------------------
|
- | Sometimes you want to set route prefix to be used by DebugBar to load
+ | Sometimes you want to set route prefix to be used by Debugbar to load
| its resources from. Usually the need comes from misconfigured web server or
| from trying to overcome bugs like this: http://trac.nginx.org/nginx/ticket/97
|
*/
- 'route_prefix' => '_debugbar',
+ 'route_prefix' => env('DEBUGBAR_ROUTE_PREFIX', '_debugbar'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Debugbar route middleware
+ |--------------------------------------------------------------------------
+ |
+ | Additional middleware to run on the Debugbar routes
+ */
+ 'route_middleware' => [],
/*
|--------------------------------------------------------------------------
- | DebugBar route domain
+ | Debugbar route domain
|--------------------------------------------------------------------------
|
- | By default DebugBar route served from the same domain that request served.
+ | By default Debugbar route served from the same domain that request served.
| To override default domain, specify it as a non-empty value.
*/
- 'route_domain' => null,
+ 'route_domain' => env('DEBUGBAR_ROUTE_DOMAIN'),
/*
|--------------------------------------------------------------------------
- | DebugBar theme
+ | Debugbar theme
|--------------------------------------------------------------------------
|
| Switches between light and dark theme. If set to auto it will respect system preferences
@@ -285,8 +412,8 @@
| Backtrace stack limit
|--------------------------------------------------------------------------
|
- | By default, the DebugBar limits the number of frames returned by the 'debug_backtrace()' function.
+ | By default, the Debugbar limits the number of frames returned by the 'debug_backtrace()' function.
| If you need larger stacktraces, you can increase this number. Setting it to 0 will result in no limit.
*/
- 'debug_backtrace_limit' => 50,
+ 'debug_backtrace_limit' => (int) env('DEBUGBAR_DEBUG_BACKTRACE_LIMIT', 50),
];
diff --git a/config/responsecache.php b/config/responsecache.php
index 6b948aa..71a4151 100644
--- a/config/responsecache.php
+++ b/config/responsecache.php
@@ -1,5 +1,10 @@
env('RESPONSE_CACHE_ENABLED', true),
- /*
- * The given class will determinate if a request should be cached. The
- * default class will cache all successful GET-requests.
- *
- * You can provide your own class given that it implements the
- * CacheProfile interface.
- */
- 'cache_profile' => Spatie\ResponseCache\CacheProfiles\CacheAllSuccessfulGetRequests::class,
+ 'cache' => [
+ /*
+ * Here you may define the cache store that should be used
+ * to store requests. This can be the name of any store
+ * that is configured in app/config/cache.php
+ */
+ 'store' => env('RESPONSE_CACHE_DRIVER', 'redis'),
+
+ /*
+ * The default number of seconds responses will be cached
+ * when using the default CacheProfile settings.
+ */
+ 'lifetime_in_seconds' => (int) env('RESPONSE_CACHE_LIFETIME', 86400),
+
+ /*
+ * If the cache driver you configured supports tags, you may specify a tag name
+ * here. All responses will be tagged. When clearing the responsecache only
+ * items with that tag will be flushed.
+ *
+ * You may use a string or an array here.
+ */
+ 'tag' => env('RESPONSE_CACHE_TAG', ''),
+ ],
+
+ 'minimum_requests' => [
+ /*
+ * The number of times a request must be seen before its
+ * response is stored. A higher number keeps pages that
+ * are requested only once, such as crawler traffic,
+ * out of the cache.
+ */
+ 'count' => (int) env('RESPONSE_CACHE_MINIMUM_REQUESTS', 1),
+
+ /*
+ * The number of seconds a request counts toward the minimum.
+ */
+ 'lifetime_in_seconds' => (int) env('RESPONSE_CACHE_MINIMUM_REQUESTS_LIFETIME', 86400),
+
+ /*
+ * The cache store that holds the request counters. Leave
+ * empty to use the response cache store above.
+ */
+ 'store' => env('RESPONSE_CACHE_MINIMUM_REQUESTS_STORE'),
+ ],
/*
* Optionally, you can specify a header that will force a cache bypass.
* This can be useful to monitor the performance of your application.
*/
- 'cache_bypass_header' => [
- 'name' => env('CACHE_BYPASS_HEADER_NAME', null),
- 'value' => env('CACHE_BYPASS_HEADER_VALUE', null),
+ 'bypass' => [
+ 'header_name' => env('CACHE_BYPASS_HEADER_NAME'),
+ 'header_value' => env('CACHE_BYPASS_HEADER_VALUE'),
],
- /*
- * When using the default CacheRequestFilter this setting controls the
- * default number of seconds responses must be cached.
- */
- 'cache_lifetime_in_seconds' => (int) env('RESPONSE_CACHE_LIFETIME', 86400),
+ 'debug' => [
+ /*
+ * Determines if debug headers (cache time, status and age) are
+ * added to cached responses. This can be handy when debugging.
+ */
+ 'enabled' => env('APP_DEBUG', false),
- /*
- * This setting determines if a http header named with the cache time
- * should be added to a cached response. This can be handy when
- * debugging.
- */
- 'add_cache_time_header' => env('APP_DEBUG', false),
+ /*
+ * The name of the http header containing the time at which
+ * the response was cached.
+ */
+ 'cache_time_header_name' => "{$tag}-responsecache",
- /*
- * This setting determines the name of the http header that contains
- * the time at which the response was cached
- */
- 'cache_time_header_name' => "{$tag}-responsecache",
+ /*
+ * The name of the http header that indicates whether a response
+ * was a HIT or a MISS.
+ */
+ 'cache_status_header_name' => "{$tag}-responsecache-status",
- /*
- * This setting determines if a http header named with the cache age
- * should be added to a cached response. This can be handy when
- * debugging.
- * ONLY works when "add_cache_time_header" is also active!
- */
- 'add_cache_age_header' => env('RESPONSE_CACHE_AGE_HEADER', false),
+ /*
+ * The name of the http header containing the cache age in seconds.
+ */
+ 'cache_age_header_name' => "{$tag}-responsecache-age",
- /*
- * This setting determines the name of the http header that contains
- * the age of cache
- */
- 'cache_age_header_name' => "{$tag}-responsecache-age",
+ /*
+ * The name of the http header containing the response cache key.
+ * This is only added when app.debug is enabled.
+ */
+ 'cache_key_header_name' => "{$tag}-responsecache-key",
+ ],
/*
- * Here you may define the cache store that should be used to store
- * requests. This can be the name of any store that is
- * configured in app/config/cache.php
+ * These query parameters will be ignored when generating
+ * the cache key. This is useful for ignoring tracking
+ * parameters like UTM tags, gclid and also fbclid.
*/
- 'cache_store' => env('RESPONSE_CACHE_DRIVER', 'redis'),
+ 'ignored_query_parameters' => [
+ 'utm_source',
+ 'utm_medium',
+ 'utm_campaign',
+ 'utm_term',
+ 'utm_content',
+ 'gclid',
+ 'fbclid',
+ ],
/*
- * Here you may define replacers that dynamically replace content from the response.
- * Each replacer must implement the Replacer interface.
+ * Requests containing any of these headers will bypass cache reads
+ * and writes. This prevents full-page responses from being served
+ * to Livewire (Filament) requests.
*/
- 'replacers' => [
- \Spatie\ResponseCache\Replacers\CsrfTokenReplacer::class,
+ 'excluded_request_headers' => [
+ 'X-Livewire',
+ 'X-Livewire-Navigate',
+ 'X-Inertia',
],
/*
- * If the cache driver you configured supports tags, you may specify a tag name
- * here. All responses will be tagged. When clearing the responsecache only
- * items with that tag will be flushed.
+ * The given class will determinate if a request should be cached. The
+ * default class will cache all successful GET-requests.
*
- * You may use a string or an array here.
+ * You can provide your own class given that it implements the
+ * CacheProfile interface.
*/
- 'cache_tag' => '',
+ 'cache_profile' => SkipCacheWhenSessionHasFlash::class,
/*
* This class is responsible for generating a hash for a request. This hash
* is used to look up a cached response.
*/
- 'hasher' => \Spatie\ResponseCache\Hasher\DefaultHasher::class,
+ 'hasher' => DefaultHasher::class,
/*
* This class is responsible for serializing responses.
*/
- 'serializer' => \Spatie\ResponseCache\Serializers\DefaultSerializer::class,
+ 'serializer' => JsonSerializer::class,
+
+ /*
+ * Here you may define replacers that dynamically replace content from the response.
+ * Each replacer must implement the Replacer interface.
+ */
+ 'replacers' => [
+ CsrfTokenReplacer::class,
+ ],
];
diff --git a/config/sweetalert.php b/config/sweetalert.php
index 4385d09..9dc520f 100644
--- a/config/sweetalert.php
+++ b/config/sweetalert.php
@@ -4,209 +4,240 @@
/*
|--------------------------------------------------------------------------
- | CDN LINK
+ | Default Alert Type
|--------------------------------------------------------------------------
- | By default SweetAlert2 use its local sweetalert.all.js
- | file.
- | However, you can use its cdn if you want.
+ |
+ | This value determines the default alert type when none is specified.
|
*/
- 'cdn' => env('SWEET_ALERT_CDN'),
+ 'default' => env('SWEET_ALERT_DEFAULT', 'alert'),
/*
|--------------------------------------------------------------------------
- | Always load the sweetalert.all.js
+ | CDN Link
|--------------------------------------------------------------------------
- | There might be situations where you will always want the sweet alert
- | js package to be there for you. (for eg. you might use it heavily to
- | show notifications or you might want to use the native js) then this
- | might be handy.
+ |
+ | By default, SweetAlert2 uses its local sweetalert2.min.js file.
+ | However, you can use a CDN if you prefer.
|
*/
- 'alwaysLoadJS' => env('SWEET_ALERT_ALWAYS_LOAD_JS', false),
+ 'cdn' => env('SWEET_ALERT_CDN'),
/*
|--------------------------------------------------------------------------
- | Never load the sweetalert.all.js
+ | JavaScript Loading Control
|--------------------------------------------------------------------------
- | If you want to handle the sweet alert js package by yourself
- | (for eg. you might want to use laravel mix) then this can be
- | handy.
- | If you set always load js to true & never load js to false,
- | it's going to prioritize the never load js.
|
- | alwaysLoadJs = true & neverLoadJs = true => js will not be loaded
- | alwaysLoadJs = true & neverLoadJs = false => js will be loaded
- | alwaysLoadJs = false & neverLoadJs = false => js will be loaded when
- | you set alert/toast by using the facade/helper functions.
+ | always_load_js: Always include the SweetAlert2 JS on every page.
+ | never_load_js: Never include the JS (handle it yourself with Mix/Vite).
+ |
+ | alwaysLoadJs = true & neverLoadJs = true => JS will NOT be loaded
+ | alwaysLoadJs = true & neverLoadJs = false => JS will be loaded
+ | alwaysLoadJs = false & neverLoadJs = false => JS loaded only when alert is set
+ |
*/
- 'neverLoadJS' => env('SWEET_ALERT_NEVER_LOAD_JS', false),
+ 'always_load_js' => env('SWEET_ALERT_ALWAYS_LOAD_JS', false),
+ 'never_load_js' => env('SWEET_ALERT_NEVER_LOAD_JS', false),
/*
|--------------------------------------------------------------------------
- | AutoClose Timer
+ | Default Modal Settings
|--------------------------------------------------------------------------
|
- | This is for the all Modal windows.
- | For specific modal just use the autoClose() helper method.
+ | These values are used as defaults for all modal windows.
+ | Override them per-alert using the fluent API methods.
|
*/
'timer' => env('SWEET_ALERT_TIMER', 5000),
/*
- |--------------------------------------------------------------------------
- | Width
- |--------------------------------------------------------------------------
- |
- | Modal window width, including paddings (box-sizing: border-box).
- | Can be in px or %.
- | The default width is 32rem.
- | This is for the all Modal windows.
- | for particular modal just use the width() helper method.
+ | Width, padding and background are sent to SweetAlert2 only when you set
+ | them. SweetAlert2 turns each one into an inline style on the popup, and an
+ | inline style beats every stylesheet — so a hard-coded background here
+ | would override the theme you picked and every alert would stay white.
+ | Leave them null and the active theme's own CSS decides.
*/
-
- 'width' => env('SWEET_ALERT_WIDTH', '32rem'),
+ 'width' => env('SWEET_ALERT_WIDTH'),
+ 'padding' => env('SWEET_ALERT_PADDING'),
+ 'background' => env('SWEET_ALERT_BACKGROUND'),
+ 'show_confirm_button' => env('SWEET_ALERT_SHOW_CONFIRM_BUTTON', true),
+ 'show_close_button' => env('SWEET_ALERT_SHOW_CLOSE_BUTTON', false),
/*
|--------------------------------------------------------------------------
- | Height Auto
+ | Button Text
|--------------------------------------------------------------------------
- | By default, SweetAlert2 sets html's and body's CSS height to auto !important.
- | If this behavior isn't compatible with your project's layout,
- | set heightAuto to false.
+ |
+ | Default text for the modal buttons. Translations will be handled
+ | by Laravel at runtime.
|
*/
- 'height_auto' => env('SWEET_ALERT_HEIGHT_AUTO', true),
+ 'button_text' => [
+ 'confirm' => env('SWEET_ALERT_CONFIRM_BUTTON_TEXT', 'OK'),
+ 'cancel' => env('SWEET_ALERT_CANCEL_BUTTON_TEXT', 'Cancel'),
+ 'deny' => env('SWEET_ALERT_DENY_BUTTON_TEXT', 'Deny'),
+ ],
/*
|--------------------------------------------------------------------------
- | Padding
+ | Toast Settings
|--------------------------------------------------------------------------
|
- | Modal window padding.
- | Can be in px or %.
- | The default padding is 1.25rem.
- | This is for the all Modal windows.
- | for particular modal just use the padding() helper method.
+ | Default configuration for toast notifications.
+ |
*/
- 'padding' => env('SWEET_ALERT_PADDING', '1.25rem'),
+ 'toast' => [
+ 'position' => env('SWEET_ALERT_TOAST_POSITION', 'top-end'),
+ 'auto_close' => env('SWEET_ALERT_TOAST_AUTO_CLOSE', 5000),
+ 'show_close_button' => env('SWEET_ALERT_TOAST_CLOSE_BUTTON', true),
+ 'show_confirm_button' => false,
+ 'timer_progress_bar' => env('SWEET_ALERT_TOAST_PROGRESS_BAR', true),
+ ],
/*
|--------------------------------------------------------------------------
- | Animation
+ | Middleware Settings
|--------------------------------------------------------------------------
- | Custom animation with [Animate.css](https://daneden.github.io/animate.css/)
- | If set to false, modal CSS animation will be use default ones.
- | For specific modal just use the animation() helper method.
+ |
+ | Configuration for the ToSweetAlert middleware behavior.
|
*/
- 'animation' => [
- 'enable' => env('SWEET_ALERT_ANIMATION_ENABLE', false),
+ 'middleware' => [
+ 'auto_display_errors' => env('SWEET_ALERT_AUTO_DISPLAY_ERRORS', true),
+ 'toast_position' => env('SWEET_ALERT_MIDDLEWARE_TOAST_POSITION', 'top'),
+ 'auto_close' => env('SWEET_ALERT_MIDDLEWARE_AUTO_CLOSE', true),
+ 'timer' => env('SWEET_ALERT_MIDDLEWARE_TIMER', 5000),
+ 'toast_close_button' => env('SWEET_ALERT_MIDDLEWARE_TOAST_CLOSE_BUTTON', true),
],
- 'animatecss' => env('SWEET_ALERT_ANIMATECSS', 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css'),
-
/*
|--------------------------------------------------------------------------
- | ShowConfirmButton
+ | Confirm Dialog Settings
|--------------------------------------------------------------------------
- | If set to false, a "Confirm"-button will not be shown.
- | It can be useful when you're using custom HTML description.
- | This is for the all Modal windows.
- | For specific modal just use the showConfirmButton() helper method.
+ |
+ | Default configuration for general confirm dialogs, and for the guarded
+ | links and forms marked with data-confirm.
+ |
+ | `auto` emits the small listener that makes data-confirm and
+ | data-confirm-delete work on every page. Turn it off if you would rather
+ | wire the confirmation up yourself.
|
*/
- 'show_confirm_button' => env('SWEET_ALERT_CONFIRM_BUTTON', true),
+ 'confirm' => [
+ 'auto' => env('SWEET_ALERT_AUTO_CONFIRM', true),
+ 'icon' => 'question',
+ 'title' => 'Are you sure?',
+ 'text' => '',
+ 'confirm_button_text' => 'Yes',
+ 'confirm_button_color' => '#3085d6',
+ 'cancel_button_text' => 'Cancel',
+ 'show_cancel_button' => true,
+ 'show_close_button' => false,
+ ],
/*
|--------------------------------------------------------------------------
- | ShowCloseButton
+ | Confirm Delete Settings
|--------------------------------------------------------------------------
- | If set to true, a "Close"-button will be shown,
- | which the user can click on to dismiss the modal.
- | This is for the all Modal windows.
- | For specific modal just use the showCloseButton() helper method.
+ |
+ | Default configuration for the confirmDelete() dialog.
|
*/
- 'show_close_button' => env('SWEET_ALERT_CLOSE_BUTTON', false),
+ 'confirm_delete' => [
+ 'icon' => 'warning',
+ 'title' => 'Are you sure?',
+ 'text' => 'This cannot be undone.',
+ 'confirm_button_text' => 'Yes, delete it!',
+ 'confirm_button_color' => '#d33',
+ 'cancel_button_text' => 'Cancel',
+ 'show_close_button' => false,
+ 'show_cancel_button' => true,
+ 'show_loader_on_confirm' => true,
+ ],
/*
|--------------------------------------------------------------------------
- | Toast position
+ | Animation Settings
|--------------------------------------------------------------------------
- | Modal window or toast position, can be 'top',
- | 'top-start', 'top-end', 'center', 'center-start',
- | 'center-end', 'bottom', 'bottom-start', or 'bottom-end'.
- | For specific modal just use the position() helper method.
+ |
+ | Custom animation using Animate.css.
|
*/
- 'toast_position' => env('SWEET_ALERT_TOAST_POSITION', 'top-end'),
+ 'animation' => [
+ 'enabled' => env('SWEET_ALERT_ANIMATION_ENABLE', false),
+ 'animatecss' => env('SWEET_ALERT_ANIMATECSS'),
+ ],
/*
|--------------------------------------------------------------------------
- | Progress Bar
+ | Theme
|--------------------------------------------------------------------------
- | If set to true, a progress bar at the bottom of a popup will be shown.
- | It can be useful with toasts.
+ |
+ | SweetAlert2 theme. Set to 'default' for the standard theme,
+ | or use any theme from @sweetalert2/theme-* package.
|
*/
- 'timer_progress_bar' => env('SWEET_ALERT_TIMER_PROGRESS_BAR', false),
+ 'theme' => env('SWEET_ALERT_THEME', 'light'),
/*
|--------------------------------------------------------------------------
- | Middleware
+ | Presets
|--------------------------------------------------------------------------
- | Modal window or toast, config for the Middleware
+ |
+ | Named presets that can be applied with ->preset('name').
+ | Each preset is an array of SweetAlert2 config options that
+ | are merged onto the current builder configuration.
+ |
+ | Example:
+ | Alert::preset('danger')->title('Oops!')->flash();
|
*/
- 'middleware' => [
-
- 'autoClose' => env('SWEET_ALERT_MIDDLEWARE_AUTO_CLOSE', true),
-
- 'toast_position' => env('SWEET_ALERT_MIDDLEWARE_TOAST_POSITION', 'top'),
-
- 'toast_close_button' => env('SWEET_ALERT_MIDDLEWARE_TOAST_CLOSE_BUTTON', true),
-
- 'timer' => env('SWEET_ALERT_MIDDLEWARE_ALERT_CLOSE_TIME', 5000),
-
- 'auto_display_error_messages' => env('SWEET_ALERT_AUTO_DISPLAY_ERROR_MESSAGES', true),
+ 'presets' => [
+ // 'danger' => [
+ // 'icon' => 'error',
+ // 'confirmButtonColor' => '#d33',
+ // 'showCancelButton' => true,
+ // ],
+ // 'success-toast' => [
+ // 'toast' => true,
+ // 'position' => 'top-end',
+ // 'icon' => 'success',
+ // 'timer' => 3000,
+ // 'timerProgressBar' => true,
+ // 'showConfirmButton' => false,
+ // ],
],
/*
|--------------------------------------------------------------------------
- | Custom Class
+ | JavaScript Source Settings
|--------------------------------------------------------------------------
- | A custom CSS class for the modal:
+ |
+ | source: 'cdn' (default), 'npm' (set never_load_js=true and manage Swal
+ | yourself via npm), 'manual' (full control, nothing injected).
+ | version: pinned SweetAlert2 version used when source='cdn'.
+ | cdn_provider: 'jsdelivr' (default), 'unpkg', 'cdnjs', 'custom'.
+ | custom_cdn_js: only used when cdn_provider='custom'.
|
*/
- 'customClass' => [
-
- 'container' => env('SWEET_ALERT_CONTAINER_CLASS'),
- 'popup' => env('SWEET_ALERT_POPUP_CLASS'),
- 'header' => env('SWEET_ALERT_HEADER_CLASS'),
- 'title' => env('SWEET_ALERT_TITLE_CLASS'),
- 'closeButton' => env('SWEET_ALERT_CLOSE_BUTTON_CLASS'),
- 'icon' => env('SWEET_ALERT_ICON_CLASS'),
- 'image' => env('SWEET_ALERT_IMAGE_CLASS'),
- 'content' => env('SWEET_ALERT_CONTENT_CLASS'),
- 'input' => env('SWEET_ALERT_INPUT_CLASS'),
- 'actions' => env('SWEET_ALERT_ACTIONS_CLASS'),
- 'confirmButton' => env('SWEET_ALERT_CONFIRM_BUTTON_CLASS'),
- 'cancelButton' => env('SWEET_ALERT_CANCEL_BUTTON_CLASS'),
- 'footer' => env('SWEET_ALERT_FOOTER_CLASS'),
+ 'js' => [
+ 'source' => env('SWEET_ALERT_JS_SOURCE', 'cdn'),
+ 'version' => env('SWEET_ALERT_VERSION', '11'),
+ 'cdn_provider' => env('SWEET_ALERT_CDN_PROVIDER', 'jsdelivr'),
+ 'custom_cdn_js' => env('SWEET_ALERT_CDN_JS'),
],
];
diff --git a/deploy.php b/deploy.php
index 535ea9a..c39a4a5 100644
--- a/deploy.php
+++ b/deploy.php
@@ -34,11 +34,15 @@
require 'recipe/laravel.php';
require __DIR__.'/vendor/austinmastlab/deployer-recipes/recipe/ssm-env.php';
+require __DIR__.'/vendor/austinmastlab/deployer-recipes/recipe/ci-artifacts.php';
require 'deploy/custom.php';
// .env is generated from SSM /digitizationacademy/{environment} by env:ssm (austinmastlab/deployer-recipes).
set('ssm_app', 'digitizationacademy');
+// supervisor:reload (deployer-recipes) updates only this site's Supervisor group
+set('supervisor_groups', ['da']);
+
// Deployment Configuration
set('repository', 'https://github.com/AustinMastLab/DigitizationAcademy.git');
set('base_path', '/data/web');
@@ -125,7 +129,7 @@
'artisan:storage:link', // Create symbolic link for storage directory
'artisan:package:discover', // Run package discovery
'artisan:horizon:publish', // Publish Laravel Horizon assets
- 'artisan:sweetalert:publish', // Publish Sweet Alert assets
+ 'artisan:alert:publish', // Publish the Sweet Alert JavaScript the alert view loads
'artisan:filament:assets',
'artisan:app:deploy-files', // Custom app deployment files
diff --git a/deploy/custom.php b/deploy/custom.php
index e94ef28..734bf85 100644
--- a/deploy/custom.php
+++ b/deploy/custom.php
@@ -76,75 +76,13 @@
/**
* Publish Sweet Alert 2 assets
- * Executes the sweetalert:publish artisan command
+ * Publishes public/vendor/sweetalert/sweet-alert.js, which the Sweet Alert view loads (public/vendor isn't in git)
*/
-desc('Publish all Sweet Alert 2 assets');
-task('artisan:sweetalert:publish', artisan('sweetalert:publish'));
+desc('Publish the Sweet Alert JavaScript');
+task('artisan:alert:publish', artisan('alert:publish --assets --force'));
-/**
- * Reload Supervisor configuration
- * Executes reread and update commands for Supervisor
- */
-desc('Reload Supervisor configuration (config-only update)');
-task('supervisor:reload', function () {
- run('sudo supervisorctl reread');
- run('sudo supervisorctl update');
-});
-
-/*
- * =============================================================================
- * CI/CD ARTIFACT DEPLOYMENT - CORE FEATURE
- * =============================================================================
- */
-
-desc('Download and extract pre-built assets from GitHub Actions');
-task('deploy:ci-artifacts', function () {
- // Environment variables automatically provided by GitHub Actions workflow
- $githubToken = $_ENV['GITHUB_TOKEN'] ?? getenv('GITHUB_TOKEN') ?? '';
- $githubSha = $_ENV['GITHUB_SHA'] ?? getenv('GITHUB_SHA') ?? '';
- $githubRepo = $_ENV['GITHUB_REPO'] ?? getenv('GITHUB_REPO') ?? 'AustinMastLab/DigitizationAcademy';
-
- // Validate required environment variables
- if (empty($githubToken) || empty($githubSha)) {
- throw new \Exception('GITHUB_TOKEN and GITHUB_SHA environment variables are required.');
- }
-
- // Artifact naming convention: digitizationacademy-{git-sha}
- $artifactName = "digitizationacademy-{$githubSha}";
- writeln("Downloading CI artifact: {$artifactName}");
-
- // Step 1: Get artifact download URL from GitHub API
- $apiUrl = "https://api.github.com/repos/{$githubRepo}/actions/artifacts";
- $response = runLocally("curl -H 'Authorization: Bearer {$githubToken}' -H 'Accept: application/vnd.github.v3+json' '{$apiUrl}?name={$artifactName}&per_page=1'");
- $artifacts = json_decode($response, true);
-
- if (empty($artifacts['artifacts'])) {
- throw new \Exception("No CI artifact found with name: {$artifactName}");
- }
-
- $downloadUrl = $artifacts['artifacts'][0]['archive_download_url'];
- cd('{{release_or_current_path}}');
-
- // Step 2: Download and extract
- run("curl -L -H 'Authorization: Bearer {$githubToken}' -H 'Accept: application/vnd.github.v3+json' '{$downloadUrl}' -o artifact.zip");
- run('unzip -o -q artifact.zip');
-
- // Step 3: Biospex-style Nesting Correction
- $nestLevelCmd = run('find . -type d -name "deployment-package" -printf "%p\\n" | wc -l');
- $nests = (int) trim($nestLevelCmd);
-
- if ($nests > 0) {
- $innermost = run('find . -type d -name "deployment-package" | sort -r | head -1');
- $innermost = trim($innermost);
- if (! empty($innermost)) {
- run("rsync -av '{$innermost}/' ./");
- run('find . -type d -name "deployment-package" -exec rm -rf {} +');
- }
- }
-
- run('rm -f artifact.zip');
- writeln('✅ CI artifacts deployed successfully (Flat structure ensured)');
-});
+// deploy:ci-artifacts, deploy:verify-structure and supervisor:reload come from
+// deployer-recipes/recipe/ci-artifacts.php (required in deploy.php).
/*
* =============================================================================
@@ -152,15 +90,6 @@
* =============================================================================
*/
-desc('Verify flat deployment structure');
-task('deploy:verify-structure', function () {
- $nestCheck = run('find {{release_path}} -type d -name "deployment-package" | wc -l');
- if ((int) trim($nestCheck) > 0) {
- throw new \Exception("Nesting detected post-deploy: {$nestCheck} dirs. Check CI artifact.");
- }
- writeln('✅ Deployment structure verified: flat and clean');
-});
-
/**
* Clear package discovery cache before running composer operations
* This prevents conflicts when packages are removed (like Nova)
diff --git a/package.json b/package.json
index dbd194d..f0c8501 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"jquery": "^4.0.0",
"laravel-mix": "^6.0.49",
"lodash": "^4.18.1",
- "postcss": "^8.5.29"
+ "postcss": "^8.5.31"
},
"packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610"
}
diff --git a/resources/css/main.css b/resources/css/main.css
index 9d12f90..8fa438c 100644
--- a/resources/css/main.css
+++ b/resources/css/main.css
@@ -1757,7 +1757,7 @@ ul.course-objectives li{
.mb--50 {
margin-bottom: 50px !important; }
-.mt--40 {
+.mb--40 {
margin-bottom: 40px !important; }
.mb--30 {
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php
index 2225d2f..8e05115 100644
--- a/resources/views/layouts/app.blade.php
+++ b/resources/views/layouts/app.blade.php
@@ -58,7 +58,7 @@ class="back-to-top"
@auth
@endauth
-@include('sweetalert::alert')
+@sweetAlert
@stack('scripts')