|
| 1 | +diff --git a/.env.example b/.env.example |
| 2 | +index 478972c2..ea0665b0 100644 |
| 3 | +--- a/.env.example |
| 4 | ++++ b/.env.example |
| 5 | +@@ -51,6 +51,7 @@ PUSHER_PORT=443 |
| 6 | + PUSHER_SCHEME=https |
| 7 | + PUSHER_APP_CLUSTER=mt1 |
| 8 | + |
| 9 | ++VITE_APP_NAME="${APP_NAME}" |
| 10 | + VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}" |
| 11 | + VITE_PUSHER_HOST="${PUSHER_HOST}" |
| 12 | + VITE_PUSHER_PORT="${PUSHER_PORT}" |
| 13 | +diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml |
| 14 | +index 8e6e9cd5..0e0c54ec 100644 |
| 15 | +--- a/.github/workflows/tests.yml |
| 16 | ++++ b/.github/workflows/tests.yml |
| 17 | +@@ -19,13 +19,13 @@ jobs: |
| 18 | + strategy: |
| 19 | + fail-fast: true |
| 20 | + matrix: |
| 21 | +- php: [8.1, 8.2] |
| 22 | ++ php: [8.1, 8.2, 8.3] |
| 23 | + |
| 24 | + name: PHP ${{ matrix.php }} |
| 25 | + |
| 26 | + steps: |
| 27 | + - name: Checkout code |
| 28 | +- uses: actions/checkout@v3 |
| 29 | ++ uses: actions/checkout@v4 |
| 30 | + |
| 31 | + - name: Setup PHP |
| 32 | + uses: shivammathur/setup-php@v2 |
| 33 | +diff --git a/CHANGELOG.md b/CHANGELOG.md |
| 34 | +index 00cda728..e8007923 100644 |
| 35 | +--- a/CHANGELOG.md |
| 36 | ++++ b/CHANGELOG.md |
| 37 | +@@ -1,6 +1,51 @@ |
| 38 | + # Release Notes |
| 39 | + |
| 40 | +-## [Unreleased](https://github.com/laravel/laravel/compare/v10.1.1...10.x) |
| 41 | ++## [Unreleased](https://github.com/laravel/laravel/compare/v10.2.7...10.x) |
| 42 | ++ |
| 43 | ++## [v10.2.7](https://github.com/laravel/laravel/compare/v10.2.6...v10.2.7) - 2023-10-31 |
| 44 | ++ |
| 45 | ++- Postmark mailer configuration update by [@ninjaparade](https://github.com/ninjaparade) in https://github.com/laravel/laravel/pull/6228 |
| 46 | ++- [10.x] Update sanctum config file by [@ahmed-aliraqi](https://github.com/ahmed-aliraqi) in https://github.com/laravel/laravel/pull/6234 |
| 47 | ++- [10.x] Let database handle default collation by [@Jubeki](https://github.com/Jubeki) in https://github.com/laravel/laravel/pull/6241 |
| 48 | ++- [10.x] Increase bcrypt rounds to 12 by [@valorin](https://github.com/valorin) in https://github.com/laravel/laravel/pull/6245 |
| 49 | ++- [10.x] Use 12 bcrypt rounds for password in UserFactory by [@Jubeki](https://github.com/Jubeki) in https://github.com/laravel/laravel/pull/6247 |
| 50 | ++- [10.x] Fix typo in the comment for token prefix (sanctum config) by [@yuters](https://github.com/yuters) in https://github.com/laravel/laravel/pull/6248 |
| 51 | ++- [10.x] Update fixture hash to match testing cost by [@timacdonald](https://github.com/timacdonald) in https://github.com/laravel/laravel/pull/6259 |
| 52 | ++- [10.x] Update minimum `laravel/sanctum` by [@crynobone](https://github.com/crynobone) in https://github.com/laravel/laravel/pull/6261 |
| 53 | ++- [10.x] Hash improvements by [@timacdonald](https://github.com/timacdonald) in https://github.com/laravel/laravel/pull/6258 |
| 54 | ++- Redis maintenance store config example contains an excess space by [@hedge-freek](https://github.com/hedge-freek) in https://github.com/laravel/laravel/pull/6264 |
| 55 | ++ |
| 56 | ++## [v10.2.6](https://github.com/laravel/laravel/compare/v10.2.5...v10.2.6) - 2023-08-10 |
| 57 | ++ |
| 58 | ++- Bump `laravel-vite-plugin` to latest version by [@adevade](https://github.com/adevade) in https://github.com/laravel/laravel/pull/6224 |
| 59 | ++ |
| 60 | ++## [v10.2.5](https://github.com/laravel/laravel/compare/v10.2.4...v10.2.5) - 2023-06-30 |
| 61 | ++ |
| 62 | ++- Allow accessing APP_NAME in Vite scope by [@domnantas](https://github.com/domnantas) in https://github.com/laravel/laravel/pull/6204 |
| 63 | ++- Omit default values for suffix in phpunit.xml by [@spawnia](https://github.com/spawnia) in https://github.com/laravel/laravel/pull/6210 |
| 64 | ++ |
| 65 | ++## [v10.2.4](https://github.com/laravel/laravel/compare/v10.2.3...v10.2.4) - 2023-06-07 |
| 66 | ++ |
| 67 | ++- Add `precognitive` key to $middlewareAliases by @emargareten in https://github.com/laravel/laravel/pull/6193 |
| 68 | ++ |
| 69 | ++## [v10.2.3](https://github.com/laravel/laravel/compare/v10.2.2...v10.2.3) - 2023-06-01 |
| 70 | ++ |
| 71 | ++- Update description by @taylorotwell in https://github.com/laravel/laravel/commit/85203d687ebba72b2805b89bba7d18dfae8f95c8 |
| 72 | ++ |
| 73 | ++## [v10.2.2](https://github.com/laravel/laravel/compare/v10.2.1...v10.2.2) - 2023-05-23 |
| 74 | ++ |
| 75 | ++- Add lock path by @taylorotwell in https://github.com/laravel/laravel/commit/a6bfbc7f90e33fd6cae3cb23f106c9689858c3b5 |
| 76 | ++ |
| 77 | ++## [v10.2.1](https://github.com/laravel/laravel/compare/v10.2.0...v10.2.1) - 2023-05-12 |
| 78 | ++ |
| 79 | ++- Add hashed cast to user password by @emargareten in https://github.com/laravel/laravel/pull/6171 |
| 80 | ++- Bring back pusher cluster config option by @jesseleite in https://github.com/laravel/laravel/pull/6174 |
| 81 | ++ |
| 82 | ++## [v10.2.0](https://github.com/laravel/laravel/compare/v10.1.1...v10.2.0) - 2023-05-05 |
| 83 | ++ |
| 84 | ++- Update welcome.blade.php by @aymanatmeh in https://github.com/laravel/laravel/pull/6163 |
| 85 | ++- Sets package.json type to module by @timacdonald in https://github.com/laravel/laravel/pull/6090 |
| 86 | ++- Add url support for mail config by @chu121su12 in https://github.com/laravel/laravel/pull/6170 |
| 87 | + |
| 88 | + ## [v10.1.1](https://github.com/laravel/laravel/compare/v10.0.7...v10.1.1) - 2023-04-18 |
| 89 | + |
| 90 | +diff --git a/README.md b/README.md |
| 91 | +index 3ed385a7..1824fc1b 100644 |
| 92 | +--- a/README.md |
| 93 | ++++ b/README.md |
| 94 | +@@ -31,23 +31,23 @@ If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Lar |
| 95 | + |
| 96 | + ## Laravel Sponsors |
| 97 | + |
| 98 | +-We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell). |
| 99 | ++We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com). |
| 100 | + |
| 101 | + ### Premium Partners |
| 102 | + |
| 103 | + - **[Vehikl](https://vehikl.com/)** |
| 104 | + - **[Tighten Co.](https://tighten.co)** |
| 105 | ++- **[WebReinvent](https://webreinvent.com/)** |
| 106 | + - **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** |
| 107 | + - **[64 Robots](https://64robots.com)** |
| 108 | +-- **[Cubet Techno Labs](https://cubettech.com)** |
| 109 | +-- **[Cyber-Duck](https://cyber-duck.co.uk)** |
| 110 | +-- **[Many](https://www.many.co.uk)** |
| 111 | +-- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)** |
| 112 | +-- **[DevSquad](https://devsquad.com)** |
| 113 | + - **[Curotec](https://www.curotec.com/services/technologies/laravel/)** |
| 114 | ++- **[Cyber-Duck](https://cyber-duck.co.uk)** |
| 115 | ++- **[DevSquad](https://devsquad.com/hire-laravel-developers)** |
| 116 | ++- **[Jump24](https://jump24.co.uk)** |
| 117 | ++- **[Redberry](https://redberry.international/laravel/)** |
| 118 | ++- **[Active Logic](https://activelogic.com)** |
| 119 | ++- **[byte5](https://byte5.de)** |
| 120 | + - **[OP.GG](https://op.gg)** |
| 121 | +-- **[WebReinvent](https://webreinvent.com/?utm_source=laravel&utm_medium=github&utm_campaign=patreon-sponsors)** |
| 122 | +-- **[Lendio](https://lendio.com)** |
| 123 | + |
| 124 | + ## Contributing |
| 125 | + |
| 126 | +diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php |
| 127 | +index 1fb53dce..494c0501 100644 |
| 128 | +--- a/app/Http/Kernel.php |
| 129 | ++++ b/app/Http/Kernel.php |
| 130 | +@@ -60,6 +60,7 @@ class Kernel extends HttpKernel |
| 131 | + 'can' => \Illuminate\Auth\Middleware\Authorize::class, |
| 132 | + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, |
| 133 | + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, |
| 134 | ++ 'precognitive' => \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class, |
| 135 | + 'signed' => \App\Http\Middleware\ValidateSignature::class, |
| 136 | + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, |
| 137 | + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, |
| 138 | +diff --git a/app/Models/User.php b/app/Models/User.php |
| 139 | +index 23b40634..4d7f70f5 100644 |
| 140 | +--- a/app/Models/User.php |
| 141 | ++++ b/app/Models/User.php |
| 142 | +@@ -40,5 +40,6 @@ class User extends Authenticatable |
| 143 | + */ |
| 144 | + protected $casts = [ |
| 145 | + 'email_verified_at' => 'datetime', |
| 146 | ++ 'password' => 'hashed', |
| 147 | + ]; |
| 148 | + } |
| 149 | +diff --git a/composer.json b/composer.json |
| 150 | +index 4ac9c6ab..8a3d72d4 100644 |
| 151 | +--- a/composer.json |
| 152 | ++++ b/composer.json |
| 153 | +@@ -1,14 +1,14 @@ |
| 154 | + { |
| 155 | + "name": "laravel/laravel", |
| 156 | + "type": "project", |
| 157 | +- "description": "The Laravel Framework.", |
| 158 | +- "keywords": ["framework", "laravel"], |
| 159 | ++ "description": "The skeleton application for the Laravel framework.", |
| 160 | ++ "keywords": ["laravel", "framework"], |
| 161 | + "license": "MIT", |
| 162 | + "require": { |
| 163 | + "php": "^8.1", |
| 164 | + "guzzlehttp/guzzle": "^7.2", |
| 165 | +- "laravel/framework": "^10.8", |
| 166 | +- "laravel/sanctum": "^3.2", |
| 167 | ++ "laravel/framework": "^10.10", |
| 168 | ++ "laravel/sanctum": "^3.3", |
| 169 | + "laravel/tinker": "^2.8" |
| 170 | + }, |
| 171 | + "require-dev": { |
| 172 | +diff --git a/config/app.php b/config/app.php |
| 173 | +index 4c231b47..9207160d 100644 |
| 174 | +--- a/config/app.php |
| 175 | ++++ b/config/app.php |
| 176 | +@@ -141,7 +141,7 @@ return [ |
| 177 | + |
| 178 | + 'maintenance' => [ |
| 179 | + 'driver' => 'file', |
| 180 | +- // 'store' => 'redis', |
| 181 | ++ // 'store' => 'redis', |
| 182 | + ], |
| 183 | + |
| 184 | + /* |
| 185 | +diff --git a/config/broadcasting.php b/config/broadcasting.php |
| 186 | +index 9e4d4aa4..24104853 100644 |
| 187 | +--- a/config/broadcasting.php |
| 188 | ++++ b/config/broadcasting.php |
| 189 | +@@ -36,6 +36,7 @@ return [ |
| 190 | + 'secret' => env('PUSHER_APP_SECRET'), |
| 191 | + 'app_id' => env('PUSHER_APP_ID'), |
| 192 | + 'options' => [ |
| 193 | ++ 'cluster' => env('PUSHER_APP_CLUSTER'), |
| 194 | + 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com', |
| 195 | + 'port' => env('PUSHER_PORT', 443), |
| 196 | + 'scheme' => env('PUSHER_SCHEME', 'https'), |
| 197 | +diff --git a/config/cache.php b/config/cache.php |
| 198 | +index 33bb2954..d4171e22 100644 |
| 199 | +--- a/config/cache.php |
| 200 | ++++ b/config/cache.php |
| 201 | +@@ -52,6 +52,7 @@ return [ |
| 202 | + 'file' => [ |
| 203 | + 'driver' => 'file', |
| 204 | + 'path' => storage_path('framework/cache/data'), |
| 205 | ++ 'lock_path' => storage_path('framework/cache/data'), |
| 206 | + ], |
| 207 | + |
| 208 | + 'memcached' => [ |
| 209 | +diff --git a/config/hashing.php b/config/hashing.php |
| 210 | +index bcd3be4c..0e8a0bb3 100644 |
| 211 | +--- a/config/hashing.php |
| 212 | ++++ b/config/hashing.php |
| 213 | +@@ -29,7 +29,8 @@ return [ |
| 214 | + */ |
| 215 | + |
| 216 | + 'bcrypt' => [ |
| 217 | +- 'rounds' => env('BCRYPT_ROUNDS', 10), |
| 218 | ++ 'rounds' => env('BCRYPT_ROUNDS', 12), |
| 219 | ++ 'verify' => true, |
| 220 | + ], |
| 221 | + |
| 222 | + /* |
| 223 | +@@ -47,6 +48,7 @@ return [ |
| 224 | + 'memory' => 65536, |
| 225 | + 'threads' => 1, |
| 226 | + 'time' => 4, |
| 227 | ++ 'verify' => true, |
| 228 | + ], |
| 229 | + |
| 230 | + ]; |
| 231 | +diff --git a/config/mail.php b/config/mail.php |
| 232 | +index e652bd02..d7416b15 100644 |
| 233 | +--- a/config/mail.php |
| 234 | ++++ b/config/mail.php |
| 235 | +@@ -59,6 +59,7 @@ return [ |
| 236 | + |
| 237 | + 'postmark' => [ |
| 238 | + 'transport' => 'postmark', |
| 239 | ++ // 'message_stream_id' => null, |
| 240 | + // 'client' => [ |
| 241 | + // 'timeout' => 5, |
| 242 | + // ], |
| 243 | +diff --git a/config/sanctum.php b/config/sanctum.php |
| 244 | +index 529cfdc9..35d75b31 100644 |
| 245 | +--- a/config/sanctum.php |
| 246 | ++++ b/config/sanctum.php |
| 247 | +@@ -41,13 +41,28 @@ return [ |
| 248 | + |-------------------------------------------------------------------------- |
| 249 | + | |
| 250 | + | This value controls the number of minutes until an issued token will be |
| 251 | +- | considered expired. If this value is null, personal access tokens do |
| 252 | +- | not expire. This won't tweak the lifetime of first-party sessions. |
| 253 | ++ | considered expired. This will override any values set in the token's |
| 254 | ++ | "expires_at" attribute, but first-party sessions are not affected. |
| 255 | + | |
| 256 | + */ |
| 257 | + |
| 258 | + 'expiration' => null, |
| 259 | + |
| 260 | ++ /* |
| 261 | ++ |-------------------------------------------------------------------------- |
| 262 | ++ | Token Prefix |
| 263 | ++ |-------------------------------------------------------------------------- |
| 264 | ++ | |
| 265 | ++ | Sanctum can prefix new tokens in order to take advantage of numerous |
| 266 | ++ | security scanning initiatives maintained by open source platforms |
| 267 | ++ | that notify developers if they commit tokens into repositories. |
| 268 | ++ | |
| 269 | ++ | See: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning |
| 270 | ++ | |
| 271 | ++ */ |
| 272 | ++ |
| 273 | ++ 'token_prefix' => env('SANCTUM_TOKEN_PREFIX', ''), |
| 274 | ++ |
| 275 | + /* |
| 276 | + |-------------------------------------------------------------------------- |
| 277 | + | Sanctum Middleware |
| 278 | +@@ -60,8 +75,9 @@ return [ |
| 279 | + */ |
| 280 | + |
| 281 | + 'middleware' => [ |
| 282 | +- 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, |
| 283 | ++ 'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class, |
| 284 | + 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, |
| 285 | ++ 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, |
| 286 | + ], |
| 287 | + |
| 288 | + ]; |
| 289 | +diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php |
| 290 | +index a6ecc0af..cde014af 100644 |
| 291 | +--- a/database/factories/UserFactory.php |
| 292 | ++++ b/database/factories/UserFactory.php |
| 293 | +@@ -3,6 +3,7 @@ |
| 294 | + namespace Database\Factories; |
| 295 | + |
| 296 | + use Illuminate\Database\Eloquent\Factories\Factory; |
| 297 | ++use Illuminate\Support\Facades\Hash; |
| 298 | + use Illuminate\Support\Str; |
| 299 | + |
| 300 | + /** |
| 301 | +@@ -10,6 +11,8 @@ use Illuminate\Support\Str; |
| 302 | + */ |
| 303 | + class UserFactory extends Factory |
| 304 | + { |
| 305 | ++ protected static ?string $password; |
| 306 | ++ |
| 307 | + /** |
| 308 | + * Define the model's default state. |
| 309 | + * |
| 310 | +@@ -21,7 +24,7 @@ class UserFactory extends Factory |
| 311 | + 'name' => fake()->name(), |
| 312 | + 'email' => fake()->unique()->safeEmail(), |
| 313 | + 'email_verified_at' => now(), |
| 314 | +- 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password |
| 315 | ++ 'password' => static::$password ??= Hash::make('password'), |
| 316 | + 'remember_token' => Str::random(10), |
| 317 | + ]; |
| 318 | + } |
| 319 | +diff --git a/package.json b/package.json |
| 320 | +index e543e0d1..0e6480f2 100644 |
| 321 | +--- a/package.json |
| 322 | ++++ b/package.json |
| 323 | +@@ -7,7 +7,7 @@ |
| 324 | + }, |
| 325 | + "devDependencies": { |
| 326 | + "axios": "^1.1.2", |
| 327 | +- "laravel-vite-plugin": "^0.7.5", |
| 328 | ++ "laravel-vite-plugin": "^0.8.0", |
| 329 | + "vite": "^4.0.0" |
| 330 | + } |
| 331 | + } |
| 332 | +diff --git a/phpunit.xml b/phpunit.xml |
| 333 | +index e9f533da..f112c0c8 100644 |
| 334 | +--- a/phpunit.xml |
| 335 | ++++ b/phpunit.xml |
| 336 | +@@ -1,20 +1,20 @@ |
| 337 | + <?xml version="1.0" encoding="UTF-8"?> |
| 338 | + <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| 339 | +- xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd" |
| 340 | ++ xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" |
| 341 | + bootstrap="vendor/autoload.php" |
| 342 | + colors="true" |
| 343 | + > |
| 344 | + <testsuites> |
| 345 | + <testsuite name="Unit"> |
| 346 | +- <directory suffix="Test.php">./tests/Unit</directory> |
| 347 | ++ <directory>tests/Unit</directory> |
| 348 | + </testsuite> |
| 349 | + <testsuite name="Feature"> |
| 350 | +- <directory suffix="Test.php">./tests/Feature</directory> |
| 351 | ++ <directory>tests/Feature</directory> |
| 352 | + </testsuite> |
| 353 | + </testsuites> |
| 354 | + <source> |
| 355 | + <include> |
| 356 | +- <directory suffix=".php">./app</directory> |
| 357 | ++ <directory>app</directory> |
| 358 | + </include> |
| 359 | + </source> |
| 360 | + <php> |
0 commit comments