From 1e0e34b5b3defc2b1fbb7fc8f6f2e3703517671b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2025 03:40:56 +0000 Subject: [PATCH 01/13] Bump dependabot/fetch-metadata from 2.2.0 to 2.3.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.2.0...v2.3.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/dependabot-auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index 27c23a4..2df1631 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -13,7 +13,7 @@ jobs: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v2.2.0 + uses: dependabot/fetch-metadata@v2.3.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" From dd2042cdcd0c73960b042bbf674f488825408bc5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 03:54:43 +0000 Subject: [PATCH 02/13] Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.3.0 to 2.4.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.3.0...v2.4.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-version: 2.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/dependabot-auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index 2df1631..a3368d2 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -13,7 +13,7 @@ jobs: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v2.3.0 + uses: dependabot/fetch-metadata@v2.4.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" From 64c694e9e277b6b3b9090053f97d02b81ad4a0bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Oct 2025 03:15:08 +0000 Subject: [PATCH 03/13] Bump stefanzweifel/git-auto-commit-action from 5 to 7 Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 5 to 7. - [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases) - [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v5...v7) --- updated-dependencies: - dependency-name: stefanzweifel/git-auto-commit-action dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/php-cs-fixer.yml | 2 +- .github/workflows/update-changelog.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/php-cs-fixer.yml b/.github/workflows/php-cs-fixer.yml index 41b00b9..31ca9f8 100644 --- a/.github/workflows/php-cs-fixer.yml +++ b/.github/workflows/php-cs-fixer.yml @@ -18,6 +18,6 @@ jobs: args: --config=.php-cs-fixer.php --allow-risky=yes - name: Commit changes - uses: stefanzweifel/git-auto-commit-action@v5 + uses: stefanzweifel/git-auto-commit-action@v7 with: commit_message: Fix styling diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml index 0cdea23..d9e92e7 100644 --- a/.github/workflows/update-changelog.yml +++ b/.github/workflows/update-changelog.yml @@ -21,7 +21,7 @@ jobs: release-notes: ${{ github.event.release.body }} - name: Commit updated CHANGELOG - uses: stefanzweifel/git-auto-commit-action@v5 + uses: stefanzweifel/git-auto-commit-action@v7 with: branch: main commit_message: Update CHANGELOG From c7053b155b8d4a851b2c4005ee102dedd2554c75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 03:21:40 +0000 Subject: [PATCH 04/13] Bump actions/checkout from 4 to 6 Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/php-cs-fixer.yml | 2 +- .github/workflows/phpstan.yml | 2 +- .github/workflows/run-tests.yml | 2 +- .github/workflows/update-changelog.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/php-cs-fixer.yml b/.github/workflows/php-cs-fixer.yml index 41b00b9..a6564d0 100644 --- a/.github/workflows/php-cs-fixer.yml +++ b/.github/workflows/php-cs-fixer.yml @@ -8,7 +8,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ github.head_ref }} diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 0b2ec49..197e4eb 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -24,7 +24,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup PHP uses: shivammathur/setup-php@v2 diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index f156e20..b1c1ac8 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup PHP uses: shivammathur/setup-php@v2 diff --git a/.github/workflows/update-changelog.yml b/.github/workflows/update-changelog.yml index 0cdea23..dbcd0a8 100644 --- a/.github/workflows/update-changelog.yml +++ b/.github/workflows/update-changelog.yml @@ -10,7 +10,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: main From c3c0ef0529d33b4cbc3ee8ceb12b9d5497a84242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Ticho=C5=88?= Date: Mon, 24 Nov 2025 10:19:09 +0100 Subject: [PATCH 05/13] - Add support for reCAPTCHA v3 Enterprise in README and implementation - Introduce configurable endpoint for enterprise users - Enhance Livewire directive with reCAPTCHA enterprise integration --- README.md | 20 +++++++------ src/ValidatesRecaptcha.php | 4 ++- ...irective.recaptcha.v3-enterprise.blade.php | 29 +++++++++++++++++++ 3 files changed, 43 insertions(+), 10 deletions(-) create mode 100755 src/directive.recaptcha.v3-enterprise.blade.php diff --git a/README.md b/README.md index 4935fd5..31ae338 100755 --- a/README.md +++ b/README.md @@ -22,11 +22,12 @@ version you are going to implement. This package supports the following versions. Note that each version requires a different sitekey/secretkey pair: -| **Version** | **Docs** | **Notes** | -|----------------------|-------------------------------------------------------------------|-----------------------------| -| **v3** (recommended) | [V3 Docs](https://developers.google.com/recaptcha/docs/v3) | | -| **v2** | [V2 Docs](https://developers.google.com/recaptcha/docs/display) | | -| **v2 invisible** | [V2 Docs](https://developers.google.com/recaptcha/docs/invisible) | Use `'size' => 'invisible'` | +| **Version** | **Docs** | **Notes** | +|----------------------|-------------------------------------------------------------------|-----------------------------------| +| **v3** (recommended) | [V3 Docs](https://developers.google.com/recaptcha/docs/v3) | | +| **v3** (enterprise) | [V3 Docs](https://developers.google.com/recaptcha/docs/v3) | Use `'version' => 'v3-enterprise'` | +| **v2** | [V2 Docs](https://developers.google.com/recaptcha/docs/display) | | +| **v2 invisible** | [V2 Docs](https://developers.google.com/recaptcha/docs/invisible) | Use `'size' => 'invisible'` | Your options should reside in the `config/services.php` file: @@ -38,6 +39,7 @@ Your options should reside in the `config/services.php` file: 'secret_key' => env('GOOGLE_RECAPTCHA_SECRET_KEY'), 'version' => 'v3', 'score' => 0.5, // An integer between 0 and 1, that indicates the minimum score to pass the Captcha challenge. + 'endpoint' => 'https://www.google.com/recaptcha/api/siteverify', // For enterprise users, fill in your URL from google console (https://recaptchaenterprise.googleapis.com/v1/projects/project-name/assessments?key=API_KEY ], ], @@ -113,10 +115,10 @@ You can override any of the configuration values using: ```html @livewireRecaptcha( - version: 'v2', - siteKey: 'abcd_efgh-hijk_LMNOP', - theme: 'dark', - size: 'compact', +version: 'v2', +siteKey: 'abcd_efgh-hijk_LMNOP', +theme: 'dark', +size: 'compact', ) ``` diff --git a/src/ValidatesRecaptcha.php b/src/ValidatesRecaptcha.php index 345e7e9..fb66c2e 100755 --- a/src/ValidatesRecaptcha.php +++ b/src/ValidatesRecaptcha.php @@ -16,9 +16,11 @@ class ValidatesRecaptcha extends LivewireAttribute public function __construct( public ?string $secretKey = null, public ?float $score = null, + public ?string $endpoint = null, ) { $this->secretKey ??= config('services.google.recaptcha.secret_key'); $this->score ??= config('services.google.recaptcha.score') ?? 0.5; + $this->endpoint ??= config('services.google.recaptcha.endpoint', 'https://www.google.com/recaptcha/api/siteverify'); } /** @@ -29,7 +31,7 @@ public function __construct( public function call(array $params, Closure $returnEarly): void { if (isset($this->component->gRecaptchaResponse)) { - $response = Http::asForm()->post('https://www.google.com/recaptcha/api/siteverify', [ + $response = Http::asForm()->post($this->endpoint, [ 'secret' => $this->secretKey, 'response' => $this->component->gRecaptchaResponse, 'remoteip' => request()->ip(), diff --git a/src/directive.recaptcha.v3-enterprise.blade.php b/src/directive.recaptcha.v3-enterprise.blade.php new file mode 100755 index 0000000..5fe16b1 --- /dev/null +++ b/src/directive.recaptcha.v3-enterprise.blade.php @@ -0,0 +1,29 @@ + + From 2241948e8383094494594fda8b160ef9c344e101 Mon Sep 17 00:00:00 2001 From: Dani Winter Date: Wed, 3 Dec 2025 14:25:17 +0100 Subject: [PATCH 06/13] Add Recaptcha version 2 placeholder element to README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 4935fd5..cd50182 100755 --- a/README.md +++ b/README.md @@ -102,6 +102,10 @@ Secondly, add the new directive `wire:recaptcha` to the form element that you wa
+ + +
+
From 1a8309ce804779c0750c1dc620d222b57a69d2db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 03:31:11 +0000 Subject: [PATCH 07/13] Bump dependabot/fetch-metadata from 2.4.0 to 2.5.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.4.0 to 2.5.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.4.0...v2.5.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-version: 2.5.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/dependabot-auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index a3368d2..5bfa1ad 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -13,7 +13,7 @@ jobs: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v2.4.0 + uses: dependabot/fetch-metadata@v2.5.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" From dd5e7847f8ec8014d0985758975ed44b48e935d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 03:23:22 +0000 Subject: [PATCH 08/13] Bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.5.0 to 3.0.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.5.0...v3.0.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-version: 3.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/dependabot-auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index 5bfa1ad..372f91d 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -13,7 +13,7 @@ jobs: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v2.5.0 + uses: dependabot/fetch-metadata@v3.0.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" From 52c01af577ac6806ab220bd8b5fce0ea7637c6cf Mon Sep 17 00:00:00 2001 From: bert-w Date: Sun, 12 Apr 2026 21:58:17 +0200 Subject: [PATCH 09/13] tweak + expand tests --- README.md | 2 +- src/ValidatesRecaptcha.php | 2 + tests/CaptchaTest.php | 47 ++++++++++++++++++- tests/Fixtures/MyCustomAttributeComponent.php | 32 +++++++++++++ 4 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 tests/Fixtures/MyCustomAttributeComponent.php diff --git a/README.md b/README.md index 31ae338..0bc6c74 100755 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Your options should reside in the `config/services.php` file: 'secret_key' => env('GOOGLE_RECAPTCHA_SECRET_KEY'), 'version' => 'v3', 'score' => 0.5, // An integer between 0 and 1, that indicates the minimum score to pass the Captcha challenge. - 'endpoint' => 'https://www.google.com/recaptcha/api/siteverify', // For enterprise users, fill in your URL from google console (https://recaptchaenterprise.googleapis.com/v1/projects/project-name/assessments?key=API_KEY + 'endpoint' => 'https://www.google.com/recaptcha/api/siteverify', // For enterprise users, fill in your URL from Google Console. ], ], diff --git a/src/ValidatesRecaptcha.php b/src/ValidatesRecaptcha.php index fb66c2e..6146850 100755 --- a/src/ValidatesRecaptcha.php +++ b/src/ValidatesRecaptcha.php @@ -30,6 +30,8 @@ public function __construct( */ public function call(array $params, Closure $returnEarly): void { + assert(is_string($this->endpoint)); + if (isset($this->component->gRecaptchaResponse)) { $response = Http::asForm()->post($this->endpoint, [ 'secret' => $this->secretKey, diff --git a/tests/CaptchaTest.php b/tests/CaptchaTest.php index c3ad4ce..565bca3 100644 --- a/tests/CaptchaTest.php +++ b/tests/CaptchaTest.php @@ -2,6 +2,7 @@ namespace DutchCodingCompany\LivewireRecaptcha\Tests; +use DutchCodingCompany\LivewireRecaptcha\Tests\Fixtures\MyCustomAttributeComponent; use DutchCodingCompany\LivewireRecaptcha\Tests\Fixtures\MyTestComponent; use Illuminate\Http\Client\Request; use Illuminate\Support\Facades\Http; @@ -13,7 +14,7 @@ class CaptchaTest extends TestCase /** * @param array{0: bool, 1: array{'success': bool}} $captchaResponse */ - #[DataProvider('provideCaptchaData')] + #[DataProvider('provideDefaultAttributeData')] public function testInvalidCaptchaResponse(bool $isValid, array $captchaResponse): void { Http::fake([ @@ -45,10 +46,52 @@ public function testInvalidCaptchaResponse(bool $isValid, array $captchaResponse ); } + /** + * @param array{0: bool, 1: array{'success': bool}} $captchaResponse + */ + #[DataProvider('provideCustomAttributeData')] + public function testCustomAttributeProperties(bool $isValid, array $captchaResponse): void + { + Http::fake([ + 'https://custom.example.com/verify' => Http::response($captchaResponse), + ]); + + $testable = Livewire::test(MyCustomAttributeComponent::class) + ->set('gRecaptchaResponse', $captcha = 'mygrecaptcharesponse') + ->call('save'); + + if ($isValid) { + $testable->assertHasNoErrors(); + } else { + $testable->assertHasErrors([ + 'gRecaptchaResponse', + ]); + } + + Http::assertSent(fn (Request $request) => $request->url() === 'https://custom.example.com/verify' && + $request['secret'] === 'custom-secret-key' && + $request['response'] === $captcha && + array_key_exists('remoteip', $request->data()) + ); + } + + /** + * @return array + */ + public static function provideCustomAttributeData(): array + { + return [ + 'valid response' => [true, ['success' => true, 'score' => 0.9]], + 'valid response, score at threshold' => [true, ['success' => true, 'score' => 0.7]], + 'valid response, score below threshold' => [false, ['success' => true, 'score' => 0.5]], + 'invalid response' => [false, ['success' => false]], + ]; + } + /** * @return array */ - public static function provideCaptchaData(): array + public static function provideDefaultAttributeData(): array { return [ 'valid response' => [true, ['success' => true, 'score' => 0.9]], diff --git a/tests/Fixtures/MyCustomAttributeComponent.php b/tests/Fixtures/MyCustomAttributeComponent.php new file mode 100644 index 0000000..8850d6b --- /dev/null +++ b/tests/Fixtures/MyCustomAttributeComponent.php @@ -0,0 +1,32 @@ + Date: Sun, 12 Apr 2026 22:14:16 +0200 Subject: [PATCH 10/13] formatting --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0bc6c74..3d26234 100755 --- a/README.md +++ b/README.md @@ -115,10 +115,10 @@ You can override any of the configuration values using: ```html @livewireRecaptcha( -version: 'v2', -siteKey: 'abcd_efgh-hijk_LMNOP', -theme: 'dark', -size: 'compact', + version: 'v2', + siteKey: 'abcd_efgh-hijk_LMNOP', + theme: 'dark', + size: 'compact', ) ``` From 3298320b188cb7472bb43f41307d26b011947115 Mon Sep 17 00:00:00 2001 From: bert-w Date: Sun, 12 Apr 2026 22:33:06 +0200 Subject: [PATCH 11/13] Add Livewire v4 support + testcases --- .github/workflows/run-tests.yml | 25 +++++++++++++++---------- composer.json | 8 ++++---- src/LivewireRecaptcha.php | 8 ++++---- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index b1c1ac8..590c4df 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -12,18 +12,23 @@ on: jobs: test: - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest timeout-minutes: 5 strategy: fail-fast: false matrix: - os: [ubuntu-latest] - php: [8.3, 8.2] - laravel: [11.*] - stability: [prefer-stable] - testbench: [9.*] - - name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - ${{ matrix.os }} + php: ['8.2', '8.3', '8.4', '8.5'] + laravel: ['11.*', '12.*', '13.*'] + livewire: ['3.*', '4.*'] + include: + - laravel: '11.*' + testbench: '9.*' + - laravel: '12.*' + testbench: '10.*' + - laravel: '13.*' + testbench: '11.*' + + name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - Livewire ${{ matrix.livewire }} steps: - name: Checkout code @@ -43,8 +48,8 @@ jobs: - name: Install dependencies run: | - composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update - composer update --${{ matrix.stability }} --prefer-dist --no-interaction + composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" "livewire/livewire:${{ matrix.livewire }}" --no-interaction --no-update + composer update --prefer-stable --prefer-dist --no-interaction - name: List Installed Dependencies run: composer show -D diff --git a/composer.json b/composer.json index 9aa9f51..019279c 100755 --- a/composer.json +++ b/composer.json @@ -11,13 +11,13 @@ "license": "MIT", "require": { "php": "^8.2", - "livewire/livewire": "^3.0" + "livewire/livewire": "^3.0|^4.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.8", - "larastan/larastan": "^2.9", - "orchestra/testbench": "^9.0", - "phpunit/phpunit": "^11.1" + "larastan/larastan": "^2.9|^3.0", + "orchestra/testbench": "^9.0|^10.0", + "phpunit/phpunit": "^13.0" }, "autoload": { "psr-4": { diff --git a/src/LivewireRecaptcha.php b/src/LivewireRecaptcha.php index de203cc..55d0907 100644 --- a/src/LivewireRecaptcha.php +++ b/src/LivewireRecaptcha.php @@ -15,10 +15,10 @@ class LivewireRecaptcha * @return string */ public static function directive( - string $version = null, - string $siteKey = null, - string $theme = null, - string $size = null, + ?string $version = null, + ?string $siteKey = null, + ?string $theme = null, + ?string $size = null, ): string { $version ??= config('services.google.recaptcha.version') ?? 'v3'; From 0be7ebcbcc0ce14b562789f2c51db5a0264a012c Mon Sep 17 00:00:00 2001 From: bert-w Date: Sun, 12 Apr 2026 22:36:26 +0200 Subject: [PATCH 12/13] use phpunit 11 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 019279c..553fd6e 100755 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ "friendsofphp/php-cs-fixer": "^3.8", "larastan/larastan": "^2.9|^3.0", "orchestra/testbench": "^9.0|^10.0", - "phpunit/phpunit": "^13.0" + "phpunit/phpunit": "^11.1" }, "autoload": { "psr-4": { From 4dd79477ea1c2ac5afb3f1870a5d9108f96f4fc6 Mon Sep 17 00:00:00 2001 From: bert-w Date: Sun, 12 Apr 2026 22:40:23 +0200 Subject: [PATCH 13/13] add php8.2 exclusion for laravel 13 --- .github/workflows/run-tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 590c4df..02e8c3a 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -20,6 +20,9 @@ jobs: php: ['8.2', '8.3', '8.4', '8.5'] laravel: ['11.*', '12.*', '13.*'] livewire: ['3.*', '4.*'] + exclude: + - laravel: '13.*' + php: '8.2' include: - laravel: '11.*' testbench: '9.*'