Merge pull request #11228 from turbo124/v5-develop

v5.12.20
This commit is contained in:
David Bomba 2025-08-27 09:51:40 +10:00 committed by GitHub
commit 2a847ab45d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 275 additions and 204 deletions

View File

@ -1 +1 @@
5.12.19 5.12.20

View File

@ -114,6 +114,31 @@ class StoreTaskRequest extends Request
$this->files->set('file', [$this->file('file')]); $this->files->set('file', [$this->file('file')]);
} }
if(isset($input['time_log']) &&is_string($input['time_log'])) {
$input['time_log'] = json_decode($input['time_log'], true);
}
if(isset($input['time_log']) && is_array($input['time_log'])) {
$time_logs = $input['time_log'];
foreach($time_logs as &$time_log) {
if (is_string($time_log)) {
continue; //catch if it isn't even a proper time log
}
$time_log[0] = intval($time_log[0]);
$time_log[1] = intval($time_log[1]);
$time_log[2] = strval($time_log[2] ?? '');
$time_log[3] = boolval($time_log[3] ?? true);
}
$input['time_log'] = json_encode($time_logs);
}
/* Ensure the project is related */ /* Ensure the project is related */
if (array_key_exists('project_id', $input) && isset($input['project_id'])) { if (array_key_exists('project_id', $input) && isset($input['project_id'])) {
$project = Project::withTrashed()->where('id', $input['project_id'])->company()->first(); $project = Project::withTrashed()->where('id', $input['project_id'])->company()->first();

View File

@ -131,6 +131,32 @@ class UpdateTaskRequest extends Request
$input['color'] = ''; $input['color'] = '';
} }
if(isset($input['time_log']) &&is_string($input['time_log'])) {
$input['time_log'] = json_decode($input['time_log'], true);
}
if(isset($input['time_log']) && is_array($input['time_log'])) {
$time_logs = $input['time_log'];
foreach($time_logs as &$time_log) {
if (is_string($time_log)) {
continue; //catch if it isn't even a proper time log
}
$time_log[0] = intval($time_log[0] ?? 0);
$time_log[1] = intval($time_log[1] ?? 0);
$time_log[2] = strval($time_log[2] ?? '');
$time_log[3] = boolval($time_log[3] ?? true);
}
$input['time_log'] = json_encode($time_logs);
}
if (isset($input['project_id']) && isset($input['client_id'])) { if (isset($input['project_id']) && isset($input['client_id'])) {
$search_project_with_client = Project::withTrashed()->where('id', $input['project_id'])->where('client_id', $input['client_id'])->company()->doesntExist(); $search_project_with_client = Project::withTrashed()->where('id', $input['project_id'])->where('client_id', $input['client_id'])->company()->doesntExist();

View File

@ -58,7 +58,10 @@ class ProjectRepository extends BaseRepository
$item->task_id = $task->hashed_id; $item->task_id = $task->hashed_id;
$item->tax_id = (string) Product::PRODUCT_TYPE_SERVICE; $item->tax_id = (string) Product::PRODUCT_TYPE_SERVICE;
$item->type_id = '2'; $item->type_id = '2';
$item->custom_value1 = $task->custom_value1;
$item->custom_value2 = $task->custom_value2;
$item->custom_value3 = $task->custom_value3;
$item->custom_value4 = $task->custom_value4;
$lines[] = $item; $lines[] = $item;
} }
@ -86,6 +89,10 @@ class ProjectRepository extends BaseRepository
$item->tax_id = (string) Product::PRODUCT_TYPE_PHYSICAL; $item->tax_id = (string) Product::PRODUCT_TYPE_PHYSICAL;
$item->expense_id = $expense->hashed_id; $item->expense_id = $expense->hashed_id;
$item->type_id = '1'; $item->type_id = '1';
$item->custom_value1 = $expense->custom_value1;
$item->custom_value2 = $expense->custom_value2;
$item->custom_value3 = $expense->custom_value3;
$item->custom_value4 = $expense->custom_value4;
$lines[] = $item; $lines[] = $item;
}); });

View File

@ -128,9 +128,6 @@ class DeletePayment
} }
} }
elseif ($paymentable_invoice->status_id == Invoice::STATUS_REVERSED) {
//do not mutate anything at this level!
}
elseif (! $paymentable_invoice->is_deleted) { elseif (! $paymentable_invoice->is_deleted) {
$paymentable_invoice->restore(); $paymentable_invoice->restore();
@ -176,6 +173,12 @@ class DeletePayment
}); });
} }
elseif(floatval($this->payment->amount) == floatval($this->payment->applied)) {
// If there are no invoices associated with the payment, we should not be updating the clients paid to date amount
// The edge case handled here is when an invoice has been "reversed" an associated credit note is created, this is effectively the same
// payment which can then be used _again_. So the first payment of a reversed invoice should NEVER reduce the paid to date amount.
$this->update_client_paid_to_date = false;
}
//sometimes the payment is NOT created properly, this catches the payment and prevents the paid to date reducing inappropriately. //sometimes the payment is NOT created properly, this catches the payment and prevents the paid to date reducing inappropriately.
if ($this->update_client_paid_to_date) { if ($this->update_client_paid_to_date) {

View File

@ -117,7 +117,7 @@ class VendorHtmlEngine
if (! $this->vendor->currency()) { if (! $this->vendor->currency()) {
throw new Exception(debug_backtrace()[1]['function'], 1); throw new Exception(debug_backtrace()[1]['function'], 1);
} }
App::forgetInstance('translator'); App::forgetInstance('translator');
$t = app('translator'); $t = app('translator');
App::setLocale($this->vendor->locale()); App::setLocale($this->vendor->locale());

321
composer.lock generated
View File

@ -1476,16 +1476,16 @@
}, },
{ {
"name": "composer/ca-bundle", "name": "composer/ca-bundle",
"version": "1.5.7", "version": "1.5.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/ca-bundle.git", "url": "https://github.com/composer/ca-bundle.git",
"reference": "d665d22c417056996c59019579f1967dfe5c1e82" "reference": "719026bb30813accb68271fee7e39552a58e9f65"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/d665d22c417056996c59019579f1967dfe5c1e82", "url": "https://api.github.com/repos/composer/ca-bundle/zipball/719026bb30813accb68271fee7e39552a58e9f65",
"reference": "d665d22c417056996c59019579f1967dfe5c1e82", "reference": "719026bb30813accb68271fee7e39552a58e9f65",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1532,7 +1532,7 @@
"support": { "support": {
"irc": "irc://irc.freenode.org/composer", "irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/ca-bundle/issues", "issues": "https://github.com/composer/ca-bundle/issues",
"source": "https://github.com/composer/ca-bundle/tree/1.5.7" "source": "https://github.com/composer/ca-bundle/tree/1.5.8"
}, },
"funding": [ "funding": [
{ {
@ -1542,13 +1542,9 @@
{ {
"url": "https://github.com/composer", "url": "https://github.com/composer",
"type": "github" "type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
} }
], ],
"time": "2025-05-26T15:08:54+00:00" "time": "2025-08-20T18:49:47+00:00"
}, },
{ {
"name": "composer/pcre", "name": "composer/pcre",
@ -3183,7 +3179,7 @@
}, },
{ {
"name": "google/apiclient-services", "name": "google/apiclient-services",
"version": "v0.407.0", "version": "v0.409.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",
@ -3221,7 +3217,7 @@
], ],
"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.407.0" "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.409.0"
}, },
"time": "2025-06-04T17:28:44+00:00" "time": "2025-06-04T17:28:44+00:00"
}, },
@ -3406,22 +3402,22 @@
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "7.9.3", "version": "7.10.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4",
"reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"guzzlehttp/promises": "^1.5.3 || ^2.0.3", "guzzlehttp/promises": "^2.3",
"guzzlehttp/psr7": "^2.7.0", "guzzlehttp/psr7": "^2.8",
"php": "^7.2.5 || ^8.0", "php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0", "psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0" "symfony/deprecation-contracts": "^2.2 || ^3.0"
@ -3512,7 +3508,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/guzzle/issues", "issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.9.3" "source": "https://github.com/guzzle/guzzle/tree/7.10.0"
}, },
"funding": [ "funding": [
{ {
@ -3528,20 +3524,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-03-27T13:37:11+00:00" "time": "2025-08-23T22:36:01+00:00"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
"version": "2.2.0", "version": "2.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" "reference": "481557b130ef3790cf82b713667b43030dc9c957"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957",
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", "reference": "481557b130ef3790cf82b713667b43030dc9c957",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3549,7 +3545,7 @@
}, },
"require-dev": { "require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2", "bamarni/composer-bin-plugin": "^1.8.2",
"phpunit/phpunit": "^8.5.39 || ^9.6.20" "phpunit/phpunit": "^8.5.44 || ^9.6.25"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -3595,7 +3591,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/promises/issues", "issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.2.0" "source": "https://github.com/guzzle/promises/tree/2.3.0"
}, },
"funding": [ "funding": [
{ {
@ -3611,20 +3607,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-03-27T13:27:01+00:00" "time": "2025-08-22T14:34:08+00:00"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "2.7.1", "version": "2.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" "reference": "21dc724a0583619cd1652f673303492272778051"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051",
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", "reference": "21dc724a0583619cd1652f673303492272778051",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3640,7 +3636,7 @@
"require-dev": { "require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2", "bamarni/composer-bin-plugin": "^1.8.2",
"http-interop/http-factory-tests": "0.9.0", "http-interop/http-factory-tests": "0.9.0",
"phpunit/phpunit": "^8.5.39 || ^9.6.20" "phpunit/phpunit": "^8.5.44 || ^9.6.25"
}, },
"suggest": { "suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@ -3711,7 +3707,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.7.1" "source": "https://github.com/guzzle/psr7/tree/2.8.0"
}, },
"funding": [ "funding": [
{ {
@ -3727,20 +3723,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-03-27T12:30:47+00:00" "time": "2025-08-23T21:21:41+00:00"
}, },
{ {
"name": "guzzlehttp/uri-template", "name": "guzzlehttp/uri-template",
"version": "v1.0.4", "version": "v1.0.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/uri-template.git", "url": "https://github.com/guzzle/uri-template.git",
"reference": "30e286560c137526eccd4ce21b2de477ab0676d2" "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/uri-template/zipball/30e286560c137526eccd4ce21b2de477ab0676d2", "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1",
"reference": "30e286560c137526eccd4ce21b2de477ab0676d2", "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -3749,7 +3745,7 @@
}, },
"require-dev": { "require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2", "bamarni/composer-bin-plugin": "^1.8.2",
"phpunit/phpunit": "^8.5.36 || ^9.6.15", "phpunit/phpunit": "^8.5.44 || ^9.6.25",
"uri-template/tests": "1.0.0" "uri-template/tests": "1.0.0"
}, },
"type": "library", "type": "library",
@ -3797,7 +3793,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/uri-template/issues", "issues": "https://github.com/guzzle/uri-template/issues",
"source": "https://github.com/guzzle/uri-template/tree/v1.0.4" "source": "https://github.com/guzzle/uri-template/tree/v1.0.5"
}, },
"funding": [ "funding": [
{ {
@ -3813,7 +3809,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-02-03T10:55:03+00:00" "time": "2025-08-22T14:27:06+00:00"
}, },
{ {
"name": "halaxa/json-machine", "name": "halaxa/json-machine",
@ -5682,16 +5678,16 @@
}, },
{ {
"name": "laravel/scout", "name": "laravel/scout",
"version": "v10.17.0", "version": "v10.19.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/scout.git", "url": "https://github.com/laravel/scout.git",
"reference": "66b064ab1f987560d1edfbc10f46557fddfed600" "reference": "996b2a8b5ccc583e7df667c8aac924a46bc8bdd3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/scout/zipball/66b064ab1f987560d1edfbc10f46557fddfed600", "url": "https://api.github.com/repos/laravel/scout/zipball/996b2a8b5ccc583e7df667c8aac924a46bc8bdd3",
"reference": "66b064ab1f987560d1edfbc10f46557fddfed600", "reference": "996b2a8b5ccc583e7df667c8aac924a46bc8bdd3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5759,7 +5755,7 @@
"issues": "https://github.com/laravel/scout/issues", "issues": "https://github.com/laravel/scout/issues",
"source": "https://github.com/laravel/scout" "source": "https://github.com/laravel/scout"
}, },
"time": "2025-07-22T15:54:45+00:00" "time": "2025-08-26T14:24:24+00:00"
}, },
{ {
"name": "laravel/serializable-closure", "name": "laravel/serializable-closure",
@ -7760,16 +7756,16 @@
}, },
{ {
"name": "mpdf/mpdf", "name": "mpdf/mpdf",
"version": "v8.2.5", "version": "v8.2.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/mpdf/mpdf.git", "url": "https://github.com/mpdf/mpdf.git",
"reference": "e175b05e3e00977b85feb96a8cccb174ac63621f" "reference": "dd30e3b01061cf8dfe65e7041ab4cc46d8ebdd44"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/mpdf/mpdf/zipball/e175b05e3e00977b85feb96a8cccb174ac63621f", "url": "https://api.github.com/repos/mpdf/mpdf/zipball/dd30e3b01061cf8dfe65e7041ab4cc46d8ebdd44",
"reference": "e175b05e3e00977b85feb96a8cccb174ac63621f", "reference": "dd30e3b01061cf8dfe65e7041ab4cc46d8ebdd44",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -7779,7 +7775,7 @@
"mpdf/psr-log-aware-trait": "^2.0 || ^3.0", "mpdf/psr-log-aware-trait": "^2.0 || ^3.0",
"myclabs/deep-copy": "^1.7", "myclabs/deep-copy": "^1.7",
"paragonie/random_compat": "^1.4|^2.0|^9.99.99", "paragonie/random_compat": "^1.4|^2.0|^9.99.99",
"php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", "php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
"psr/http-message": "^1.0 || ^2.0", "psr/http-message": "^1.0 || ^2.0",
"psr/log": "^1.0 || ^2.0 || ^3.0", "psr/log": "^1.0 || ^2.0 || ^3.0",
"setasign/fpdi": "^2.1" "setasign/fpdi": "^2.1"
@ -7837,7 +7833,7 @@
"type": "custom" "type": "custom"
} }
], ],
"time": "2024-11-18T15:30:42+00:00" "time": "2025-08-18T08:51:51+00:00"
}, },
{ {
"name": "mpdf/psr-http-message-shim", "name": "mpdf/psr-http-message-shim",
@ -9636,16 +9632,16 @@
}, },
{ {
"name": "phpdocumentor/reflection-docblock", "name": "phpdocumentor/reflection-docblock",
"version": "5.6.2", "version": "5.6.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
"reference": "92dde6a5919e34835c506ac8c523ef095a95ed62" "reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/92dde6a5919e34835c506ac8c523ef095a95ed62", "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94f8051919d1b0369a6bcc7931d679a511c03fe9",
"reference": "92dde6a5919e34835c506ac8c523ef095a95ed62", "reference": "94f8051919d1b0369a6bcc7931d679a511c03fe9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9694,9 +9690,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": { "support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
"source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.2" "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.3"
}, },
"time": "2025-04-13T19:20:35+00:00" "time": "2025-08-01T19:43:32+00:00"
}, },
{ {
"name": "phpdocumentor/type-resolver", "name": "phpdocumentor/type-resolver",
@ -9863,16 +9859,16 @@
}, },
{ {
"name": "phpoption/phpoption", "name": "phpoption/phpoption",
"version": "1.9.3", "version": "1.9.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/schmittjoh/php-option.git", "url": "https://github.com/schmittjoh/php-option.git",
"reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d",
"reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -9880,7 +9876,7 @@
}, },
"require-dev": { "require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2", "bamarni/composer-bin-plugin": "^1.8.2",
"phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@ -9922,7 +9918,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/schmittjoh/php-option/issues", "issues": "https://github.com/schmittjoh/php-option/issues",
"source": "https://github.com/schmittjoh/php-option/tree/1.9.3" "source": "https://github.com/schmittjoh/php-option/tree/1.9.4"
}, },
"funding": [ "funding": [
{ {
@ -9934,7 +9930,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-07-20T21:41:07+00:00" "time": "2025-08-21T11:53:16+00:00"
}, },
{ {
"name": "phpseclib/phpseclib", "name": "phpseclib/phpseclib",
@ -11414,16 +11410,16 @@
}, },
{ {
"name": "sentry/sentry", "name": "sentry/sentry",
"version": "4.14.2", "version": "4.15.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/getsentry/sentry-php.git", "url": "https://github.com/getsentry/sentry-php.git",
"reference": "bfeec74303d60d3f8bc33701ab3e86f8a8729f17" "reference": "b2d84de69f3eda8ca22b0b00e9f923be3b837355"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/getsentry/sentry-php/zipball/bfeec74303d60d3f8bc33701ab3e86f8a8729f17", "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/b2d84de69f3eda8ca22b0b00e9f923be3b837355",
"reference": "bfeec74303d60d3f8bc33701ab3e86f8a8729f17", "reference": "b2d84de69f3eda8ca22b0b00e9f923be3b837355",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -11487,7 +11483,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.14.2" "source": "https://github.com/getsentry/sentry-php/tree/4.15.0"
}, },
"funding": [ "funding": [
{ {
@ -11499,7 +11495,7 @@
"type": "custom" "type": "custom"
} }
], ],
"time": "2025-07-21T08:28:29+00:00" "time": "2025-08-20T14:26:37+00:00"
}, },
{ {
"name": "sentry/sentry-laravel", "name": "sentry/sentry-laravel",
@ -14170,7 +14166,7 @@
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
@ -14229,7 +14225,7 @@
"portable" "portable"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14240,6 +14236,10 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
@ -14249,16 +14249,16 @@
}, },
{ {
"name": "symfony/polyfill-intl-grapheme", "name": "symfony/polyfill-intl-grapheme",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70",
"reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -14307,7 +14307,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14318,25 +14318,29 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-09T11:45:10+00:00" "time": "2025-06-27T09:58:17+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-icu", "name": "symfony/polyfill-intl-icu",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git", "url": "https://github.com/symfony/polyfill-intl-icu.git",
"reference": "763d2a91fea5681509ca01acbc1c5e450d127811" "reference": "bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/763d2a91fea5681509ca01acbc1c5e450d127811", "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c",
"reference": "763d2a91fea5681509ca01acbc1c5e450d127811", "reference": "bfc8fa13dbaf21d69114b0efcd72ab700fb04d0c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -14391,7 +14395,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14402,16 +14406,20 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-12-21T18:38:29+00:00" "time": "2025-06-20T22:24:30+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-idn", "name": "symfony/polyfill-intl-idn",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git", "url": "https://github.com/symfony/polyfill-intl-idn.git",
@ -14474,7 +14482,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14485,6 +14493,10 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
@ -14494,7 +14506,7 @@
}, },
{ {
"name": "symfony/polyfill-intl-normalizer", "name": "symfony/polyfill-intl-normalizer",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@ -14555,7 +14567,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14566,6 +14578,10 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
@ -14575,7 +14591,7 @@
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
@ -14636,7 +14652,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14647,6 +14663,10 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
@ -14656,7 +14676,7 @@
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
@ -14716,7 +14736,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14727,6 +14747,10 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
@ -14736,7 +14760,7 @@
}, },
{ {
"name": "symfony/polyfill-php82", "name": "symfony/polyfill-php82",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php82.git", "url": "https://github.com/symfony/polyfill-php82.git",
@ -14792,7 +14816,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php82/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-php82/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14803,6 +14827,10 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
@ -14812,16 +14840,16 @@
}, },
{ {
"name": "symfony/polyfill-php83", "name": "symfony/polyfill-php83",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php83.git", "url": "https://github.com/symfony/polyfill-php83.git",
"reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5",
"reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -14868,7 +14896,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14879,16 +14907,20 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-09T11:45:10+00:00" "time": "2025-07-08T02:45:35+00:00"
}, },
{ {
"name": "symfony/polyfill-uuid", "name": "symfony/polyfill-uuid",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git", "url": "https://github.com/symfony/polyfill-uuid.git",
@ -14947,7 +14979,7 @@
"uuid" "uuid"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-uuid/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -14958,6 +14990,10 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"
@ -17800,16 +17836,16 @@
}, },
{ {
"name": "composer/class-map-generator", "name": "composer/class-map-generator",
"version": "1.6.1", "version": "1.6.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/class-map-generator.git", "url": "https://github.com/composer/class-map-generator.git",
"reference": "134b705ddb0025d397d8318a75825fe3c9d1da34" "reference": "ba9f089655d4cdd64e762a6044f411ccdaec0076"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/class-map-generator/zipball/134b705ddb0025d397d8318a75825fe3c9d1da34", "url": "https://api.github.com/repos/composer/class-map-generator/zipball/ba9f089655d4cdd64e762a6044f411ccdaec0076",
"reference": "134b705ddb0025d397d8318a75825fe3c9d1da34", "reference": "ba9f089655d4cdd64e762a6044f411ccdaec0076",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -17853,7 +17889,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/composer/class-map-generator/issues", "issues": "https://github.com/composer/class-map-generator/issues",
"source": "https://github.com/composer/class-map-generator/tree/1.6.1" "source": "https://github.com/composer/class-map-generator/tree/1.6.2"
}, },
"funding": [ "funding": [
{ {
@ -17863,26 +17899,22 @@
{ {
"url": "https://github.com/composer", "url": "https://github.com/composer",
"type": "github" "type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
} }
], ],
"time": "2025-03-24T13:50:44+00:00" "time": "2025-08-20T18:52:43+00:00"
}, },
{ {
"name": "composer/semver", "name": "composer/semver",
"version": "3.4.3", "version": "3.4.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/semver.git", "url": "https://github.com/composer/semver.git",
"reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95",
"reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -17934,7 +17966,7 @@
"support": { "support": {
"irc": "ircs://irc.libera.chat:6697/composer", "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues", "issues": "https://github.com/composer/semver/issues",
"source": "https://github.com/composer/semver/tree/3.4.3" "source": "https://github.com/composer/semver/tree/3.4.4"
}, },
"funding": [ "funding": [
{ {
@ -17944,13 +17976,9 @@
{ {
"url": "https://github.com/composer", "url": "https://github.com/composer",
"type": "github" "type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
} }
], ],
"time": "2024-09-19T14:15:21+00:00" "time": "2025-08-20T19:15:30+00:00"
}, },
{ {
"name": "composer/xdebug-handler", "name": "composer/xdebug-handler",
@ -19310,16 +19338,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "11.5.32", "version": "11.5.34",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "101e132dcf9e74a1eb3a309b4f686114ae8f7f36" "reference": "3e4c6ef395f7cb61a6206c23e0e04b31724174f2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/101e132dcf9e74a1eb3a309b4f686114ae8f7f36", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e4c6ef395f7cb61a6206c23e0e04b31724174f2",
"reference": "101e132dcf9e74a1eb3a309b4f686114ae8f7f36", "reference": "3e4c6ef395f7cb61a6206c23e0e04b31724174f2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -19391,7 +19419,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.32" "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.34"
}, },
"funding": [ "funding": [
{ {
@ -19415,7 +19443,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-08-12T07:32:49+00:00" "time": "2025-08-20T14:41:45+00:00"
}, },
{ {
"name": "react/cache", "name": "react/cache",
@ -19714,23 +19742,23 @@
}, },
{ {
"name": "react/promise", "name": "react/promise",
"version": "v3.2.0", "version": "v3.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/reactphp/promise.git", "url": "https://github.com/reactphp/promise.git",
"reference": "8a164643313c71354582dc850b42b33fa12a4b63" "reference": "23444f53a813a3296c1368bb104793ce8d88f04a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a",
"reference": "8a164643313c71354582dc850b42b33fa12a4b63", "reference": "23444f53a813a3296c1368bb104793ce8d88f04a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.1.0" "php": ">=7.1.0"
}, },
"require-dev": { "require-dev": {
"phpstan/phpstan": "1.10.39 || 1.4.10", "phpstan/phpstan": "1.12.28 || 1.4.10",
"phpunit/phpunit": "^9.6 || ^7.5" "phpunit/phpunit": "^9.6 || ^7.5"
}, },
"type": "library", "type": "library",
@ -19775,7 +19803,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/reactphp/promise/issues", "issues": "https://github.com/reactphp/promise/issues",
"source": "https://github.com/reactphp/promise/tree/v3.2.0" "source": "https://github.com/reactphp/promise/tree/v3.3.0"
}, },
"funding": [ "funding": [
{ {
@ -19783,7 +19811,7 @@
"type": "open_collective" "type": "open_collective"
} }
], ],
"time": "2024-05-24T10:39:05+00:00" "time": "2025-08-19T18:57:03+00:00"
}, },
{ {
"name": "react/socket", "name": "react/socket",
@ -20919,16 +20947,16 @@
}, },
{ {
"name": "spatie/backtrace", "name": "spatie/backtrace",
"version": "1.7.4", "version": "1.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/spatie/backtrace.git", "url": "https://github.com/spatie/backtrace.git",
"reference": "cd37a49fce7137359ac30ecc44ef3e16404cccbe" "reference": "1607d8870bf597fc4ad79a6945cf0b2e584c2669"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/spatie/backtrace/zipball/cd37a49fce7137359ac30ecc44ef3e16404cccbe", "url": "https://api.github.com/repos/spatie/backtrace/zipball/1607d8870bf597fc4ad79a6945cf0b2e584c2669",
"reference": "cd37a49fce7137359ac30ecc44ef3e16404cccbe", "reference": "1607d8870bf597fc4ad79a6945cf0b2e584c2669",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -20966,7 +20994,8 @@
"spatie" "spatie"
], ],
"support": { "support": {
"source": "https://github.com/spatie/backtrace/tree/1.7.4" "issues": "https://github.com/spatie/backtrace/issues",
"source": "https://github.com/spatie/backtrace/tree/1.8.0"
}, },
"funding": [ "funding": [
{ {
@ -20978,7 +21007,7 @@
"type": "other" "type": "other"
} }
], ],
"time": "2025-05-08T15:41:09+00:00" "time": "2025-08-25T16:16:45+00:00"
}, },
{ {
"name": "spatie/error-solutions", "name": "spatie/error-solutions",
@ -21413,7 +21442,7 @@
}, },
{ {
"name": "symfony/polyfill-php81", "name": "symfony/polyfill-php81",
"version": "v1.32.0", "version": "v1.33.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php81.git", "url": "https://github.com/symfony/polyfill-php81.git",
@ -21469,7 +21498,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0" "source": "https://github.com/symfony/polyfill-php81/tree/v1.33.0"
}, },
"funding": [ "funding": [
{ {
@ -21480,6 +21509,10 @@
"url": "https://github.com/fabpot", "url": "https://github.com/fabpot",
"type": "github" "type": "github"
}, },
{
"url": "https://github.com/nicolas-grekas",
"type": "github"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift" "type": "tidelift"

View File

@ -17,8 +17,8 @@ return [
'require_https' => env('REQUIRE_HTTPS', true), 'require_https' => env('REQUIRE_HTTPS', true),
'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_url' => rtrim(env('APP_URL', ''), '/'),
'app_domain' => env('APP_DOMAIN', 'invoicing.co'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
'app_version' => env('APP_VERSION', '5.12.19'), 'app_version' => env('APP_VERSION', '5.12.20'),
'app_tag' => env('APP_TAG', '5.12.19'), 'app_tag' => env('APP_TAG', '5.12.20'),
'minimum_client_version' => '5.0.16', 'minimum_client_version' => '5.0.16',
'terms_version' => '1.0.1', 'terms_version' => '1.0.1',
'api_secret' => env('API_SECRET', false), 'api_secret' => env('API_SECRET', false),

View File

@ -144,16 +144,15 @@ class TaskApiTest extends TestCase
$data = [ $data = [
'client_id' => $this->client->hashed_id, 'client_id' => $this->client->hashed_id,
'description' => 'Test Task', 'description' => 'Test Task',
'time_log' => '[[1731391977,1731399177,null,2342432],[1731399178,1731499177,null, 1231231]]', 'time_log' => '[[1731391977,1731399177,null,2342432],[1731399178,1731499177, null, 1231231]]',
]; ];
$response = $this->withHeaders([ $response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'), 'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token, 'X-API-TOKEN' => $this->token,
])->postJson("/api/v1/tasks", $data); ])->postJson("/api/v1/tasks", $data);
$response->assertStatus(422); $response->assertStatus(200);
} }
@ -486,6 +485,7 @@ class TaskApiTest extends TestCase
$response->assertStatus(200); $response->assertStatus(200);
nlog($response->json());
} }
public function testUserFilters() public function testUserFilters()
@ -612,8 +612,9 @@ class TaskApiTest extends TestCase
'X-API-TOKEN' => $this->token, 'X-API-TOKEN' => $this->token,
])->postJson("/api/v1/tasks", $data); ])->postJson("/api/v1/tasks", $data);
$response->assertStatus(422); $response->assertStatus(200);
$this->assertEquals('[]', $response->json()['data']['time_log']);
} }
public function testTaskClientRateSet() public function testTaskClientRateSet()
@ -657,11 +658,14 @@ class TaskApiTest extends TestCase
'X-API-TOKEN' => $this->token, 'X-API-TOKEN' => $this->token,
])->postJson("/api/v1/tasks", $data); ])->postJson("/api/v1/tasks", $data);
$response->assertStatus(422); $response->assertStatus(200);
$arr = $response->json(); $arr = $response->json();
$this->assertEquals('[]', $response->json()['data']['time_log']);
} }
public function testTaskProjectRateSet() public function testTaskProjectRateSet()
@ -753,9 +757,8 @@ class TaskApiTest extends TestCase
$this->assertIsArray($logs); $this->assertIsArray($logs);
} }
public function testStartStopSanity() public function testStartStopSanity()
{ {
@ -781,7 +784,8 @@ class TaskApiTest extends TestCase
'X-API-TOKEN' => $this->token, 'X-API-TOKEN' => $this->token,
])->putJson("/api/v1/tasks/{$task->hashed_id}?stop=true", $task->toArray()); ])->putJson("/api/v1/tasks/{$task->hashed_id}?stop=true", $task->toArray());
$response->assertStatus(422); // nlog($response->json());
$response->assertStatus(200);
$task->time_log = null; $task->time_log = null;
@ -1096,33 +1100,6 @@ class TaskApiTest extends TestCase
} }
// public function testTaskLocking()
// {
// $data = [
// 'timelog' => [[1,2],[3,4]],
// ];
// $response = $this->withHeaders([
// 'X-API-SECRET' => config('ninja.api_secret'),
// 'X-API-TOKEN' => $this->token,
// ])->post('/api/v1/tasks', $data);
// $arr = $response->json();
// $response->assertStatus(200);
// $response = $this->withHeaders([
// 'X-API-SECRET' => config('ninja.api_secret'),
// 'X-API-TOKEN' => $this->token,
// ])->putJson('/api/v1/tasks/' . $arr['data']['id'], $data);
// $arr = $response->json();
// $response->assertStatus(200);
// }
public function testTimeLogValidation() public function testTimeLogValidation()
@ -1136,8 +1113,10 @@ class TaskApiTest extends TestCase
'X-API-TOKEN' => $this->token, 'X-API-TOKEN' => $this->token,
])->postJson('/api/v1/tasks', $data); ])->postJson('/api/v1/tasks', $data);
$response->assertStatus(422); $response->assertStatus(200);
$this->assertEquals('[]', $response->json()['data']['time_log']);
} }
public function testTimeLogValidation1() public function testTimeLogValidation1()
@ -1185,6 +1164,7 @@ class TaskApiTest extends TestCase
$response->assertStatus(422); $response->assertStatus(422);
} }
public function testTimeLogValidation4() public function testTimeLogValidation4()
@ -1255,22 +1235,21 @@ class TaskApiTest extends TestCase
$response = $this->withHeaders([ $response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'), 'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token, 'X-API-TOKEN' => $this->token,
])->put('/api/v1/tasks/'.$arr['data']['id'], $data); ])->putJson('/api/v1/tasks/'.$arr['data']['id'], $data);
$response->assertStatus(200); $response->assertStatus(200);
try { $response = $this->withHeaders([
$response = $this->withHeaders([ 'X-API-SECRET' => config('ninja.api_secret'),
'X-API-SECRET' => config('ninja.api_secret'), 'X-API-TOKEN' => $this->token,
'X-API-TOKEN' => $this->token, ])->postJson('/api/v1/tasks', $data);
])->post('/api/v1/tasks', $data);
$arr = $response->json(); $arr = $response->json();
} catch (ValidationException $e) {
$response->assertStatus(302);
}
$this->assertNotEmpty($arr['data']['number']); $response->assertStatus(422);
// $this->assertNotEmpty($arr['data']['number']);
} }
public function testTaskPostNoDefinedTaskNumber() public function testTaskPostNoDefinedTaskNumber()
@ -1295,15 +1274,13 @@ class TaskApiTest extends TestCase
'client_id' => $this->faker->firstName(), 'client_id' => $this->faker->firstName(),
]; ];
try {
$response = $this->withHeaders([ $response = $this->withHeaders([
'X-API-SECRET' => config('ninja.api_secret'), 'X-API-SECRET' => config('ninja.api_secret'),
'X-API-TOKEN' => $this->token, 'X-API-TOKEN' => $this->token,
])->post('/api/v1/tasks', $data); ])->postJson('/api/v1/tasks', $data);
$arr = $response->json(); $arr = $response->json();
} catch (ValidationException $e) { $response->assertStatus(422);
$response->assertStatus(302);
}
} }
public function testTaskPostWithActionStart() public function testTaskPostWithActionStart()