Bump laravel/framework to ^13.0 and laravel/tinker to ^3.0 per the 12.x to 13.0 upgrade guide. php ^8.5 already satisfied the new minimum. Transitively picks up Fortify 1.37.3, Octane 2.18.0, Livewire 4.3.3, Mary 2.9.7 and Pest 4.7.5, all of which already declare ^13.0 support. Add 'serializable_classes' => false to config/cache.php. When the key is absent it defaults to null, which leaves unserialize() unrestricted; false blocks object deserialization so a leaked APP_KEY cannot be used to drive a gadget chain through the cache. Safe here as no app code uses the cache. Audited every breaking change in the guide against the codebase with no hits: VerifyCsrfToken/ValidateCsrfToken (now PreventRequestForgery), JobAttempted->exceptionOccurred, QueueBusy->$connection, pagination::default, Js::from and array_first/array_last. config/cache.php and config/database.php already used the new hyphenated prefixes, so cache keys and session cookies are unchanged and nothing invalidates on deploy. Verified: 123 tests pass (306 assertions), migrations apply cleanly, and /up, /login and the Livewire asset all serve 200 over HTTP. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
104 lines
3.3 KiB
JSON
104 lines
3.3 KiB
JSON
{
|
|
"$schema": "https://getcomposer.org/schema.json",
|
|
"name": "laravel/livewire-starter-kit",
|
|
"type": "project",
|
|
"description": "The official Laravel starter kit for Livewire.",
|
|
"keywords": [
|
|
"laravel",
|
|
"framework"
|
|
],
|
|
"license": "MIT",
|
|
"require": {
|
|
"php": "^8.5",
|
|
"laravel/fortify": "^1.30",
|
|
"laravel/framework": "^13.0",
|
|
"laravel/octane": "^2.13",
|
|
"laravel/tinker": "^3.0",
|
|
"livewire/livewire": "^4.0",
|
|
"robsontenorio/mary": "^2.7"
|
|
},
|
|
"require-dev": {
|
|
"fakerphp/faker": "^1.23",
|
|
"laravel/boost": "^2.0",
|
|
"laravel/pail": "^1.2.2",
|
|
"laravel/pint": "^1.24",
|
|
"laravel/sail": "^1.41",
|
|
"mockery/mockery": "^1.6",
|
|
"nunomaduro/collision": "^8.6",
|
|
"pestphp/pest": "^4.3",
|
|
"pestphp/pest-plugin-laravel": "^4.0"
|
|
},
|
|
"autoload": {
|
|
"psr-4": {
|
|
"App\\": "app/",
|
|
"Database\\Factories\\": "database/factories/",
|
|
"Database\\Seeders\\": "database/seeders/"
|
|
}
|
|
},
|
|
"autoload-dev": {
|
|
"psr-4": {
|
|
"Tests\\": "tests/"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"setup": [
|
|
"composer install",
|
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\"",
|
|
"@php artisan key:generate",
|
|
"@php artisan migrate --force",
|
|
"npm install",
|
|
"npm run build"
|
|
],
|
|
"dev": [
|
|
"Composer\\Config::disableProcessTimeout",
|
|
"npx concurrently -c \"#93c5fd,#c4b5fd,#fb7185,#fdba74\" \"php artisan octane:frankenphp --host=127.0.0.1 --port=8000 --watch\" \"php artisan queue:listen --tries=1 --timeout=0\" \"php artisan pail --timeout=0\" \"npm run dev\" --names=server,queue,logs,vite --kill-others"
|
|
],
|
|
"lint": [
|
|
"pint --parallel"
|
|
],
|
|
"test:lint": [
|
|
"pint --parallel --test"
|
|
],
|
|
"test": [
|
|
"@php artisan config:clear --ansi",
|
|
"@test:lint",
|
|
"@php artisan test"
|
|
],
|
|
"post-autoload-dump": [
|
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
|
"@php artisan package:discover --ansi"
|
|
],
|
|
"post-update-cmd": [
|
|
"@php artisan vendor:publish --tag=laravel-assets --ansi --force",
|
|
"@php artisan boost:update --ansi"
|
|
],
|
|
"post-root-package-install": [
|
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
|
],
|
|
"post-create-project-cmd": [
|
|
"@php artisan key:generate --ansi",
|
|
"@php -r \"file_exists('database/database.sqlite') || touch('database/database.sqlite');\"",
|
|
"@php artisan migrate --graceful --ansi"
|
|
],
|
|
"pre-package-uninstall": [
|
|
"Illuminate\\Foundation\\ComposerScripts::prePackageUninstall"
|
|
]
|
|
},
|
|
"extra": {
|
|
"laravel": {
|
|
"dont-discover": []
|
|
}
|
|
},
|
|
"config": {
|
|
"optimize-autoloader": true,
|
|
"preferred-install": "dist",
|
|
"sort-packages": true,
|
|
"allow-plugins": {
|
|
"pestphp/pest-plugin": true,
|
|
"php-http/discovery": true
|
|
}
|
|
},
|
|
"minimum-stability": "stable",
|
|
"prefer-stable": true
|
|
}
|