deps: Composer-Update (Laravel 12.69.3, Livewire 4.4.7, Flux 2.20.1, Fortify 1.40.0), league/commonmark 2.10.3 behebt zwei Advisories; Sentry-SDKs für GlitchTip (sentry/sentry-laravel, @sentry/browser)

Livewire 4.4.7 rendert ModelNotFoundException im Testhelfer als 404 statt
sie zu werfen — zwei Tests auf assertNotFound() umgestellt, Laufzeitverhalten
unverändert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-10-05 12:52:48 +00:00
parent 448643b4d8
commit 2079dfdaa8
6 changed files with 1008 additions and 397 deletions

View file

@ -21,6 +21,7 @@
"livewire/flux-pro": "^2.1",
"livewire/volt": "^1.7.0",
"mews/purifier": "^3.4",
"sentry/sentry-laravel": "^4.28",
"spatie/laravel-permission": "^6.17",
"webklex/laravel-imap": "^6.2"
},

1289
composer.lock generated

File diff suppressed because it is too large Load diff

98
package-lock.json generated
View file

@ -4,11 +4,11 @@
"requires": true,
"packages": {
"": {
"name": "html",
"dependencies": {
"@fontsource/instrument-sans": "^5.0.0",
"@fontsource/inter": "^5.0.0",
"@fontsource/poppins": "^5.0.0",
"@sentry/browser": "^11.3.0",
"@tailwindcss/vite": "^4.0.7",
"alpinejs": "^3.14.9",
"autoprefixer": "^10.4.20",
@ -905,6 +905,96 @@
"win32"
]
},
"node_modules/@sentry/browser": {
"version": "11.3.0",
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-11.3.0.tgz",
"integrity": "sha512-CgRjeYj/Y1jBZnd/rpIgzK78FCFC5p5qJkHM9vGhxsiJ4oWzZglAQREZunHXtDKk2GusBae5/cx+Y/U3puN65Q==",
"license": "MIT",
"dependencies": {
"@sentry/browser-utils": "11.3.0",
"@sentry/conventions": "^0.25.0",
"@sentry/core": "11.3.0",
"@sentry/feedback": "11.3.0",
"@sentry/replay": "11.3.0",
"@sentry/replay-canvas": "11.3.0"
},
"engines": {
"node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0"
}
},
"node_modules/@sentry/browser-utils": {
"version": "11.3.0",
"resolved": "https://registry.npmjs.org/@sentry/browser-utils/-/browser-utils-11.3.0.tgz",
"integrity": "sha512-NlRjv0v/7nZmE7mr4Kf8+TsVfTVD7pfo4JFh8fNFWc8rHAcnBn75mMrvnaVutcgM46o2iKQyqNDuDragp0uDAA==",
"license": "MIT",
"dependencies": {
"@sentry/conventions": "^0.25.0",
"@sentry/core": "11.3.0",
"web-vitals": "^6.1.1"
},
"engines": {
"node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0"
}
},
"node_modules/@sentry/conventions": {
"version": "0.25.0",
"resolved": "https://registry.npmjs.org/@sentry/conventions/-/conventions-0.25.0.tgz",
"integrity": "sha512-7SouCAX3qx+AzLsxb6gbl3dKVWNhp2wFjdYQ/T90sGwqPPQUoZVA9YwsWwvx07hqcCiSqFW9mUAzyUftASnuhQ==",
"license": "MIT",
"engines": {
"node": ">=14"
}
},
"node_modules/@sentry/core": {
"version": "11.3.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-11.3.0.tgz",
"integrity": "sha512-ZRexUGcm/0hojTCPTb4ZoNm0wGQsHv93t2Z/E3U1w8XFakb5DKkTx+z1tBi3KXKLo9xjGlhYyiob9cF0D2MLoQ==",
"license": "MIT",
"dependencies": {
"@sentry/conventions": "^0.25.0"
},
"engines": {
"node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0"
}
},
"node_modules/@sentry/feedback": {
"version": "11.3.0",
"resolved": "https://registry.npmjs.org/@sentry/feedback/-/feedback-11.3.0.tgz",
"integrity": "sha512-V+RKyL5LavKdgjzDbaUjZwK0PKPLJVWFqPJzEeZxDnaYC4trYE7b+9VQ3ikoEMMJR26fpMHyhXCWxsiaZaaZ3g==",
"license": "MIT",
"dependencies": {
"@sentry/core": "11.3.0"
},
"engines": {
"node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0"
}
},
"node_modules/@sentry/replay": {
"version": "11.3.0",
"resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-11.3.0.tgz",
"integrity": "sha512-AkN/s+vBrKJCwzDx4UJYqXbfGBsNlRiVsxzpygb83FcXixjYpuJBgMMXs3CU3TOAQmg9+f1JSLyyK8E2Zyhl/g==",
"license": "MIT",
"dependencies": {
"@sentry/browser-utils": "11.3.0",
"@sentry/core": "11.3.0"
},
"engines": {
"node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0"
}
},
"node_modules/@sentry/replay-canvas": {
"version": "11.3.0",
"resolved": "https://registry.npmjs.org/@sentry/replay-canvas/-/replay-canvas-11.3.0.tgz",
"integrity": "sha512-69afmS8SbNKUk7ncerpM8iuylNeVz8Wn8j043+jr7+Kgy+a5Ip4Noom0ejRk0uSyNcuuCyBHify8f4ZNJgGGqw==",
"license": "MIT",
"dependencies": {
"@sentry/core": "11.3.0",
"@sentry/replay": "11.3.0"
},
"engines": {
"node": ">=20.19.0 <22.0.0 || >=22.12.0 <23.0.0 || >=23.2.0"
}
},
"node_modules/@tailwindcss/node": {
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz",
@ -2695,6 +2785,12 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/web-vitals": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-6.2.2.tgz",
"integrity": "sha512-oto5x6dLEgrRqfcWed+pZEUb2q6ikbFmqF54CRDhI/QGbn+qxC49b4C4OkbH+kb9C3a8shpFD3SgR9kRcs80ZQ==",
"license": "Apache-2.0"
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",

View file

@ -14,6 +14,7 @@
"@fontsource/instrument-sans": "^5.0.0",
"@fontsource/inter": "^5.0.0",
"@fontsource/poppins": "^5.0.0",
"@sentry/browser": "^11.3.0",
"@tailwindcss/vite": "^4.0.7",
"alpinejs": "^3.14.9",
"autoprefixer": "^10.4.20",
@ -31,4 +32,4 @@
"devDependencies": {
"cross-env": "^10.1.0"
}
}
}

View file

@ -9,7 +9,6 @@ use App\Models\PressRelease;
use App\Models\User;
use App\Services\Auth\ContactAccessService;
use Database\Seeders\RolesAndPermissionsSeeder;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\URL;
use Livewire\Volt\Volt;
@ -396,8 +395,8 @@ test('after the email basis is gone a non-author can no longer edit or correct t
// Die Korrektur-Action der Kundenseite hängt an `view` und findet die PM nicht mehr.
$this->actingAs($gone);
expect(fn () => Volt::test('customer.press-releases.show', ['id' => $published->id]))
->toThrow(ModelNotFoundException::class);
// Seit Livewire 4.4.7 als 404-Antwort statt geworfener ModelNotFoundException.
Volt::test('customer.press-releases.show', ['id' => $published->id])->assertNotFound();
});
test('an automatically upgraded manual membership falls back to member instead of being removed (E7)', function () {

View file

@ -7,7 +7,6 @@ use App\Models\PressRelease;
use App\Models\User;
use App\Services\Customer\CustomerCompanyContext;
use Database\Seeders\RolesAndPermissionsSeeder;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Storage;
@ -400,10 +399,12 @@ test('a deleted press kit contact disappears from the list and cannot be edited
->call('deleteContact', $contact->id)
->assertDontSee('Kontaktperson');
expect(fn () => LivewireVolt::test('customer.press-kits.show', ['id' => $company->id])
// Seit Livewire 4.4.7 rendert der Testhelfer ModelNotFoundException wie
// ein echter Request als 404, statt sie zu werfen.
LivewireVolt::test('customer.press-kits.show', ['id' => $company->id])
->assertDontSee('Kontaktperson')
->call('editContact', $contact->id))
->toThrow(ModelNotFoundException::class);
->call('editContact', $contact->id)
->assertNotFound();
});
test('saving or deleting a press kit contact drops the cached newsroom page', function () {