From 87b01cf26d1b5b21bdce8d60f510bef439bf5b3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Oct 2026 15:23:20 +0000 Subject: [PATCH 01/19] Bump postcss Bumps the javascript-minor-and-patch group with 1 update: [postcss](https://github.com/postcss/postcss). Updates `postcss` from 8.5.29 to 8.5.30 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.29...8.5.30) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.30 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: javascript-minor-and-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index dbd194d..93c0de2 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.30" }, "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610" } diff --git a/yarn.lock b/yarn.lock index d870845..41f54d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3624,7 +3624,7 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -nanoid@^3.3.19: +nanoid@^3.3.20: version "3.3.20" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.20.tgz#dfd4444d85aa10111ef66ba85ed72e08ba0855d8" integrity sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ== @@ -4212,12 +4212,12 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.2.15, postcss@^8.5.29: - version "8.5.29" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.29.tgz#086a0ded2c0257c71efb8c68776b477774714b4a" - integrity sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ== +postcss@^8.2.15, postcss@^8.5.30: + version "8.5.30" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.30.tgz#f76f192357d2b7026b651fd2c7baa60d05325a9e" + integrity sha512-zkd+e9S1AQHhmaBKye9zlFHWjOwVgqXl1q3ECYy8561K7qxR2cREf/STLskulBFd78k6AOFeA+ff1TtEzk9bAA== dependencies: - nanoid "^3.3.19" + nanoid "^3.3.20" picocolors "^1.1.1" source-map-js "^1.2.2" From 46f67d56a954d4c86b193812cdaa3a0fcb8256a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Oct 2026 15:23:27 +0000 Subject: [PATCH 02/19] Bump the composer-minor-and-patch group with 3 updates Bumps the composer-minor-and-patch group with 3 updates: [filament/filament](https://github.com/filamentphp/panels), [laravel/framework](https://github.com/laravel/framework) and [laravel/horizon](https://github.com/laravel/horizon). Updates `filament/filament` from 5.10.1 to 5.10.2 - [Commits](https://github.com/filamentphp/panels/compare/v5.10.1...v5.10.2) Updates `laravel/framework` from 12.69.3 to 12.70.0 - [Release notes](https://github.com/laravel/framework/releases) - [Changelog](https://github.com/laravel/framework/blob/13.x/CHANGELOG.md) - [Commits](https://github.com/laravel/framework/compare/v12.69.3...v12.70.0) Updates `laravel/horizon` from 5.50.0 to 5.50.1 - [Release notes](https://github.com/laravel/horizon/releases) - [Changelog](https://github.com/laravel/horizon/blob/5.x/CHANGELOG.md) - [Commits](https://github.com/laravel/horizon/compare/v5.50.0...v5.50.1) --- updated-dependencies: - dependency-name: filament/filament dependency-version: 5.10.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: composer-minor-and-patch - dependency-name: laravel/framework dependency-version: 12.70.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: composer-minor-and-patch - dependency-name: laravel/horizon dependency-version: 5.50.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: composer-minor-and-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 361 +++++++++++++++++++++++++------------------------- 1 file changed, 181 insertions(+), 180 deletions(-) diff --git a/composer.lock b/composer.lock index 08e7129..b2204f0 100644 --- a/composer.lock +++ b/composer.lock @@ -1293,16 +1293,16 @@ }, { "name": "filament/actions", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "8955db05154dde548e5d8ccaa0b0fdb5a3cedab5" + "reference": "48e29611aee424b66277e9f51e1d88c85be0887c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/8955db05154dde548e5d8ccaa0b0fdb5a3cedab5", - "reference": "8955db05154dde548e5d8ccaa0b0fdb5a3cedab5", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/48e29611aee424b66277e9f51e1d88c85be0887c", + "reference": "48e29611aee424b66277e9f51e1d88c85be0887c", "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-13T22:58:35+00:00" }, { "name": "filament/filament", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "15d2478ebb2eeb70bd321daa0e2a721754e67001" + "reference": "aaa2a4fc6c03e5dc2eaeac098d026b776291951a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/15d2478ebb2eeb70bd321daa0e2a721754e67001", - "reference": "15d2478ebb2eeb70bd321daa0e2a721754e67001", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/aaa2a4fc6c03e5dc2eaeac098d026b776291951a", + "reference": "aaa2a4fc6c03e5dc2eaeac098d026b776291951a", "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-13T22:49:59+00:00" }, { "name": "filament/forms", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "643d4f63dc7975832c07e3c12d206a7126375c47" + "reference": "5844d590f6f9df4a95cc1bca1b0584e8dea9c459" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/643d4f63dc7975832c07e3c12d206a7126375c47", - "reference": "643d4f63dc7975832c07e3c12d206a7126375c47", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/5844d590f6f9df4a95cc1bca1b0584e8dea9c459", + "reference": "5844d590f6f9df4a95cc1bca1b0584e8dea9c459", "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-13T22:58:09+00:00" }, { "name": "filament/infolists", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "fca1a820cbb600f0670911d0b1ceb0d0b4cc4918" + "reference": "31519c686b14800b63cbdfa2e152fea3b0173f1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/fca1a820cbb600f0670911d0b1ceb0d0b4cc4918", - "reference": "fca1a820cbb600f0670911d0b1ceb0d0b4cc4918", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/31519c686b14800b63cbdfa2e152fea3b0173f1f", + "reference": "31519c686b14800b63cbdfa2e152fea3b0173f1f", "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-13T22:50:28+00:00" }, { "name": "filament/notifications", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "dfeac53a9efe2148e7a2c64c1de25057e1f7ec08" + "reference": "814a681af512a9e4ea8ca2b76eb45304ec8629a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/dfeac53a9efe2148e7a2c64c1de25057e1f7ec08", - "reference": "dfeac53a9efe2148e7a2c64c1de25057e1f7ec08", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/814a681af512a9e4ea8ca2b76eb45304ec8629a1", + "reference": "814a681af512a9e4ea8ca2b76eb45304ec8629a1", "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-13T22:49:29+00:00" }, { "name": "filament/query-builder", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/query-builder.git", - "reference": "699dd609f7c2d286bdc956abffb33cba8f6538ef" + "reference": "8c53f99bf967ffd1f434975aa4094a58d462e37b" }, "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/8c53f99bf967ffd1f434975aa4094a58d462e37b", + "reference": "8c53f99bf967ffd1f434975aa4094a58d462e37b", "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-13T22:58:51+00:00" }, { "name": "filament/schemas", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/schemas.git", - "reference": "afd4b0d9be71dfbac83e100416f8704c8253a78b" + "reference": "c0dcdf9b81092a7ee3f1631634224b5316431a49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/schemas/zipball/afd4b0d9be71dfbac83e100416f8704c8253a78b", - "reference": "afd4b0d9be71dfbac83e100416f8704c8253a78b", + "url": "https://api.github.com/repos/filamentphp/schemas/zipball/c0dcdf9b81092a7ee3f1631634224b5316431a49", + "reference": "c0dcdf9b81092a7ee3f1631634224b5316431a49", "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-13T22:49:12+00:00" }, { "name": "filament/support", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "586a70360bf4e20f2f5f31af42b4a62cb3697518" + "reference": "012f8ea6cba350167395e08b261ba205e3a3c8aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/586a70360bf4e20f2f5f31af42b4a62cb3697518", - "reference": "586a70360bf4e20f2f5f31af42b4a62cb3697518", + "url": "https://api.github.com/repos/filamentphp/support/zipball/012f8ea6cba350167395e08b261ba205e3a3c8aa", + "reference": "012f8ea6cba350167395e08b261ba205e3a3c8aa", "shasum": "" }, "require": { @@ -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-13T22:50:23+00:00" }, { "name": "filament/tables", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "97c8ce63e8eb1d226be68e9b22360d6c7f3f8db2" + "reference": "4eb168dd947936c5606fd56bc0175245a2b173d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/97c8ce63e8eb1d226be68e9b22360d6c7f3f8db2", - "reference": "97c8ce63e8eb1d226be68e9b22360d6c7f3f8db2", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/4eb168dd947936c5606fd56bc0175245a2b173d6", + "reference": "4eb168dd947936c5606fd56bc0175245a2b173d6", "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-13T22:50:08+00:00" }, { "name": "filament/widgets", - "version": "v5.10.1", + "version": "v5.10.2", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "8d81b9b61a5e9280b169bf0f3c526465e8e675bd" + "reference": "289a91f1fec8219ff9681315db1064ebe07d0c09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/8d81b9b61a5e9280b169bf0f3c526465e8e675bd", - "reference": "8d81b9b61a5e9280b169bf0f3c526465e8e675bd", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/289a91f1fec8219ff9681315db1064ebe07d0c09", + "reference": "289a91f1fec8219ff9681315db1064ebe07d0c09", "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-13T22:59:04+00:00" }, { "name": "firebase/php-jwt", @@ -2179,22 +2179,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.15.5", + "version": "7.16.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a" + "reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a", - "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ffb62ec787050ae4fa9449cdd6b80335db69bda2", + "reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2", "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.0" }, "funding": [ { @@ -2303,20 +2303,20 @@ "type": "tidelift" } ], - "time": "2026-08-24T09:21:06+00:00" + "time": "2026-10-18T13:38:36+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.5", "source": { "type": "git", "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", - "reference": "a0e6c0420c381861e1830693c4b74bdac7f7fb5f" + "reference": "679582af39ca8caefd142046804a8e25f07aa155" }, "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/679582af39ca8caefd142046804a8e25f07aa155", + "reference": "679582af39ca8caefd142046804a8e25f07aa155", "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.5" }, - "time": "2026-09-25T11:10:42+00:00" + "time": "2026-10-14T12:55:07+00:00" }, { "name": "laravel/fortify", @@ -2724,16 +2724,16 @@ }, { "name": "laravel/framework", - "version": "v12.69.3", + "version": "v12.70.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717" + "reference": "4a4554f4d81f4095c8ff1911ec8a58144b0ed71b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/58ea544a2a80dc03c168e13a5dc9a1d176a88717", - "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717", + "url": "https://api.github.com/repos/laravel/framework/zipball/4a4554f4d81f4095c8ff1911ec8a58144b0ed71b", + "reference": "4a4554f4d81f4095c8ff1911ec8a58144b0ed71b", "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-13T13:24:10+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", @@ -3398,16 +3398,16 @@ }, { "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 +3501,7 @@ "type": "tidelift" } ], - "time": "2026-09-21T13:07:34+00:00" + "time": "2026-10-17T19:59:50+00:00" }, { "name": "league/config", @@ -3866,20 +3866,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 +3953,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 +3961,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 +4037,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 +4045,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 +4121,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,7 +4129,7 @@ "type": "github" } ], - "time": "2026-03-08T20:05:35+00:00" + "time": "2026-10-16T15:19:33+00:00" }, { "name": "livewire/livewire", @@ -6986,16 +6987,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 +7040,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 +7060,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 +7138,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 +7158,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 +7690,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 +7748,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 +7768,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 +7867,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 +7887,7 @@ "type": "tidelift" } ], - "time": "2026-09-29T14:05:16+00:00" + "time": "2026-10-14T06:44:08+00:00" }, { "name": "symfony/mailer", @@ -8972,16 +8973,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 +9014,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 +9034,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 +9205,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 +9266,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 +9286,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 +9365,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 +9385,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 +9476,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 +9542,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 +9562,7 @@ "type": "tidelift" } ], - "time": "2026-09-11T14:51:16+00:00" + "time": "2026-10-03T15:16:03+00:00" }, { "name": "symfony/translation", @@ -9822,16 +9823,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 +9877,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 +9897,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 +9964,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 +9984,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", From ffa286e70066a8d8dcd26fe2d1253a3d43265e92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Oct 2026 15:23:37 +0000 Subject: [PATCH 03/19] Bump laravel/boost from 1.8.13 to 2.10.3 Bumps [laravel/boost](https://github.com/laravel/boost) from 1.8.13 to 2.10.3. - [Release notes](https://github.com/laravel/boost/releases) - [Changelog](https://github.com/laravel/boost/blob/main/CHANGELOG.md) - [Upgrade guide](https://github.com/laravel/boost/blob/main/UPGRADE.md) - [Commits](https://github.com/laravel/boost/compare/v1.8.13...v2.10.3) --- updated-dependencies: - dependency-name: laravel/boost dependency-version: 2.10.3 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 402 ++++++++++++++++++++++++++++++-------------------- 2 files changed, 243 insertions(+), 161 deletions(-) diff --git a/composer.json b/composer.json index 9168b3e..b8d79b5 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ "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", diff --git a/composer.lock b/composer.lock index 08e7129..15f7bf0 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": "9ff5af6c291bfc70453071edf5ad6f25", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -2179,22 +2179,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.15.5", + "version": "7.16.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a" + "reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a", - "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ffb62ec787050ae4fa9449cdd6b80335db69bda2", + "reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2", "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.0" }, "funding": [ { @@ -2303,20 +2303,20 @@ "type": "tidelift" } ], - "time": "2026-08-24T09:21:06+00:00" + "time": "2026-10-18T13:38:36+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", @@ -2724,16 +2724,16 @@ }, { "name": "laravel/framework", - "version": "v12.69.3", + "version": "v12.70.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717" + "reference": "4a4554f4d81f4095c8ff1911ec8a58144b0ed71b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/58ea544a2a80dc03c168e13a5dc9a1d176a88717", - "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717", + "url": "https://api.github.com/repos/laravel/framework/zipball/4a4554f4d81f4095c8ff1911ec8a58144b0ed71b", + "reference": "4a4554f4d81f4095c8ff1911ec8a58144b0ed71b", "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,7 +2942,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-09-29T12:53:25+00:00" + "time": "2026-10-13T13:24:10+00:00" }, { "name": "laravel/horizon", @@ -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", @@ -3398,16 +3398,16 @@ }, { "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 +3501,7 @@ "type": "tidelift" } ], - "time": "2026-09-21T13:07:34+00:00" + "time": "2026-10-17T19:59:50+00:00" }, { "name": "league/config", @@ -3866,20 +3866,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 +3953,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,7 +3961,7 @@ "type": "github" } ], - "time": "2026-03-15T20:22:25+00:00" + "time": "2026-10-16T15:19:33+00:00" }, { "name": "league/uri-components", @@ -4048,16 +4049,16 @@ }, { "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 +4121,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,7 +4129,7 @@ "type": "github" } ], - "time": "2026-03-08T20:05:35+00:00" + "time": "2026-10-16T15:19:33+00:00" }, { "name": "livewire/livewire", @@ -6986,16 +6987,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 +7040,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 +7060,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 +7138,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 +7158,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 +7690,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 +7748,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 +7768,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 +7867,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 +7887,7 @@ "type": "tidelift" } ], - "time": "2026-09-29T14:05:16+00:00" + "time": "2026-10-14T06:44:08+00:00" }, { "name": "symfony/mailer", @@ -8972,16 +8973,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 +9014,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 +9034,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 +9205,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 +9266,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 +9286,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 +9365,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 +9385,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 +9476,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 +9542,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 +9562,7 @@ "type": "tidelift" } ], - "time": "2026-09-11T14:51:16+00:00" + "time": "2026-10-03T15:16:03+00:00" }, { "name": "symfony/translation", @@ -9822,16 +9823,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 +9877,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 +9897,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 +9964,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 +9984,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", @@ -10851,6 +10852,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 +11451,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 +11514,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 +11541,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 +11556,7 @@ "extra": { "laravel": { "aliases": { - "Mcp": "Laravel\\Mcp\\Server\\Facades\\Mcp" + "Mcp": "Laravel\\Mcp\\Facades\\Mcp" }, "providers": [ "Laravel\\Mcp\\Server\\McpServiceProvider" @@ -11508,7 +11589,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 +11743,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 +11801,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", @@ -14488,28 +14570,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 +14622,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 +14642,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", From 787d3ade5811721c1851b004c6a0d2b5c3da4736 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 13:34:17 +0000 Subject: [PATCH 04/19] Bump spatie/laravel-permission from 6.25.0 to 8.3.0 Bumps [spatie/laravel-permission](https://github.com/spatie/laravel-permission) from 6.25.0 to 8.3.0. - [Release notes](https://github.com/spatie/laravel-permission/releases) - [Changelog](https://github.com/spatie/laravel-permission/blob/main/CHANGELOG.md) - [Commits](https://github.com/spatie/laravel-permission/compare/6.25.0...8.3.0) --- updated-dependencies: - dependency-name: spatie/laravel-permission dependency-version: 8.3.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 190 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 140 insertions(+), 52 deletions(-) diff --git a/composer.json b/composer.json index b8d79b5..4993925 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "laravel/tinker": "^2.7", "realrashid/sweet-alert": "^v7.3.0", "spatie/laravel-honeypot": "^4.6", - "spatie/laravel-permission": "^6.0", + "spatie/laravel-permission": "^8.3", "spatie/laravel-responsecache": "^7.7" }, "require-dev": { diff --git a/composer.lock b/composer.lock index b1eef0a..586da92 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": "9ff5af6c291bfc70453071edf5ad6f25", + "content-hash": "5b731a6527287d29a0902e31f5dfda49", "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", @@ -2724,16 +2724,16 @@ }, { "name": "laravel/framework", - "version": "v12.70.0", + "version": "v12.70.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "4a4554f4d81f4095c8ff1911ec8a58144b0ed71b" + "reference": "e09fc54263d1a56cfe1709958fcbb22a4159b1e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/4a4554f4d81f4095c8ff1911ec8a58144b0ed71b", - "reference": "4a4554f4d81f4095c8ff1911ec8a58144b0ed71b", + "url": "https://api.github.com/repos/laravel/framework/zipball/e09fc54263d1a56cfe1709958fcbb22a4159b1e3", + "reference": "e09fc54263d1a56cfe1709958fcbb22a4159b1e3", "shasum": "" }, "require": { @@ -2942,7 +2942,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-10-13T13:24:10+00:00" + "time": "2026-10-21T12:55:36+00:00" }, { "name": "laravel/horizon", @@ -4314,16 +4314,16 @@ }, { "name": "nesbot/carbon", - "version": "3.14.2", + "version": "3.15.0", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "94cfc34887f07ab5c0efa07914c8f527544e3224" + "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/94cfc34887f07ab5c0efa07914c8f527544e3224", - "reference": "94cfc34887f07ab5c0efa07914c8f527544e3224", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/217d38553209bdb44e01590d9e9a2e4df8354cce", + "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce", "shasum": "" }, "require": { @@ -4333,6 +4333,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": { @@ -4415,7 +4416,7 @@ "type": "tidelift" } ], - "time": "2026-10-02T07:26:52+00:00" + "time": "2026-10-18T18:27:53+00:00" }, { "name": "nette/php-generator", @@ -4493,21 +4494,21 @@ }, { "name": "nette/schema", - "version": "v1.3.6", + "version": "v1.3.7", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "c54350438cd6914616f790a49cb424605f421562" + "reference": "c1162897273bf9499ca57924c4688a19d82c9310" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/c54350438cd6914616f790a49cb424605f421562", - "reference": "c54350438cd6914616f790a49cb424605f421562", + "url": "https://api.github.com/repos/nette/schema/zipball/c1162897273bf9499ca57924c4688a19d82c9310", + "reference": "c1162897273bf9499ca57924c4688a19d82c9310", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.5" + "php": "8.1 - 8.6" }, "require-dev": { "nette/phpstan-rules": "^1.0", @@ -4554,26 +4555,26 @@ ], "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.3.7" }, - "time": "2026-08-16T21:58:41+00:00" + "time": "2026-10-20T15:46: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", @@ -4645,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", @@ -6573,31 +6574,35 @@ }, { "name": "spatie/laravel-permission", - "version": "6.25.0", + "version": "8.3.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-permission.git", - "reference": "d7d4cb0d58616722f1afc90e0484e4825155b9b3" + "reference": "60e8ed5b2fbf043c2264433fc2680c76b8b66aa6" }, "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/60e8ed5b2fbf043c2264433fc2680c76b8b66aa6", + "reference": "60e8ed5b2fbf043c2264433fc2680c76b8b66aa6", "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": "^3.0|^4.0", + "pestphp/pest-plugin-laravel": "^3.0|^4.1", + "phpstan/phpstan": "^2.1" }, "type": "library", "extra": { @@ -6607,8 +6612,8 @@ ] }, "branch-alias": { - "dev-main": "6.x-dev", - "dev-master": "6.x-dev" + "dev-main": "8.x-dev", + "dev-master": "8.x-dev" } }, "autoload": { @@ -6631,7 +6636,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", @@ -6645,7 +6650,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.0" }, "funding": [ { @@ -6653,7 +6658,7 @@ "type": "github" } ], - "time": "2026-03-17T22:46:46+00:00" + "time": "2026-07-03T15:36:01+00:00" }, { "name": "spatie/laravel-responsecache", @@ -8888,6 +8893,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", From fb6c4dfcd8e3296ab094cc93d2ed798ba884a7d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Oct 2026 13:37:34 +0000 Subject: [PATCH 05/19] Bump laravel/tinker from 2.11.1 to 3.0.2 Bumps [laravel/tinker](https://github.com/laravel/tinker) from 2.11.1 to 3.0.2. - [Release notes](https://github.com/laravel/tinker/releases) - [Changelog](https://github.com/laravel/tinker/blob/3.x/CHANGELOG.md) - [Commits](https://github.com/laravel/tinker/compare/v2.11.1...v3.0.2) --- updated-dependencies: - dependency-name: laravel/tinker dependency-version: 3.0.2 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 33 ++++++++++++++++++--------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index 4993925..7cf36ee 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "laravel/framework": "^12.0", "laravel/horizon": "^5.48", "laravel/sanctum": "^v4.0.0", - "laravel/tinker": "^2.7", + "laravel/tinker": "^3.0", "realrashid/sweet-alert": "^v7.3.0", "spatie/laravel-honeypot": "^4.6", "spatie/laravel-permission": "^8.3", diff --git a/composer.lock b/composer.lock index 586da92..560b952 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": "5b731a6527287d29a0902e31f5dfda49", + "content-hash": "519db01af290e144eac1383fba2fc628", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -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,9 +3395,9 @@ ], "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", From 7f691cdce43787120edcc51cb1ec592580b76b6f Mon Sep 17 00:00:00 2001 From: rbruhn Date: Wed, 21 Oct 2026 09:46:37 -0400 Subject: [PATCH 06/19] Upgrade Sweet Alert to v8 --- bootstrap/app.php | 11 +- composer.json | 2 +- composer.lock | 47 ++-- config/sweetalert.php | 247 ++++++++++-------- deploy.php | 2 +- deploy/custom.php | 6 +- resources/views/layouts/app.blade.php | 2 +- .../views/vendor/sweetalert/alert.blade.php | 14 - tests/Feature/ContactFormTest.php | 15 ++ 9 files changed, 198 insertions(+), 148 deletions(-) delete mode 100644 resources/views/vendor/sweetalert/alert.blade.php 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 7cf36ee..1546038 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "laravel/horizon": "^5.48", "laravel/sanctum": "^v4.0.0", "laravel/tinker": "^3.0", - "realrashid/sweet-alert": "^v7.3.0", + "realrashid/sweet-alert": "^8.0", "spatie/laravel-honeypot": "^4.6", "spatie/laravel-permission": "^8.3", "spatie/laravel-responsecache": "^7.7" diff --git a/composer.lock b/composer.lock index 560b952..c858d57 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": "519db01af290e144eac1383fba2fc628", + "content-hash": "0ec91fb2514b20732786ca22fd5308a9", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -6134,25 +6134,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": { @@ -6181,18 +6188,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" @@ -6205,23 +6212,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", 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..6938253 100644 --- a/deploy.php +++ b/deploy.php @@ -125,7 +125,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..2925759 100644 --- a/deploy/custom.php +++ b/deploy/custom.php @@ -76,10 +76,10 @@ /** * 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 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') diff --git a/resources/views/vendor/sweetalert/alert.blade.php b/resources/views/vendor/sweetalert/alert.blade.php deleted file mode 100644 index 75c97f5..0000000 --- a/resources/views/vendor/sweetalert/alert.blade.php +++ /dev/null @@ -1,14 +0,0 @@ -@if (config('sweetalert.alwaysLoadJS') === true && config('sweetalert.neverLoadJS') === false ) - -@endif -@if (Session::has('alert.config')) - @if(config('sweetalert.animation.enable')) - - @endif - @if (config('sweetalert.alwaysLoadJS') === false && config('sweetalert.neverLoadJS') === false) - - @endif - -@endif diff --git a/tests/Feature/ContactFormTest.php b/tests/Feature/ContactFormTest.php index 6bbc7cd..6d90294 100644 --- a/tests/Feature/ContactFormTest.php +++ b/tests/Feature/ContactFormTest.php @@ -46,6 +46,21 @@ Mail::assertQueued(Contact::class); }); +it('shows the sent message as a Sweet Alert toast after redirecting', function () { + Mail::fake(); + $honeypotFields = getHoneypotFields('/contact'); + $this->travel(config('honeypot.amount_of_seconds') + 1)->seconds(); + + $response = $this->followingRedirects()->from('/contact')->post('/contact', array_merge([ + 'name' => 'John Doe', + 'email' => 'john@example.com', + 'message' => 'Hello, this is a test message.', + ], $honeypotFields)); + + $response->assertOk() + ->assertSee('vendor/sweetalert/sweet-alert.js', false) + ->assertSee('Contact message sent successfully.'); +}); it('cannot submit contact form if honeypot is tripped', function () { Mail::fake(); From 205ba733215d9fcc942f65760201b3aed4452dfb Mon Sep 17 00:00:00 2001 From: rbruhn Date: Wed, 21 Oct 2026 10:19:32 -0400 Subject: [PATCH 07/19] Call alert:publish after Composer dumps the autoloader --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 1546038..505643b 100644 --- a/composer.json +++ b/composer.json @@ -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", From 589da377aee172f55183b4d6f81189f1dc1599c4 Mon Sep 17 00:00:00 2001 From: rbruhn Date: Wed, 21 Oct 2026 20:30:46 -0400 Subject: [PATCH 08/19] Use the shared deploy tasks from deployer-recipes --- composer.json | 2 +- composer.lock | 12 ++++---- deploy.php | 4 +++ deploy/custom.php | 75 ++--------------------------------------------- 4 files changed, 13 insertions(+), 80 deletions(-) diff --git a/composer.json b/composer.json index 505643b..dfa0e5a 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "spatie/laravel-responsecache": "^7.7" }, "require-dev": { - "austinmastlab/deployer-recipes": "^1.0.1", + "austinmastlab/deployer-recipes": "^1.2.0-rc1", "barryvdh/laravel-debugbar": "^3.5", "barryvdh/laravel-ide-helper": "^v3.0.0", "deployer/deployer": "^8.0", diff --git a/composer.lock b/composer.lock index c858d57..3c3f7cd 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": "0ec91fb2514b20732786ca22fd5308a9", + "content-hash": "41889d1108bf21510f15dd43073bd51b", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -10605,16 +10605,16 @@ "packages-dev": [ { "name": "austinmastlab/deployer-recipes", - "version": "v1.1.0", + "version": "v1.2.0-rc1", "source": { "type": "git", "url": "https://github.com/AustinMastLab/deployer-recipes", - "reference": "6b1d741b3911863b6562ff28c7e9354ae688aeba" + "reference": "9622dea28fca2d50f21001ceed0794f342a1a87a" }, "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/9622dea28fca2d50f21001ceed0794f342a1a87a", + "reference": "9622dea28fca2d50f21001ceed0794f342a1a87a", "shasum": "" }, "require": { @@ -10631,7 +10631,7 @@ ], "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-21T16:43:04+00:00" }, { "name": "barryvdh/laravel-debugbar", diff --git a/deploy.php b/deploy.php index 6938253..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'); diff --git a/deploy/custom.php b/deploy/custom.php index 2925759..734bf85 100644 --- a/deploy/custom.php +++ b/deploy/custom.php @@ -81,70 +81,8 @@ 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) From 406f9bfd77cedaf3ca292501f37e29e6d2173098 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 25 Oct 2026 15:23:32 +0000 Subject: [PATCH 09/19] Bump the composer-minor-and-patch group with 3 updates Bumps the composer-minor-and-patch group with 3 updates: [filament/filament](https://github.com/filamentphp/panels), [spatie/laravel-permission](https://github.com/spatie/laravel-permission) and [spatie/laravel-ignition](https://github.com/spatie/laravel-ignition). Updates `filament/filament` from 5.10.2 to 5.10.3 - [Commits](https://github.com/filamentphp/panels/compare/v5.10.2...v5.10.3) Updates `spatie/laravel-permission` from 8.3.0 to 8.3.2 - [Release notes](https://github.com/spatie/laravel-permission/releases) - [Changelog](https://github.com/spatie/laravel-permission/blob/main/CHANGELOG.md) - [Commits](https://github.com/spatie/laravel-permission/compare/8.3.0...8.3.2) Updates `spatie/laravel-ignition` from 2.12.0 to 2.12.1 - [Release notes](https://github.com/spatie/laravel-ignition/releases) - [Changelog](https://github.com/spatie/laravel-ignition/blob/main/CHANGELOG.md) - [Commits](https://github.com/spatie/laravel-ignition/compare/2.12.0...2.12.1) --- updated-dependencies: - dependency-name: filament/filament dependency-version: 5.10.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: composer-minor-and-patch - dependency-name: spatie/laravel-permission dependency-version: 8.3.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: composer-minor-and-patch - dependency-name: spatie/laravel-ignition dependency-version: 2.12.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: composer-minor-and-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 259 +++++++++++++++++++++++++------------------------- 1 file changed, 132 insertions(+), 127 deletions(-) diff --git a/composer.lock b/composer.lock index 3c3f7cd..efbc4c3 100644 --- a/composer.lock +++ b/composer.lock @@ -1293,16 +1293,16 @@ }, { "name": "filament/actions", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "48e29611aee424b66277e9f51e1d88c85be0887c" + "reference": "99f2f89311d34fe0f3d54ef01ff7dd86e996a318" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/48e29611aee424b66277e9f51e1d88c85be0887c", - "reference": "48e29611aee424b66277e9f51e1d88c85be0887c", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/99f2f89311d34fe0f3d54ef01ff7dd86e996a318", + "reference": "99f2f89311d34fe0f3d54ef01ff7dd86e996a318", "shasum": "" }, "require": { @@ -1338,20 +1338,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:58:35+00:00" + "time": "2026-10-20T18:26:39+00:00" }, { "name": "filament/filament", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "aaa2a4fc6c03e5dc2eaeac098d026b776291951a" + "reference": "4869a1592c0ef037abc429cb9d1db62059e2d455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/aaa2a4fc6c03e5dc2eaeac098d026b776291951a", - "reference": "aaa2a4fc6c03e5dc2eaeac098d026b776291951a", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/4869a1592c0ef037abc429cb9d1db62059e2d455", + "reference": "4869a1592c0ef037abc429cb9d1db62059e2d455", "shasum": "" }, "require": { @@ -1396,20 +1396,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:49:59+00:00" + "time": "2026-10-20T18:30:51+00:00" }, { "name": "filament/forms", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "5844d590f6f9df4a95cc1bca1b0584e8dea9c459" + "reference": "7a36480602b26ee950ea8f0ce7e844aa076a7a73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/5844d590f6f9df4a95cc1bca1b0584e8dea9c459", - "reference": "5844d590f6f9df4a95cc1bca1b0584e8dea9c459", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/7a36480602b26ee950ea8f0ce7e844aa076a7a73", + "reference": "7a36480602b26ee950ea8f0ce7e844aa076a7a73", "shasum": "" }, "require": { @@ -1449,20 +1449,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:58:09+00:00" + "time": "2026-10-20T18:31:40+00:00" }, { "name": "filament/infolists", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "31519c686b14800b63cbdfa2e152fea3b0173f1f" + "reference": "9a506030fa0f80e09e9de43ae099137cee741d66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/31519c686b14800b63cbdfa2e152fea3b0173f1f", - "reference": "31519c686b14800b63cbdfa2e152fea3b0173f1f", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/9a506030fa0f80e09e9de43ae099137cee741d66", + "reference": "9a506030fa0f80e09e9de43ae099137cee741d66", "shasum": "" }, "require": { @@ -1494,20 +1494,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:50:28+00:00" + "time": "2026-10-20T18:27:56+00:00" }, { "name": "filament/notifications", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "814a681af512a9e4ea8ca2b76eb45304ec8629a1" + "reference": "940afa444265f99ecee0d54acef0cf22076f25f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/814a681af512a9e4ea8ca2b76eb45304ec8629a1", - "reference": "814a681af512a9e4ea8ca2b76eb45304ec8629a1", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/940afa444265f99ecee0d54acef0cf22076f25f3", + "reference": "940afa444265f99ecee0d54acef0cf22076f25f3", "shasum": "" }, "require": { @@ -1541,20 +1541,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:49:29+00:00" + "time": "2026-10-20T18:26:24+00:00" }, { "name": "filament/query-builder", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/query-builder.git", - "reference": "8c53f99bf967ffd1f434975aa4094a58d462e37b" + "reference": "f6b34ae663109a01198f316971ac20102b5762f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/8c53f99bf967ffd1f434975aa4094a58d462e37b", - "reference": "8c53f99bf967ffd1f434975aa4094a58d462e37b", + "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-13T22:58:51+00:00" + "time": "2026-10-20T18:27:08+00:00" }, { "name": "filament/schemas", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/schemas.git", - "reference": "c0dcdf9b81092a7ee3f1631634224b5316431a49" + "reference": "957caf8f0e373566046aff90249c6d8e3fe7e4d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/schemas/zipball/c0dcdf9b81092a7ee3f1631634224b5316431a49", - "reference": "c0dcdf9b81092a7ee3f1631634224b5316431a49", + "url": "https://api.github.com/repos/filamentphp/schemas/zipball/957caf8f0e373566046aff90249c6d8e3fe7e4d2", + "reference": "957caf8f0e373566046aff90249c6d8e3fe7e4d2", "shasum": "" }, "require": { @@ -1632,20 +1632,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:49:12+00:00" + "time": "2026-10-20T18:28:40+00:00" }, { "name": "filament/support", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "012f8ea6cba350167395e08b261ba205e3a3c8aa" + "reference": "ac059bb5443d923702c93e360f2114387ebc0813" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/012f8ea6cba350167395e08b261ba205e3a3c8aa", - "reference": "012f8ea6cba350167395e08b261ba205e3a3c8aa", + "url": "https://api.github.com/repos/filamentphp/support/zipball/ac059bb5443d923702c93e360f2114387ebc0813", + "reference": "ac059bb5443d923702c93e360f2114387ebc0813", "shasum": "" }, "require": { @@ -1692,20 +1692,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:50:23+00:00" + "time": "2026-10-20T18:30:41+00:00" }, { "name": "filament/tables", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "4eb168dd947936c5606fd56bc0175245a2b173d6" + "reference": "229f4ab851519ee22a964ab9ebfda892709750f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/4eb168dd947936c5606fd56bc0175245a2b173d6", - "reference": "4eb168dd947936c5606fd56bc0175245a2b173d6", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/229f4ab851519ee22a964ab9ebfda892709750f2", + "reference": "229f4ab851519ee22a964ab9ebfda892709750f2", "shasum": "" }, "require": { @@ -1738,20 +1738,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:50:08+00:00" + "time": "2026-10-20T18:25:22+00:00" }, { "name": "filament/widgets", - "version": "v5.10.2", + "version": "v5.10.3", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "289a91f1fec8219ff9681315db1064ebe07d0c09" + "reference": "4abd9b613824311496d86709a257747a30c30fd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/289a91f1fec8219ff9681315db1064ebe07d0c09", - "reference": "289a91f1fec8219ff9681315db1064ebe07d0c09", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/4abd9b613824311496d86709a257747a30c30fd0", + "reference": "4abd9b613824311496d86709a257747a30c30fd0", "shasum": "" }, "require": { @@ -1782,7 +1782,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-13T22:59:04+00:00" + "time": "2026-10-20T18:33:06+00:00" }, { "name": "firebase/php-jwt", @@ -2596,16 +2596,16 @@ }, { "name": "kirschbaum-development/eloquent-power-joins", - "version": "4.3.5", + "version": "4.3.6", "source": { "type": "git", "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", - "reference": "679582af39ca8caefd142046804a8e25f07aa155" + "reference": "549b642c027719b34787246f2c0121cff10adf42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/679582af39ca8caefd142046804a8e25f07aa155", - "reference": "679582af39ca8caefd142046804a8e25f07aa155", + "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.5" + "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.6" }, - "time": "2026-10-14T12:55:07+00:00" + "time": "2026-10-24T14:38:24+00:00" }, { "name": "laravel/fortify", @@ -4136,16 +4136,16 @@ }, { "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": { @@ -4200,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": [ { @@ -4208,7 +4208,7 @@ "type": "github" } ], - "time": "2026-09-28T18:12:51+00:00" + "time": "2026-10-21T12:53:46+00:00" }, { "name": "monolog/monolog", @@ -4317,16 +4317,16 @@ }, { "name": "nesbot/carbon", - "version": "3.15.0", + "version": "3.15.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce" + "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/217d38553209bdb44e01590d9e9a2e4df8354cce", - "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ce0e5636fae7d1e99856eb70cae4c719a284aa08", + "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08", "shasum": "" }, "require": { @@ -4419,25 +4419,25 @@ "type": "tidelift" } ], - "time": "2026-10-18T18:27:53+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", @@ -4475,38 +4475,35 @@ { "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.7", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "c1162897273bf9499ca57924c4688a19d82c9310" + "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/c1162897273bf9499ca57924c4688a19d82c9310", - "reference": "c1162897273bf9499ca57924c4688a19d82c9310", + "url": "https://api.github.com/repos/nette/schema/zipball/af9fa8a86bfca9b02b10346220db26e62ef942ec", + "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec", "shasum": "" }, "require": { @@ -4514,16 +4511,16 @@ "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": { @@ -4544,23 +4541,23 @@ { "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.7" + "source": "https://github.com/nette/schema/tree/v1.4.0" }, - "time": "2026-10-20T15:46:50+00:00" + "time": "2026-10-22T02:12:50+00:00" }, { "name": "nette/utils", @@ -6396,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" @@ -6443,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": [ { @@ -6451,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", @@ -6592,16 +6597,16 @@ }, { "name": "spatie/laravel-permission", - "version": "8.3.0", + "version": "8.3.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-permission.git", - "reference": "60e8ed5b2fbf043c2264433fc2680c76b8b66aa6" + "reference": "e4e906f8ca5fe10fbe4b6a81f6c4e544a01d8053" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/60e8ed5b2fbf043c2264433fc2680c76b8b66aa6", - "reference": "60e8ed5b2fbf043c2264433fc2680c76b8b66aa6", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/e4e906f8ca5fe10fbe4b6a81f6c4e544a01d8053", + "reference": "e4e906f8ca5fe10fbe4b6a81f6c4e544a01d8053", "shasum": "" }, "require": { @@ -6618,8 +6623,8 @@ "laravel/passport": "^13.0", "laravel/pint": "^1.0", "orchestra/testbench": "^10.0|^11.0", - "pestphp/pest": "^3.0|^4.0", - "pestphp/pest-plugin-laravel": "^3.0|^4.1", + "pestphp/pest": "^4.7.8|^5.3.3", + "pestphp/pest-plugin-laravel": "^4.1|^5.0.1", "phpstan/phpstan": "^2.1" }, "type": "library", @@ -6668,7 +6673,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-permission/issues", - "source": "https://github.com/spatie/laravel-permission/tree/8.3.0" + "source": "https://github.com/spatie/laravel-permission/tree/8.3.2" }, "funding": [ { @@ -6676,7 +6681,7 @@ "type": "github" } ], - "time": "2026-07-03T15:36:01+00:00" + "time": "2026-10-19T16:31:21+00:00" }, { "name": "spatie/laravel-responsecache", @@ -10149,16 +10154,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": { @@ -10198,7 +10203,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": [ { @@ -10214,7 +10219,7 @@ "type": "open_collective" } ], - "time": "2026-08-31T07:00:09+00:00" + "time": "2026-10-19T10:48:00+00:00" }, { "name": "vlucas/phpdotenv", @@ -14532,16 +14537,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": { @@ -14620,7 +14625,7 @@ "type": "github" } ], - "time": "2026-03-17T12:20:04+00:00" + "time": "2026-10-19T16:31:25+00:00" }, { "name": "staabm/side-effects-detector", From 0baa8dbedfb1a05f70a0ccac6e74dfe85adccf45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 25 Oct 2026 15:23:40 +0000 Subject: [PATCH 10/19] Bump barryvdh/laravel-debugbar from 3.16.5 to 4.4.4 Bumps [barryvdh/laravel-debugbar](https://github.com/fruitcake/laravel-debugbar) from 3.16.5 to 4.4.4. - [Release notes](https://github.com/fruitcake/laravel-debugbar/releases) - [Changelog](https://github.com/fruitcake/laravel-debugbar/blob/master/CHANGELOG.md) - [Upgrade guide](https://github.com/fruitcake/laravel-debugbar/blob/master/UPGRADE.md) - [Commits](https://github.com/fruitcake/laravel-debugbar/compare/v3.16.5...v4.4.4) --- updated-dependencies: - dependency-name: barryvdh/laravel-debugbar dependency-version: 4.4.4 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 225 +++++++++++++++++++++++++++++++++++++------------- 2 files changed, 168 insertions(+), 59 deletions(-) diff --git a/composer.json b/composer.json index dfa0e5a..201f93c 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ }, "require-dev": { "austinmastlab/deployer-recipes": "^1.2.0-rc1", - "barryvdh/laravel-debugbar": "^3.5", + "barryvdh/laravel-debugbar": "^4.4", "barryvdh/laravel-ide-helper": "^v3.0.0", "deployer/deployer": "^8.0", "fakerphp/faker": "^1.23", diff --git a/composer.lock b/composer.lock index 3c3f7cd..88d6845 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": "41889d1108bf21510f15dd43073bd51b", + "content-hash": "c824da5d9c4eb074fc8a3f435233eeb4", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -4317,16 +4317,16 @@ }, { "name": "nesbot/carbon", - "version": "3.15.0", + "version": "3.15.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce" + "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/217d38553209bdb44e01590d9e9a2e4df8354cce", - "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ce0e5636fae7d1e99856eb70cae4c719a284aa08", + "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08", "shasum": "" }, "require": { @@ -4419,7 +4419,7 @@ "type": "tidelift" } ], - "time": "2026-10-18T18:27:53+00:00" + "time": "2026-10-25T14:32:48+00:00" }, { "name": "nette/php-generator", @@ -4497,16 +4497,16 @@ }, { "name": "nette/schema", - "version": "v1.3.7", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "c1162897273bf9499ca57924c4688a19d82c9310" + "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/c1162897273bf9499ca57924c4688a19d82c9310", - "reference": "c1162897273bf9499ca57924c4688a19d82c9310", + "url": "https://api.github.com/repos/nette/schema/zipball/af9fa8a86bfca9b02b10346220db26e62ef942ec", + "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec", "shasum": "" }, "require": { @@ -4514,16 +4514,16 @@ "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": { @@ -4544,23 +4544,23 @@ { "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.7" + "source": "https://github.com/nette/schema/tree/v1.4.0" }, - "time": "2026-10-20T15:46:50+00:00" + "time": "2026-10-22T02:12:50+00:00" }, { "name": "nette/utils", @@ -10635,44 +10635,54 @@ }, { "name": "barryvdh/laravel-debugbar", - "version": "v3.16.5", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/fruitcake/laravel-debugbar.git", - "reference": "e85c0a8464da67e5b4a53a42796d46a43fc06c9a" + "reference": "02274537e13944ad1990c521bd06d0fb3578ba17" }, "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/02274537e13944ad1990c521bd06d0fb3578ba17", + "reference": "02274537e13944ad1990c521bd06d0fb3578ba17", "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": { @@ -10680,7 +10690,7 @@ "src/helpers.php" ], "psr-4": { - "Barryvdh\\Debugbar\\": "src/" + "Fruitcake\\LaravelDebugbar\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -10688,6 +10698,10 @@ "MIT" ], "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, { "name": "Barry vd. Heuvel", "email": "barryvdh@gmail.com" @@ -10695,6 +10709,7 @@ ], "description": "PHP Debugbar integration for Laravel", "keywords": [ + "barryvdh", "debug", "debugbar", "dev", @@ -10704,7 +10719,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.4" }, "funding": [ { @@ -10716,7 +10731,7 @@ "type": "github" } ], - "time": "2026-01-23T15:03:22+00:00" + "time": "2026-09-24T10:05:29+00:00" }, { "name": "barryvdh/laravel-ide-helper", @@ -12785,47 +12800,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/", @@ -12849,13 +12880,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/" + } + }, + "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": "2025-12-22T13:21:32+00:00" + "time": "2026-01-15T14:47:34+00:00" }, { "name": "phpunit/php-code-coverage", From 463db4095f61f887d4d79efd91882e044aa3f4ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 25 Oct 2026 15:23:42 +0000 Subject: [PATCH 11/19] Bump postcss Bumps the javascript-minor-and-patch group with 1 update: [postcss](https://github.com/postcss/postcss). Updates `postcss` from 8.5.30 to 8.5.31 - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.5.30...8.5.31) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.31 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: javascript-minor-and-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 93c0de2..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.30" + "postcss": "^8.5.31" }, "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610" } diff --git a/yarn.lock b/yarn.lock index 41f54d7..038ae51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4212,10 +4212,10 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.2.15, postcss@^8.5.30: - version "8.5.30" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.30.tgz#f76f192357d2b7026b651fd2c7baa60d05325a9e" - integrity sha512-zkd+e9S1AQHhmaBKye9zlFHWjOwVgqXl1q3ECYy8561K7qxR2cREf/STLskulBFd78k6AOFeA+ff1TtEzk9bAA== +postcss@^8.2.15, postcss@^8.5.31: + version "8.5.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.31.tgz#d44731fa02f8ae8371629ec7220e2ae0dbdf23ec" + integrity sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg== dependencies: nanoid "^3.3.20" picocolors "^1.1.1" From 0a8b660968c9c4a1ba984cd3722132d7229926e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 25 Oct 2026 15:23:48 +0000 Subject: [PATCH 12/19] Bump spatie/laravel-responsecache from 7.7.2 to 8.6.0 Bumps [spatie/laravel-responsecache](https://github.com/spatie/laravel-responsecache) from 7.7.2 to 8.6.0. - [Release notes](https://github.com/spatie/laravel-responsecache/releases) - [Changelog](https://github.com/spatie/laravel-responsecache/blob/main/CHANGELOG.md) - [Commits](https://github.com/spatie/laravel-responsecache/compare/7.7.2...8.6.0) --- updated-dependencies: - dependency-name: spatie/laravel-responsecache dependency-version: 8.6.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- composer.json | 2 +- composer.lock | 145 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 105 insertions(+), 42 deletions(-) diff --git a/composer.json b/composer.json index dfa0e5a..ffd8d8f 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "realrashid/sweet-alert": "^8.0", "spatie/laravel-honeypot": "^4.6", "spatie/laravel-permission": "^8.3", - "spatie/laravel-responsecache": "^7.7" + "spatie/laravel-responsecache": "^8.6" }, "require-dev": { "austinmastlab/deployer-recipes": "^1.2.0-rc1", diff --git a/composer.lock b/composer.lock index 3c3f7cd..8de76c6 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": "41889d1108bf21510f15dd43073bd51b", + "content-hash": "035dc2ee7601167a813d96fee34cef23", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -4317,16 +4317,16 @@ }, { "name": "nesbot/carbon", - "version": "3.15.0", + "version": "3.15.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce" + "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/217d38553209bdb44e01590d9e9a2e4df8354cce", - "reference": "217d38553209bdb44e01590d9e9a2e4df8354cce", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ce0e5636fae7d1e99856eb70cae4c719a284aa08", + "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08", "shasum": "" }, "require": { @@ -4419,7 +4419,7 @@ "type": "tidelift" } ], - "time": "2026-10-18T18:27:53+00:00" + "time": "2026-10-25T14:32:48+00:00" }, { "name": "nette/php-generator", @@ -4497,16 +4497,16 @@ }, { "name": "nette/schema", - "version": "v1.3.7", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "c1162897273bf9499ca57924c4688a19d82c9310" + "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/c1162897273bf9499ca57924c4688a19d82c9310", - "reference": "c1162897273bf9499ca57924c4688a19d82c9310", + "url": "https://api.github.com/repos/nette/schema/zipball/af9fa8a86bfca9b02b10346220db26e62ef942ec", + "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec", "shasum": "" }, "require": { @@ -4514,16 +4514,16 @@ "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": { @@ -4544,23 +4544,23 @@ { "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.7" + "source": "https://github.com/nette/schema/tree/v1.4.0" }, - "time": "2026-10-20T15:46:50+00:00" + "time": "2026-10-22T02:12:50+00:00" }, { "name": "nette/utils", @@ -6680,33 +6680,37 @@ }, { "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": { @@ -6747,7 +6751,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": [ { @@ -6759,7 +6764,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", From 25f916baf023722e45fce931eb81ac4b1ded91ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 25 Oct 2026 15:23:54 +0000 Subject: [PATCH 13/19] Bump austinmastlab/deployer-recipes from 1.2.0-rc1 to 1.2.0 Bumps [austinmastlab/deployer-recipes](https://github.com/AustinMastLab/deployer-recipes) from 1.2.0-rc1 to 1.2.0. - [Commits](https://github.com/AustinMastLab/deployer-recipes/compare/v1.2.0-rc1...v1.2.0) --- updated-dependencies: - dependency-name: austinmastlab/deployer-recipes dependency-version: 1.2.0 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index 3c3f7cd..caba044 100644 --- a/composer.lock +++ b/composer.lock @@ -10605,16 +10605,16 @@ "packages-dev": [ { "name": "austinmastlab/deployer-recipes", - "version": "v1.2.0-rc1", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/AustinMastLab/deployer-recipes", - "reference": "9622dea28fca2d50f21001ceed0794f342a1a87a" + "reference": "1a3c56693f52f09d079c895f6d0ba338e961eccc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AustinMastLab/deployer-recipes/zipball/9622dea28fca2d50f21001ceed0794f342a1a87a", - "reference": "9622dea28fca2d50f21001ceed0794f342a1a87a", + "url": "https://api.github.com/repos/AustinMastLab/deployer-recipes/zipball/1a3c56693f52f09d079c895f6d0ba338e961eccc", + "reference": "1a3c56693f52f09d079c895f6d0ba338e961eccc", "shasum": "" }, "require": { @@ -10631,7 +10631,7 @@ ], "type": "library", "description": "Shared Deployer recipes and AWS SSM environment tools for AustinMastLab sites", - "time": "2026-10-21T16:43:04+00:00" + "time": "2026-10-22T00:56:00+00:00" }, { "name": "barryvdh/laravel-debugbar", From b0ed3ed5a6257e3c28babf4739b9c091c7cb8627 Mon Sep 17 00:00:00 2001 From: rbruhn Date: Mon, 26 Oct 2026 15:48:46 -0400 Subject: [PATCH 14/19] Migrate responsecache config to v8 structure v8 removed DefaultSerializer and regrouped the flat config keys (cache, bypass, debug). Keep the redis store, one-day lifetime and tag-prefixed debug headers; add the new ignored query parameters and Livewire request exclusion. Adds a feature test that a public page is served from the cache. --- config/responsecache.php | 166 +++++++++++++++++++--------- tests/Feature/ResponseCacheTest.php | 53 +++++++++ 2 files changed, 165 insertions(+), 54 deletions(-) create mode 100644 tests/Feature/ResponseCacheTest.php diff --git a/config/responsecache.php b/config/responsecache.php index 6b948aa..b3eda47 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' => CacheAllSuccessfulGetRequests::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/tests/Feature/ResponseCacheTest.php b/tests/Feature/ResponseCacheTest.php new file mode 100644 index 0000000..ec0e467 --- /dev/null +++ b/tests/Feature/ResponseCacheTest.php @@ -0,0 +1,53 @@ +. + */ + +use Spatie\ResponseCache\Facades\ResponseCache; + +beforeEach(function () { + config([ + 'responsecache.enabled' => true, + 'responsecache.debug.enabled' => true, + ]); + + ResponseCache::clear(); +}); + +it('serves a public page from the response cache on the second request', function () { + $statusHeader = config('responsecache.debug.cache_status_header_name'); + + $this->get(route('home')) + ->assertOk() + ->assertHeader($statusHeader, 'MISS'); + + $this->get(route('home')) + ->assertOk() + ->assertHeader($statusHeader, 'HIT'); +}); + +it('does not serve cached pages to livewire requests', function () { + $statusHeader = config('responsecache.debug.cache_status_header_name'); + + $this->get(route('home')); + + $this->withHeader('X-Livewire', 'true') + ->get(route('home')) + ->assertOk() + ->assertHeaderMissing($statusHeader); +}); From c1c0404870ace574fbcc7c9de6ad417d295fdba5 Mon Sep 17 00:00:00 2001 From: rbruhn Date: Mon, 26 Oct 2026 15:48:46 -0400 Subject: [PATCH 15/19] Republish debugbar config for v4 The published config was the unmodified 3.x default; replace it with the v4 default so new options (jobs, http client, query limits) are present. --- config/debugbar.php | 393 +++++++++++++++++++++++++++++--------------- 1 file changed, 260 insertions(+), 133 deletions(-) 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), ]; From b4c84466779a4d87a56af6df3c400f7452343787 Mon Sep 17 00:00:00 2001 From: rbruhn Date: Mon, 26 Oct 2026 15:49:07 -0400 Subject: [PATCH 16/19] Update filament/filament to 5.11.0 Also picks up guzzlehttp/guzzle 7.16.1, vlucas/phpdotenv 5.8.0 and phpstan/phpdoc-parser 2.3.7. --- composer.lock | 134 +++++++++++++++++++++++++------------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/composer.lock b/composer.lock index b91432f..7581fb0 100644 --- a/composer.lock +++ b/composer.lock @@ -1293,16 +1293,16 @@ }, { "name": "filament/actions", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "99f2f89311d34fe0f3d54ef01ff7dd86e996a318" + "reference": "35a082b09d60b0910c2f6b43032a42936ba10483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/99f2f89311d34fe0f3d54ef01ff7dd86e996a318", - "reference": "99f2f89311d34fe0f3d54ef01ff7dd86e996a318", + "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-20T18:26:39+00:00" + "time": "2026-10-26T16:30:14+00:00" }, { "name": "filament/filament", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "4869a1592c0ef037abc429cb9d1db62059e2d455" + "reference": "fa538cd75c888133e497541d74768aaf430f90be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/4869a1592c0ef037abc429cb9d1db62059e2d455", - "reference": "4869a1592c0ef037abc429cb9d1db62059e2d455", + "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-20T18:30:51+00:00" + "time": "2026-10-26T16:29:24+00:00" }, { "name": "filament/forms", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "7a36480602b26ee950ea8f0ce7e844aa076a7a73" + "reference": "9516ec5608e21e1136f17a25e535f30b94615ced" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/7a36480602b26ee950ea8f0ce7e844aa076a7a73", - "reference": "7a36480602b26ee950ea8f0ce7e844aa076a7a73", + "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-20T18:31:40+00:00" + "time": "2026-10-26T16:30:02+00:00" }, { "name": "filament/infolists", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "9a506030fa0f80e09e9de43ae099137cee741d66" + "reference": "3bcf42cf09d08ee2172d00bd3a2565cc4ae74ce2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/9a506030fa0f80e09e9de43ae099137cee741d66", - "reference": "9a506030fa0f80e09e9de43ae099137cee741d66", + "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-20T18:27:56+00:00" + "time": "2026-10-26T16:17:20+00:00" }, { "name": "filament/notifications", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "940afa444265f99ecee0d54acef0cf22076f25f3" + "reference": "4f0e598feb7dd2809b249f1a69c2fb15b5a11d28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/940afa444265f99ecee0d54acef0cf22076f25f3", - "reference": "940afa444265f99ecee0d54acef0cf22076f25f3", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/4f0e598feb7dd2809b249f1a69c2fb15b5a11d28", + "reference": "4f0e598feb7dd2809b249f1a69c2fb15b5a11d28", "shasum": "" }, "require": { @@ -1541,11 +1541,11 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-10-20T18:26:24+00:00" + "time": "2026-10-26T16:22:53+00:00" }, { "name": "filament/query-builder", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/query-builder.git", @@ -1591,16 +1591,16 @@ }, { "name": "filament/schemas", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/schemas.git", - "reference": "957caf8f0e373566046aff90249c6d8e3fe7e4d2" + "reference": "d01d80aa2eb67508f31e33cfb4188e0257c24385" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/schemas/zipball/957caf8f0e373566046aff90249c6d8e3fe7e4d2", - "reference": "957caf8f0e373566046aff90249c6d8e3fe7e4d2", + "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-20T18:28:40+00:00" + "time": "2026-10-26T16:15:13+00:00" }, { "name": "filament/support", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "ac059bb5443d923702c93e360f2114387ebc0813" + "reference": "f4057deedf4d29e12bbccb1fff3146046497a5d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/ac059bb5443d923702c93e360f2114387ebc0813", - "reference": "ac059bb5443d923702c93e360f2114387ebc0813", + "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-20T18:30:41+00:00" + "time": "2026-10-26T16:36:54+00:00" }, { "name": "filament/tables", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "229f4ab851519ee22a964ab9ebfda892709750f2" + "reference": "d196e432e173f0d0d8c737cb87a2995552124dfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/229f4ab851519ee22a964ab9ebfda892709750f2", - "reference": "229f4ab851519ee22a964ab9ebfda892709750f2", + "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-20T18:25:22+00:00" + "time": "2026-10-26T16:30:37+00:00" }, { "name": "filament/widgets", - "version": "v5.10.3", + "version": "v5.11.0", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "4abd9b613824311496d86709a257747a30c30fd0" + "reference": "4cfc070e73a23b16e51a536b283f88a4cee009b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/4abd9b613824311496d86709a257747a30c30fd0", - "reference": "4abd9b613824311496d86709a257747a30c30fd0", + "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-20T18:33:06+00:00" + "time": "2026-10-26T16:36:37+00:00" }, { "name": "firebase/php-jwt", @@ -2179,16 +2179,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.16.0", + "version": "7.16.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2" + "reference": "81755d989b3007ca7f88a069857553cd08e7dc2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ffb62ec787050ae4fa9449cdd6b80335db69bda2", - "reference": "ffb62ec787050ae4fa9449cdd6b80335db69bda2", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/81755d989b3007ca7f88a069857553cd08e7dc2e", + "reference": "81755d989b3007ca7f88a069857553cd08e7dc2e", "shasum": "" }, "require": { @@ -2287,7 +2287,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.16.0" + "source": "https://github.com/guzzle/guzzle/tree/7.16.1" }, "funding": [ { @@ -2303,7 +2303,7 @@ "type": "tidelift" } ], - "time": "2026-10-18T13:38:36+00:00" + "time": "2026-10-25T21:35:21+00:00" }, { "name": "guzzlehttp/promises", @@ -5214,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": { @@ -5255,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", @@ -10286,16 +10286,16 @@ }, { "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": { @@ -10322,7 +10322,7 @@ "forward-command": false }, "branch-alias": { - "dev-master": "5.6-dev" + "dev-master": "5.8-dev" } }, "autoload": { @@ -10353,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": [ { @@ -10366,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", From 6adbe61f70436716260669337d89e986b86ed4a8 Mon Sep 17 00:00:00 2001 From: rbruhn Date: Thu, 29 Oct 2026 10:00:51 -0400 Subject: [PATCH 17/19] Update symfony/mime to 7.4.22 and laravel-debugbar to 4.4.5 symfony/mime 7.4.22 fixes CVE-2026-45070 (email header injection via mime parameter names). --- composer.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index 7581fb0..2ebbc81 100644 --- a/composer.lock +++ b/composer.lock @@ -8066,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": { @@ -8131,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": [ { @@ -8151,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", @@ -10703,16 +10703,16 @@ }, { "name": "barryvdh/laravel-debugbar", - "version": "v4.4.4", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/fruitcake/laravel-debugbar.git", - "reference": "02274537e13944ad1990c521bd06d0fb3578ba17" + "reference": "679c389306cd6255dbb3d2a9350d846c2e991dcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/02274537e13944ad1990c521bd06d0fb3578ba17", - "reference": "02274537e13944ad1990c521bd06d0fb3578ba17", + "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/679c389306cd6255dbb3d2a9350d846c2e991dcc", + "reference": "679c389306cd6255dbb3d2a9350d846c2e991dcc", "shasum": "" }, "require": { @@ -10787,7 +10787,7 @@ ], "support": { "issues": "https://github.com/fruitcake/laravel-debugbar/issues", - "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.4.4" + "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.4.5" }, "funding": [ { @@ -10799,7 +10799,7 @@ "type": "github" } ], - "time": "2026-09-24T10:05:29+00:00" + "time": "2026-10-28T13:25:29+00:00" }, { "name": "barryvdh/laravel-ide-helper", From 7cdc297ee405cb160655669760465deb415ce7ba Mon Sep 17 00:00:00 2001 From: rbruhn Date: Thu, 29 Oct 2026 10:35:11 -0400 Subject: [PATCH 18/19] Skip the response cache while the session has flash data After the responsecache v8 upgrade the contact page was served from the cache after submitting, so the sent toast never showed; a page rendered with a toast could also be cached for other visitors. The cache profile now neither reads nor writes the cache when the session carries flash data (toasts, validation errors, old input). --- .../SkipCacheWhenSessionHasFlash.php | 50 +++++++++++++++++++ config/responsecache.php | 4 +- tests/Feature/ResponseCacheTest.php | 18 +++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 app/Http/CacheProfiles/SkipCacheWhenSessionHasFlash.php 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/config/responsecache.php b/config/responsecache.php index b3eda47..71a4151 100644 --- a/config/responsecache.php +++ b/config/responsecache.php @@ -1,6 +1,6 @@ CacheAllSuccessfulGetRequests::class, + 'cache_profile' => SkipCacheWhenSessionHasFlash::class, /* * This class is responsible for generating a hash for a request. This hash diff --git a/tests/Feature/ResponseCacheTest.php b/tests/Feature/ResponseCacheTest.php index ec0e467..ab0d99c 100644 --- a/tests/Feature/ResponseCacheTest.php +++ b/tests/Feature/ResponseCacheTest.php @@ -18,6 +18,7 @@ * along with this program. If not, see . */ +use Illuminate\Support\Facades\Mail; use Spatie\ResponseCache\Facades\ResponseCache; beforeEach(function () { @@ -51,3 +52,20 @@ ->assertOk() ->assertHeaderMissing($statusHeader); }); + +it('shows the contact toast after redirecting to a cached contact page', function () { + Mail::fake(); + $honeypotFields = getHoneypotFields('/contact'); + $this->get('/contact')->assertHeader(config('responsecache.debug.cache_status_header_name'), 'HIT'); + $this->travel(config('honeypot.amount_of_seconds') + 1)->seconds(); + + $this->followingRedirects()->from('/contact')->post('/contact', array_merge([ + 'name' => 'John Doe', + 'email' => 'john@example.com', + 'message' => 'Hello, this is a test message.', + ], $honeypotFields)) + ->assertOk() + ->assertSee('Contact message sent successfully.'); + + $this->get('/contact')->assertDontSee('Contact message sent successfully.'); +}); From a9777bcde6901ae2985dc256c07a923951a19efd Mon Sep 17 00:00:00 2001 From: rbruhn Date: Thu, 29 Oct 2026 11:53:46 -0400 Subject: [PATCH 19/19] Fix the mb--40 spacing class so the contact Submit button clears the textarea main.css defined the class as .mt--40 while setting margin-bottom, so the mb--40 on the contact Message field matched nothing. Closes #121. --- resources/css/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 {