Improve logic around reversal / credit notes / refunds

This commit is contained in:
David Bomba 2025-09-25 09:13:49 +10:00
parent a35c817388
commit 37fc8a61d9
6 changed files with 195 additions and 161 deletions

View File

@ -86,12 +86,12 @@ class ValidRefundableRequest implements Rule
$paymentable_invoice = $payment->invoices->where('id', $invoice->id)->first(); $paymentable_invoice = $payment->invoices->where('id', $invoice->id)->first();
if (! $paymentable_invoice) { if (! $paymentable_invoice) {
$this->error_msg = ctrans('texts.invoice_not_related_to_payment', ['invoice' => $invoice->hashed_id]); $this->error_msg = ctrans('texts.invoice_not_related_to_payment', ['invoice' => $invoice->number]);
return false; return false;
} }
} else { } else {
$this->error_msg = ctrans('texts.invoice_not_related_to_payment', ['invoice' => $invoice->hashed_id]); $this->error_msg = ctrans('texts.invoice_not_related_to_payment', ['invoice' => $invoice->number]);
return false; return false;
} }

View File

@ -75,7 +75,7 @@ class ValidRefundableInvoices implements Rule
if ($val['invoice_id'] == $invoice->id) { if ($val['invoice_id'] == $invoice->id) {
$pivot_record = $payment->paymentables->where('paymentable_id', $invoice->id)->first(); $pivot_record = $payment->paymentables->where('paymentable_id', $invoice->id)->first();
if ($val['amount'] > ($pivot_record->amount - $pivot_record->refunded)) { if ($pivot_record && $val['amount'] > ($pivot_record->amount - $pivot_record->refunded)) {
$this->error_msg = ctrans('texts.attempted_refund_failed', ['amount' => $val['amount'], 'refundable_amount' => ($pivot_record->amount - $pivot_record->refunded)]); $this->error_msg = ctrans('texts.attempted_refund_failed', ['amount' => $val['amount'], 'refundable_amount' => ($pivot_record->amount - $pivot_record->refunded)]);
return false; return false;

View File

@ -91,7 +91,7 @@ class CreditService
{ {
if ((int) $this->credit->balance == 0) { if ((int) $this->credit->balance == 0) {
$this->credit->status_id = Credit::STATUS_APPLIED; $this->credit->status_id = Credit::STATUS_APPLIED;
} elseif ((string) $this->credit->amount == (string) $this->credit->balance) { } elseif ((string) round($this->credit->amount, 2) == (string) round($this->credit->balance, 2)) {
$this->credit->status_id = Credit::STATUS_SENT; $this->credit->status_id = Credit::STATUS_SENT;
} elseif ($this->credit->balance > 0) { } elseif ($this->credit->balance > 0) {
$this->credit->status_id = Credit::STATUS_PARTIAL; $this->credit->status_id = Credit::STATUS_PARTIAL;

View File

@ -33,6 +33,8 @@ class RefundPayment
private string $refund_failed_message = ''; private string $refund_failed_message = '';
private bool $refund_reversed_invoice = false; //handles reversal of invoices => refund payment => credits => client paid to date.
public function __construct(public Payment $payment, public array $refund_data) public function __construct(public Payment $payment, public array $refund_data)
{ {
} }
@ -228,14 +230,21 @@ class RefundPayment
foreach ($this->payment->credits as $paymentable_credit) { foreach ($this->payment->credits as $paymentable_credit) {
$available_credit = $paymentable_credit->pivot->amount - $paymentable_credit->pivot->refunded; $available_credit = $paymentable_credit->pivot->amount - $paymentable_credit->pivot->refunded;
$multiplier = $paymentable_credit->invoice_id ? -1 : 1; //where this is a reversed invoice, we need to reverse the multiplier to avoid double counting the paid to date.
if($paymentable_credit->invoice_id){
$this->refund_reversed_invoice = true;
}
if ($available_credit > $amount_to_refund) { if ($available_credit > $amount_to_refund) {
$paymentable_credit->pivot->refunded += $amount_to_refund; $paymentable_credit->pivot->refunded += $amount_to_refund;
$paymentable_credit->pivot->save(); $paymentable_credit->pivot->save();
$paymentable_credit->service() $paymentable_credit->service()
->setStatus(Credit::STATUS_SENT) ->setStatus(Credit::STATUS_SENT)
->adjustBalance($amount_to_refund) ->adjustBalance($amount_to_refund * $multiplier)
->updatePaidToDate($amount_to_refund * -1) ->updatePaidToDate(($amount_to_refund * -1) * $multiplier)
->setCalculatedStatus()
->save(); ->save();
@ -248,8 +257,9 @@ class RefundPayment
$paymentable_credit->service() $paymentable_credit->service()
->setStatus(Credit::STATUS_SENT) ->setStatus(Credit::STATUS_SENT)
->adjustBalance($available_credit) ->adjustBalance($available_credit * $multiplier)
->updatePaidToDate($available_credit * -1) ->updatePaidToDate(($available_credit * -1) * $multiplier)
->setCalculatedStatus()
->save(); ->save();
$this->credits_used += $available_credit; $this->credits_used += $available_credit;
@ -324,8 +334,14 @@ class RefundPayment
$client->restore(); $client->restore();
} }
if($this->refund_reversed_invoice){
$net_refund = ($this->total_refund - $this->credits_used);
$client->service()->updatePaidToDate(-1 * $net_refund)->adjustCreditBalance($net_refund*-1)->save();
}
else{
$client->service()->updatePaidToDate(-1 * $this->total_refund)->save(); $client->service()->updatePaidToDate(-1 * $this->total_refund)->save();
} }
}
return $this; return $this;
} }

316
composer.lock generated
View File

@ -496,16 +496,16 @@
}, },
{ {
"name": "aws/aws-sdk-php", "name": "aws/aws-sdk-php",
"version": "3.337.3", "version": "3.356.25",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/aws/aws-sdk-php.git", "url": "https://github.com/aws/aws-sdk-php.git",
"reference": "06dfc8f76423b49aaa181debd25bbdc724c346d6" "reference": "d78bd3b221890aac679ec3b6cb5abcb01fd42699"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/06dfc8f76423b49aaa181debd25bbdc724c346d6", "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/d78bd3b221890aac679ec3b6cb5abcb01fd42699",
"reference": "06dfc8f76423b49aaa181debd25bbdc724c346d6", "reference": "d78bd3b221890aac679ec3b6cb5abcb01fd42699",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -513,31 +513,30 @@
"ext-json": "*", "ext-json": "*",
"ext-pcre": "*", "ext-pcre": "*",
"ext-simplexml": "*", "ext-simplexml": "*",
"guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", "guzzlehttp/guzzle": "^7.4.5",
"guzzlehttp/promises": "^1.4.0 || ^2.0", "guzzlehttp/promises": "^2.0",
"guzzlehttp/psr7": "^1.9.1 || ^2.4.5", "guzzlehttp/psr7": "^2.4.5",
"mtdowling/jmespath.php": "^2.6", "mtdowling/jmespath.php": "^2.8.0",
"php": ">=7.2.5", "php": ">=8.1",
"psr/http-message": "^1.0 || ^2.0" "psr/http-message": "^1.0 || ^2.0"
}, },
"require-dev": { "require-dev": {
"andrewsville/php-token-reflection": "^1.4", "andrewsville/php-token-reflection": "^1.4",
"aws/aws-php-sns-message-validator": "~1.0", "aws/aws-php-sns-message-validator": "~1.0",
"behat/behat": "~3.0", "behat/behat": "~3.0",
"composer/composer": "^1.10.22", "composer/composer": "^2.7.8",
"dms/phpunit-arraysubset-asserts": "^0.4.0", "dms/phpunit-arraysubset-asserts": "^0.4.0",
"doctrine/cache": "~1.4", "doctrine/cache": "~1.4",
"ext-dom": "*", "ext-dom": "*",
"ext-openssl": "*", "ext-openssl": "*",
"ext-pcntl": "*", "ext-pcntl": "*",
"ext-sockets": "*", "ext-sockets": "*",
"nette/neon": "^2.3",
"paragonie/random_compat": ">= 2",
"phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
"psr/cache": "^1.0 || ^2.0 || ^3.0", "psr/cache": "^2.0 || ^3.0",
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0", "psr/simple-cache": "^2.0 || ^3.0",
"sebastian/comparator": "^1.2.3 || ^4.0", "sebastian/comparator": "^1.2.3 || ^4.0 || ^5.0",
"yoast/phpunit-polyfills": "^1.0" "symfony/filesystem": "^v6.4.0 || ^v7.1.0",
"yoast/phpunit-polyfills": "^2.0"
}, },
"suggest": { "suggest": {
"aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
@ -586,11 +585,11 @@
"sdk" "sdk"
], ],
"support": { "support": {
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "forum": "https://github.com/aws/aws-sdk-php/discussions",
"issues": "https://github.com/aws/aws-sdk-php/issues", "issues": "https://github.com/aws/aws-sdk-php/issues",
"source": "https://github.com/aws/aws-sdk-php/tree/3.337.3" "source": "https://github.com/aws/aws-sdk-php/tree/3.356.25"
}, },
"time": "2025-01-21T19:10:05+00:00" "time": "2025-09-24T18:08:25+00:00"
}, },
{ {
"name": "babenkoivan/elastic-adapter", "name": "babenkoivan/elastic-adapter",
@ -1650,16 +1649,16 @@
}, },
{ {
"name": "dasprid/enum", "name": "dasprid/enum",
"version": "1.0.6", "version": "1.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/DASPRiD/Enum.git", "url": "https://github.com/DASPRiD/Enum.git",
"reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90" "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/DASPRiD/Enum/zipball/8dfd07c6d2cf31c8da90c53b83c026c7696dda90", "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
"reference": "8dfd07c6d2cf31c8da90c53b83c026c7696dda90", "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1694,9 +1693,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/DASPRiD/Enum/issues", "issues": "https://github.com/DASPRiD/Enum/issues",
"source": "https://github.com/DASPRiD/Enum/tree/1.0.6" "source": "https://github.com/DASPRiD/Enum/tree/1.0.7"
}, },
"time": "2024-08-09T14:30:48+00:00" "time": "2025-09-16T12:23:56+00:00"
}, },
{ {
"name": "dflydev/dot-access-data", "name": "dflydev/dot-access-data",
@ -2060,16 +2059,16 @@
}, },
{ {
"name": "dompdf/dompdf", "name": "dompdf/dompdf",
"version": "v3.1.0", "version": "v3.1.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/dompdf/dompdf.git", "url": "https://github.com/dompdf/dompdf.git",
"reference": "a51bd7a063a65499446919286fb18b518177155a" "reference": "b3493e35d31a5e76ec24c3b64a29b0034b2f32a6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/dompdf/dompdf/zipball/a51bd7a063a65499446919286fb18b518177155a", "url": "https://api.github.com/repos/dompdf/dompdf/zipball/b3493e35d31a5e76ec24c3b64a29b0034b2f32a6",
"reference": "a51bd7a063a65499446919286fb18b518177155a", "reference": "b3493e35d31a5e76ec24c3b64a29b0034b2f32a6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2118,9 +2117,9 @@
"homepage": "https://github.com/dompdf/dompdf", "homepage": "https://github.com/dompdf/dompdf",
"support": { "support": {
"issues": "https://github.com/dompdf/dompdf/issues", "issues": "https://github.com/dompdf/dompdf/issues",
"source": "https://github.com/dompdf/dompdf/tree/v3.1.0" "source": "https://github.com/dompdf/dompdf/tree/v3.1.2"
}, },
"time": "2025-01-15T14:09:04+00:00" "time": "2025-09-23T03:06:41+00:00"
}, },
{ {
"name": "dompdf/php-font-lib", "name": "dompdf/php-font-lib",
@ -3037,20 +3036,20 @@
}, },
{ {
"name": "google/apiclient-services", "name": "google/apiclient-services",
"version": "v0.411.0", "version": "v0.413.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/google-api-php-client-services.git", "url": "https://github.com/googleapis/google-api-php-client-services.git",
"reference": "3d616fcefdb8e6c598b2d007d4155fe516b91abd" "reference": "8c8f936b85a50d658c50fbfd4331cfd5144c473f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/3d616fcefdb8e6c598b2d007d4155fe516b91abd", "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/8c8f936b85a50d658c50fbfd4331cfd5144c473f",
"reference": "3d616fcefdb8e6c598b2d007d4155fe516b91abd", "reference": "8c8f936b85a50d658c50fbfd4331cfd5144c473f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^8.0" "php": "^8.1"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^9.6" "phpunit/phpunit": "^9.6"
@ -3075,29 +3074,29 @@
], ],
"support": { "support": {
"issues": "https://github.com/googleapis/google-api-php-client-services/issues", "issues": "https://github.com/googleapis/google-api-php-client-services/issues",
"source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.411.0" "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.413.0"
}, },
"time": "2025-09-05T20:24:02+00:00" "time": "2025-09-22T00:58:25+00:00"
}, },
{ {
"name": "google/auth", "name": "google/auth",
"version": "v1.47.1", "version": "v1.48.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/google-auth-library-php.git", "url": "https://github.com/googleapis/google-auth-library-php.git",
"reference": "d7a0a215ec42ca0c8cb40e9ae0c5960aa9a024b7" "reference": "3053a5bfe284538419d4fee8c9df148488db6d30"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/d7a0a215ec42ca0c8cb40e9ae0c5960aa9a024b7", "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/3053a5bfe284538419d4fee8c9df148488db6d30",
"reference": "d7a0a215ec42ca0c8cb40e9ae0c5960aa9a024b7", "reference": "3053a5bfe284538419d4fee8c9df148488db6d30",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"firebase/php-jwt": "^6.0", "firebase/php-jwt": "^6.0",
"guzzlehttp/guzzle": "^7.4.5", "guzzlehttp/guzzle": "^7.4.5",
"guzzlehttp/psr7": "^2.4.5", "guzzlehttp/psr7": "^2.4.5",
"php": "^8.0", "php": "^8.1",
"psr/cache": "^2.0||^3.0", "psr/cache": "^2.0||^3.0",
"psr/http-message": "^1.1||^2.0", "psr/http-message": "^1.1||^2.0",
"psr/log": "^3.0" "psr/log": "^3.0"
@ -3109,7 +3108,7 @@
"phpspec/prophecy-phpunit": "^2.1", "phpspec/prophecy-phpunit": "^2.1",
"phpunit/phpunit": "^9.6", "phpunit/phpunit": "^9.6",
"sebastian/comparator": ">=1.2.3", "sebastian/comparator": ">=1.2.3",
"squizlabs/php_codesniffer": "^3.5", "squizlabs/php_codesniffer": "^4.0",
"symfony/process": "^6.0||^7.0", "symfony/process": "^6.0||^7.0",
"webmozart/assert": "^1.11" "webmozart/assert": "^1.11"
}, },
@ -3136,9 +3135,9 @@
"support": { "support": {
"docs": "https://cloud.google.com/php/docs/reference/auth/latest", "docs": "https://cloud.google.com/php/docs/reference/auth/latest",
"issues": "https://github.com/googleapis/google-auth-library-php/issues", "issues": "https://github.com/googleapis/google-auth-library-php/issues",
"source": "https://github.com/googleapis/google-auth-library-php/tree/v1.47.1" "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.48.0"
}, },
"time": "2025-07-09T15:26:02+00:00" "time": "2025-09-16T22:09:18+00:00"
}, },
{ {
"name": "graham-campbell/result-type", "name": "graham-campbell/result-type",
@ -5295,16 +5294,16 @@
}, },
{ {
"name": "laravel/octane", "name": "laravel/octane",
"version": "v2.12.1", "version": "v2.12.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/octane.git", "url": "https://github.com/laravel/octane.git",
"reference": "4ca38b90d76f31b8c1e27873316c2db34450151c" "reference": "172e61d0b4dd9db263a59ff66213fa2d68f23dbf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/octane/zipball/4ca38b90d76f31b8c1e27873316c2db34450151c", "url": "https://api.github.com/repos/laravel/octane/zipball/172e61d0b4dd9db263a59ff66213fa2d68f23dbf",
"reference": "4ca38b90d76f31b8c1e27873316c2db34450151c", "reference": "172e61d0b4dd9db263a59ff66213fa2d68f23dbf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5381,20 +5380,20 @@
"issues": "https://github.com/laravel/octane/issues", "issues": "https://github.com/laravel/octane/issues",
"source": "https://github.com/laravel/octane" "source": "https://github.com/laravel/octane"
}, },
"time": "2025-07-25T15:03:05+00:00" "time": "2025-09-23T13:39:52+00:00"
}, },
{ {
"name": "laravel/prompts", "name": "laravel/prompts",
"version": "v0.3.6", "version": "v0.3.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/prompts.git", "url": "https://github.com/laravel/prompts.git",
"reference": "86a8b692e8661d0fb308cec64f3d176821323077" "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/prompts/zipball/86a8b692e8661d0fb308cec64f3d176821323077", "url": "https://api.github.com/repos/laravel/prompts/zipball/a1891d362714bc40c8d23b0b1d7090f022ea27cc",
"reference": "86a8b692e8661d0fb308cec64f3d176821323077", "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5411,8 +5410,8 @@
"illuminate/collections": "^10.0|^11.0|^12.0", "illuminate/collections": "^10.0|^11.0|^12.0",
"mockery/mockery": "^1.5", "mockery/mockery": "^1.5",
"pestphp/pest": "^2.3|^3.4", "pestphp/pest": "^2.3|^3.4",
"phpstan/phpstan": "^1.11", "phpstan/phpstan": "^1.12.28",
"phpstan/phpstan-mockery": "^1.1" "phpstan/phpstan-mockery": "^1.1.3"
}, },
"suggest": { "suggest": {
"ext-pcntl": "Required for the spinner to be animated." "ext-pcntl": "Required for the spinner to be animated."
@ -5438,9 +5437,9 @@
"description": "Add beautiful and user-friendly forms to your command-line applications.", "description": "Add beautiful and user-friendly forms to your command-line applications.",
"support": { "support": {
"issues": "https://github.com/laravel/prompts/issues", "issues": "https://github.com/laravel/prompts/issues",
"source": "https://github.com/laravel/prompts/tree/v0.3.6" "source": "https://github.com/laravel/prompts/tree/v0.3.7"
}, },
"time": "2025-07-07T14:17:42+00:00" "time": "2025-09-19T13:47:56+00:00"
}, },
{ {
"name": "laravel/scout", "name": "laravel/scout",
@ -5525,16 +5524,16 @@
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
"version": "v2.0.4", "version": "v2.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/serializable-closure.git", "url": "https://github.com/laravel/serializable-closure.git",
"reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841" "reference": "3832547db6e0e2f8bb03d4093857b378c66eceed"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841", "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3832547db6e0e2f8bb03d4093857b378c66eceed",
"reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841", "reference": "3832547db6e0e2f8bb03d4093857b378c66eceed",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5582,7 +5581,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues", "issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure" "source": "https://github.com/laravel/serializable-closure"
}, },
"time": "2025-03-19T13:51:03+00:00" "time": "2025-09-22T17:29:40+00:00"
}, },
{ {
"name": "laravel/slack-notification-channel", "name": "laravel/slack-notification-channel",
@ -6178,16 +6177,16 @@
}, },
{ {
"name": "league/csv", "name": "league/csv",
"version": "9.24.1", "version": "9.25.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thephpleague/csv.git", "url": "https://github.com/thephpleague/csv.git",
"reference": "e0221a3f16aa2a823047d59fab5809d552e29bc8" "reference": "f856f532866369fb1debe4e7c5a1db185f40ef86"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thephpleague/csv/zipball/e0221a3f16aa2a823047d59fab5809d552e29bc8", "url": "https://api.github.com/repos/thephpleague/csv/zipball/f856f532866369fb1debe4e7c5a1db185f40ef86",
"reference": "e0221a3f16aa2a823047d59fab5809d552e29bc8", "reference": "f856f532866369fb1debe4e7c5a1db185f40ef86",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -6203,7 +6202,7 @@
"phpstan/phpstan-deprecation-rules": "^1.2.1", "phpstan/phpstan-deprecation-rules": "^1.2.1",
"phpstan/phpstan-phpunit": "^1.4.2", "phpstan/phpstan-phpunit": "^1.4.2",
"phpstan/phpstan-strict-rules": "^1.6.2", "phpstan/phpstan-strict-rules": "^1.6.2",
"phpunit/phpunit": "^10.5.16 || ^11.5.22", "phpunit/phpunit": "^10.5.16 || ^11.5.22 || ^12.3.6",
"symfony/var-dumper": "^6.4.8 || ^7.3.0" "symfony/var-dumper": "^6.4.8 || ^7.3.0"
}, },
"suggest": { "suggest": {
@ -6265,7 +6264,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-06-25T14:53:51+00:00" "time": "2025-09-11T08:29:08+00:00"
}, },
{ {
"name": "league/flysystem", "name": "league/flysystem",
@ -8518,20 +8517,20 @@
}, },
{ {
"name": "open-telemetry/api", "name": "open-telemetry/api",
"version": "1.5.0", "version": "1.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/opentelemetry-php/api.git", "url": "https://github.com/opentelemetry-php/api.git",
"reference": "7692075f486c14d8cfd37fba98a08a5667f089e5" "reference": "ee17d937652eca06c2341b6fadc0f74c1c1a5af2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/opentelemetry-php/api/zipball/7692075f486c14d8cfd37fba98a08a5667f089e5", "url": "https://api.github.com/repos/opentelemetry-php/api/zipball/ee17d937652eca06c2341b6fadc0f74c1c1a5af2",
"reference": "7692075f486c14d8cfd37fba98a08a5667f089e5", "reference": "ee17d937652eca06c2341b6fadc0f74c1c1a5af2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"open-telemetry/context": "^1.0", "open-telemetry/context": "^1.4",
"php": "^8.1", "php": "^8.1",
"psr/log": "^1.1|^2.0|^3.0", "psr/log": "^1.1|^2.0|^3.0",
"symfony/polyfill-php82": "^1.26" "symfony/polyfill-php82": "^1.26"
@ -8584,20 +8583,20 @@
"issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "issues": "https://github.com/open-telemetry/opentelemetry-php/issues",
"source": "https://github.com/open-telemetry/opentelemetry-php" "source": "https://github.com/open-telemetry/opentelemetry-php"
}, },
"time": "2025-08-07T23:07:38+00:00" "time": "2025-09-19T00:05:49+00:00"
}, },
{ {
"name": "open-telemetry/context", "name": "open-telemetry/context",
"version": "1.3.1", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/opentelemetry-php/context.git", "url": "https://github.com/opentelemetry-php/context.git",
"reference": "438f71812242db3f196fb4c717c6f92cbc819be6" "reference": "d4c4470b541ce72000d18c339cfee633e4c8e0cf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/opentelemetry-php/context/zipball/438f71812242db3f196fb4c717c6f92cbc819be6", "url": "https://api.github.com/repos/opentelemetry-php/context/zipball/d4c4470b541ce72000d18c339cfee633e4c8e0cf",
"reference": "438f71812242db3f196fb4c717c6f92cbc819be6", "reference": "d4c4470b541ce72000d18c339cfee633e4c8e0cf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8643,28 +8642,30 @@
"issues": "https://github.com/open-telemetry/opentelemetry-php/issues", "issues": "https://github.com/open-telemetry/opentelemetry-php/issues",
"source": "https://github.com/open-telemetry/opentelemetry-php" "source": "https://github.com/open-telemetry/opentelemetry-php"
}, },
"time": "2025-08-13T01:12:00+00:00" "time": "2025-09-19T00:05:49+00:00"
}, },
{ {
"name": "paragonie/constant_time_encoding", "name": "paragonie/constant_time_encoding",
"version": "v3.0.0", "version": "v3.1.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/paragonie/constant_time_encoding.git", "url": "https://github.com/paragonie/constant_time_encoding.git",
"reference": "df1e7fde177501eee2037dd159cf04f5f301a512" "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512", "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77",
"reference": "df1e7fde177501eee2037dd159cf04f5f301a512", "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^8" "php": "^8"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^9", "infection/infection": "^0",
"vimeo/psalm": "^4|^5" "nikic/php-fuzzer": "^0",
"phpunit/phpunit": "^9|^10|^11",
"vimeo/psalm": "^4|^5|^6"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
@ -8710,7 +8711,7 @@
"issues": "https://github.com/paragonie/constant_time_encoding/issues", "issues": "https://github.com/paragonie/constant_time_encoding/issues",
"source": "https://github.com/paragonie/constant_time_encoding" "source": "https://github.com/paragonie/constant_time_encoding"
}, },
"time": "2024-05-08T12:36:18+00:00" "time": "2025-09-24T15:06:41+00:00"
}, },
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
@ -8764,16 +8765,16 @@
}, },
{ {
"name": "paragonie/sodium_compat", "name": "paragonie/sodium_compat",
"version": "v2.1.0", "version": "v2.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/paragonie/sodium_compat.git", "url": "https://github.com/paragonie/sodium_compat.git",
"reference": "a673d5f310477027cead2e2f2b6db5d8368157cb" "reference": "9c3535883f1b60b5d26aeae5914bbec61132ad7f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/a673d5f310477027cead2e2f2b6db5d8368157cb", "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/9c3535883f1b60b5d26aeae5914bbec61132ad7f",
"reference": "a673d5f310477027cead2e2f2b6db5d8368157cb", "reference": "9c3535883f1b60b5d26aeae5914bbec61132ad7f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -8781,8 +8782,10 @@
"php-64bit": "*" "php-64bit": "*"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^7|^8|^9", "infection/infection": "^0",
"vimeo/psalm": "^4|^5" "nikic/php-fuzzer": "^0",
"phpunit/phpunit": "^7|^8|^9|^10|^11",
"vimeo/psalm": "^4|^5|^6"
}, },
"suggest": { "suggest": {
"ext-sodium": "Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." "ext-sodium": "Better performance, password hashing (Argon2i), secure memory management (memzero), and better security."
@ -8796,7 +8799,10 @@
"autoload": { "autoload": {
"files": [ "files": [
"autoload.php" "autoload.php"
] ],
"psr-4": {
"ParagonIE\\Sodium\\": "namespaced/"
}
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
"license": [ "license": [
@ -8849,9 +8855,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/paragonie/sodium_compat/issues", "issues": "https://github.com/paragonie/sodium_compat/issues",
"source": "https://github.com/paragonie/sodium_compat/tree/v2.1.0" "source": "https://github.com/paragonie/sodium_compat/tree/v2.2.0"
}, },
"time": "2024-09-04T12:51:01+00:00" "time": "2025-09-21T18:27:14+00:00"
}, },
{ {
"name": "payfast/payfast-php-sdk", "name": "payfast/payfast-php-sdk",
@ -10433,16 +10439,16 @@
}, },
{ {
"name": "psy/psysh", "name": "psy/psysh",
"version": "v0.12.10", "version": "v0.12.12",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/bobthecow/psysh.git", "url": "https://github.com/bobthecow/psysh.git",
"reference": "6e80abe6f2257121f1eb9a4c55bf29d921025b22" "reference": "cd23863404a40ccfaf733e3af4db2b459837f7e7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/6e80abe6f2257121f1eb9a4c55bf29d921025b22", "url": "https://api.github.com/repos/bobthecow/psysh/zipball/cd23863404a40ccfaf733e3af4db2b459837f7e7",
"reference": "6e80abe6f2257121f1eb9a4c55bf29d921025b22", "reference": "cd23863404a40ccfaf733e3af4db2b459837f7e7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -10505,9 +10511,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/bobthecow/psysh/issues", "issues": "https://github.com/bobthecow/psysh/issues",
"source": "https://github.com/bobthecow/psysh/tree/v0.12.10" "source": "https://github.com/bobthecow/psysh/tree/v0.12.12"
}, },
"time": "2025-08-04T12:39:37+00:00" "time": "2025-09-20T13:46:31+00:00"
}, },
{ {
"name": "pusher/pusher-php-server", "name": "pusher/pusher-php-server",
@ -10572,16 +10578,16 @@
}, },
{ {
"name": "quickbooks/v3-php-sdk", "name": "quickbooks/v3-php-sdk",
"version": "v6.2.0", "version": "v6.2.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/intuit/QuickBooks-V3-PHP-SDK.git", "url": "https://github.com/intuit/QuickBooks-V3-PHP-SDK.git",
"reference": "0c28bc3c45df1460b1be3280e58475e030a00ba7" "reference": "5e4cafc5d19f4e2a1cba5ef3c22b34fe5a52d930"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/intuit/QuickBooks-V3-PHP-SDK/zipball/0c28bc3c45df1460b1be3280e58475e030a00ba7", "url": "https://api.github.com/repos/intuit/QuickBooks-V3-PHP-SDK/zipball/5e4cafc5d19f4e2a1cba5ef3c22b34fe5a52d930",
"reference": "0c28bc3c45df1460b1be3280e58475e030a00ba7", "reference": "5e4cafc5d19f4e2a1cba5ef3c22b34fe5a52d930",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -10626,9 +10632,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/intuit/QuickBooks-V3-PHP-SDK/issues", "issues": "https://github.com/intuit/QuickBooks-V3-PHP-SDK/issues",
"source": "https://github.com/intuit/QuickBooks-V3-PHP-SDK/tree/v6.2.0" "source": "https://github.com/intuit/QuickBooks-V3-PHP-SDK/tree/v6.2.1"
}, },
"time": "2025-01-16T06:51:15+00:00" "time": "2025-09-22T05:32:32+00:00"
}, },
{ {
"name": "ralouphie/getallheaders", "name": "ralouphie/getallheaders",
@ -11177,16 +11183,16 @@
}, },
{ {
"name": "sentry/sentry", "name": "sentry/sentry",
"version": "4.15.2", "version": "4.16.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/getsentry/sentry-php.git", "url": "https://github.com/getsentry/sentry-php.git",
"reference": "61a2d918e8424b6de4a2e265c15133a00c17db51" "reference": "c5b086e4235762da175034bc463b0d31cbb38d2e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/61a2d918e8424b6de4a2e265c15133a00c17db51", "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/c5b086e4235762da175034bc463b0d31cbb38d2e",
"reference": "61a2d918e8424b6de4a2e265c15133a00c17db51", "reference": "c5b086e4235762da175034bc463b0d31cbb38d2e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11250,7 +11256,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/getsentry/sentry-php/issues", "issues": "https://github.com/getsentry/sentry-php/issues",
"source": "https://github.com/getsentry/sentry-php/tree/4.15.2" "source": "https://github.com/getsentry/sentry-php/tree/4.16.0"
}, },
"funding": [ "funding": [
{ {
@ -11262,20 +11268,20 @@
"type": "custom" "type": "custom"
} }
], ],
"time": "2025-09-03T07:23:48+00:00" "time": "2025-09-22T13:38:03+00:00"
}, },
{ {
"name": "sentry/sentry-laravel", "name": "sentry/sentry-laravel",
"version": "4.15.3", "version": "4.16.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/getsentry/sentry-laravel.git", "url": "https://github.com/getsentry/sentry-laravel.git",
"reference": "c3f71a83e8b3a1451e811199d145e864519cecc1" "reference": "b33b2e487b02db02d92988228f142d7fa2be2bfa"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/c3f71a83e8b3a1451e811199d145e864519cecc1", "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/b33b2e487b02db02d92988228f142d7fa2be2bfa",
"reference": "c3f71a83e8b3a1451e811199d145e864519cecc1", "reference": "b33b2e487b02db02d92988228f142d7fa2be2bfa",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11339,7 +11345,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/getsentry/sentry-laravel/issues", "issues": "https://github.com/getsentry/sentry-laravel/issues",
"source": "https://github.com/getsentry/sentry-laravel/tree/4.15.3" "source": "https://github.com/getsentry/sentry-laravel/tree/4.16.0"
}, },
"funding": [ "funding": [
{ {
@ -11351,7 +11357,7 @@
"type": "custom" "type": "custom"
} }
], ],
"time": "2025-09-04T14:37:41+00:00" "time": "2025-09-10T16:38:18+00:00"
}, },
{ {
"name": "setasign/fpdf", "name": "setasign/fpdf",
@ -18084,16 +18090,16 @@
}, },
{ {
"name": "friendsofphp/php-cs-fixer", "name": "friendsofphp/php-cs-fixer",
"version": "v3.87.1", "version": "v3.88.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
"reference": "2f5170365e2a422d0c5421f9c8818b2c078105f6" "reference": "f23469674ae50d40e398bfff8018911a2a2b0dbe"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/2f5170365e2a422d0c5421f9c8818b2c078105f6", "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/f23469674ae50d40e398bfff8018911a2a2b0dbe",
"reference": "2f5170365e2a422d0c5421f9c8818b2c078105f6", "reference": "f23469674ae50d40e398bfff8018911a2a2b0dbe",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -18120,12 +18126,13 @@
"symfony/polyfill-mbstring": "^1.33", "symfony/polyfill-mbstring": "^1.33",
"symfony/polyfill-php80": "^1.33", "symfony/polyfill-php80": "^1.33",
"symfony/polyfill-php81": "^1.33", "symfony/polyfill-php81": "^1.33",
"symfony/polyfill-php84": "^1.33",
"symfony/process": "^5.4.47 || ^6.4.24 || ^7.2", "symfony/process": "^5.4.47 || ^6.4.24 || ^7.2",
"symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0" "symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0"
}, },
"require-dev": { "require-dev": {
"facile-it/paraunit": "^1.3.1 || ^2.7", "facile-it/paraunit": "^1.3.1 || ^2.7",
"infection/infection": "^0.29.14", "infection/infection": "^0.31.0",
"justinrainbow/json-schema": "^6.5", "justinrainbow/json-schema": "^6.5",
"keradus/cli-executor": "^2.2", "keradus/cli-executor": "^2.2",
"mikey179/vfsstream": "^1.6.12", "mikey179/vfsstream": "^1.6.12",
@ -18133,7 +18140,6 @@
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6",
"phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34", "phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34",
"symfony/polyfill-php84": "^1.33",
"symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2", "symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2",
"symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2" "symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2"
}, },
@ -18176,7 +18182,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
"source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.87.1" "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.88.0"
}, },
"funding": [ "funding": [
{ {
@ -18184,7 +18190,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-09-02T15:27:36+00:00" "time": "2025-09-24T21:31:42+00:00"
}, },
{ {
"name": "hamcrest/hamcrest-php", "name": "hamcrest/hamcrest-php",
@ -18801,16 +18807,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.12.28", "version": "1.12.31",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan-phar-composer-source.git",
"reference": "fcf8b71aeab4e1a1131d1783cef97b23a51b87a9" "reference": "git1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/fcf8b71aeab4e1a1131d1783cef97b23a51b87a9", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/a7630bb5311a41d13a2364634c78c5f4da250d53",
"reference": "fcf8b71aeab4e1a1131d1783cef97b23a51b87a9", "reference": "a7630bb5311a41d13a2364634c78c5f4da250d53",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -18855,7 +18861,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-07-17T17:15:39+00:00" "time": "2025-09-24T15:58:55+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
@ -19194,16 +19200,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "11.5.36", "version": "11.5.41",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "264a87c7ef68b1ab9af7172357740dc266df5957" "reference": "b42782bcb947d2c197aea42ce9714ee2d974b283"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/264a87c7ef68b1ab9af7172357740dc266df5957", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b42782bcb947d2c197aea42ce9714ee2d974b283",
"reference": "264a87c7ef68b1ab9af7172357740dc266df5957", "reference": "b42782bcb947d2c197aea42ce9714ee2d974b283",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -19227,7 +19233,7 @@
"sebastian/comparator": "^6.3.2", "sebastian/comparator": "^6.3.2",
"sebastian/diff": "^6.0.2", "sebastian/diff": "^6.0.2",
"sebastian/environment": "^7.2.1", "sebastian/environment": "^7.2.1",
"sebastian/exporter": "^6.3.0", "sebastian/exporter": "^6.3.2",
"sebastian/global-state": "^7.0.2", "sebastian/global-state": "^7.0.2",
"sebastian/object-enumerator": "^6.0.1", "sebastian/object-enumerator": "^6.0.1",
"sebastian/type": "^5.1.3", "sebastian/type": "^5.1.3",
@ -19275,7 +19281,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.36" "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.41"
}, },
"funding": [ "funding": [
{ {
@ -19299,7 +19305,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-09-03T06:24:17+00:00" "time": "2025-09-24T06:32:10+00:00"
}, },
{ {
"name": "react/cache", "name": "react/cache",
@ -20292,16 +20298,16 @@
}, },
{ {
"name": "sebastian/exporter", "name": "sebastian/exporter",
"version": "6.3.0", "version": "6.3.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git", "url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3" "reference": "70a298763b40b213ec087c51c739efcaa90bcd74"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3", "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74",
"reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3", "reference": "70a298763b40b213ec087c51c739efcaa90bcd74",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -20315,7 +20321,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-main": "6.1-dev" "dev-main": "6.3-dev"
} }
}, },
"autoload": { "autoload": {
@ -20358,15 +20364,27 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues", "issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy", "security": "https://github.com/sebastianbergmann/exporter/security/policy",
"source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0" "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2"
}, },
"funding": [ "funding": [
{ {
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
"type": "github" "type": "github"
},
{
"url": "https://liberapay.com/sebastianbergmann",
"type": "liberapay"
},
{
"url": "https://thanks.dev/u/gh/sebastianbergmann",
"type": "thanks_dev"
},
{
"url": "https://tidelift.com/funding/github/packagist/sebastian/exporter",
"type": "tidelift"
} }
], ],
"time": "2024-12-05T09:17:50+00:00" "time": "2025-09-24T06:12:51+00:00"
}, },
{ {
"name": "sebastian/global-state", "name": "sebastian/global-state",

View File

@ -3928,8 +3928,8 @@ $lang = array(
'invoice_number_taken' => 'Invoice number already taken', 'invoice_number_taken' => 'Invoice number already taken',
'payment_id_required' => 'Payment `id` required.', 'payment_id_required' => 'Payment `id` required.',
'unable_to_retrieve_payment' => 'Unable to retrieve specified payment', 'unable_to_retrieve_payment' => 'Unable to retrieve specified payment',
'invoice_not_related_to_payment' => 'Invoice id :invoice is not related to this payment', 'invoice_not_related_to_payment' => 'Invoice # :invoice is not related to this payment',
'credit_not_related_to_payment' => 'Credit id :credit is not related to this payment', 'credit_not_related_to_payment' => 'Credit # :credit is not related to this payment',
'max_refundable_invoice' => 'Attempting to refund more than allowed for invoice id :invoice, maximum refundable amount is :amount', 'max_refundable_invoice' => 'Attempting to refund more than allowed for invoice id :invoice, maximum refundable amount is :amount',
'refund_without_invoices' => 'Attempting to refund a payment with invoices attached, please specify valid invoice/s to be refunded.', 'refund_without_invoices' => 'Attempting to refund a payment with invoices attached, please specify valid invoice/s to be refunded.',
'refund_without_credits' => 'Attempting to refund a payment with credits attached, please specify valid credits/s to be refunded.', 'refund_without_credits' => 'Attempting to refund a payment with credits attached, please specify valid credits/s to be refunded.',