Modernize dependencies: replace abandoned packages, update versions

- Replace flowframe/laravel-trend with direct Eloquent DB queries
- Replace srmklive/paypal (abandoned) with new PayPalService using PayPal REST API v2 via Guzzle
- Remove old config/paypal.php, migrate to config('habbo.paypal.*')
- Update blade templates to use habbo.paypal config
- Bump npm packages to latest: @inertiajs/react, axios, esbuild, eslint, sass, tailwindcss, etc.
- Run composer update and yarn upgrade
This commit is contained in:
root
2026-06-20 15:01:48 +02:00
parent 7c72ed82b6
commit 53f88b840a
12 changed files with 1171 additions and 1206 deletions
@@ -4,9 +4,8 @@ namespace App\Filament\Resources\DashboardResource\Widgets;
use App\Models\User\UserOrder;
use Filament\Widgets\ChartWidget;
use Flowframe\Trend\Trend;
use Flowframe\Trend\TrendValue;
use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Support\Facades\DB;
class OrdersAggregateChart extends ChartWidget
{
@@ -28,47 +27,45 @@ class OrdersAggregateChart extends ChartWidget
return __('filament::resources.stats.orders_chart.description');
}
private function getTrendData($query): array
{
return $query->whereBetween('created_at', [now()->startOfMonth(), now()->endOfMonth()])
->selectRaw('DATE(created_at) as date, COUNT(*) as aggregate')
->groupBy(DB::raw('DATE(created_at)'))
->orderBy('date')
->pluck('aggregate', 'date')
->toArray();
}
#[\Override]
protected function getData(): array
{
$pendingOrder = Trend::query(UserOrder::pending())
->between(start: now()->startOfMonth(), end: now()->endOfMonth())
->perDay()
->count();
$pendingData = $this->getTrendData(UserOrder::pending());
$cancelledData = $this->getTrendData(UserOrder::cancelled());
$completedData = $this->getTrendData(UserOrder::completed());
$cancelledOrder = Trend::query(UserOrder::cancelled())
->between(start: now()->startOfMonth(), end: now()->endOfMonth())
->perDay()
->count();
$completedOrder = Trend::query(UserOrder::completed())
->between(start: now()->startOfMonth(), end: now()->endOfMonth())
->perDay()
->count();
$allDates = collect(array_keys(array_merge($pendingData, $cancelledData, $completedData)))
->unique()
->sort()
->values();
$datasets = [
$this->getDataset($pendingOrder, __('filament::resources.stats.orders_chart.pending'), '#fbbf24', '#f59e0b'),
$this->getDataset($cancelledOrder, __('filament::resources.stats.orders_chart.cancelled'), '#dc2626', '#b91c1c'),
$this->getDataset($completedOrder, __('filament::resources.stats.orders_chart.completed'), '#10b981', '#059669'),
$this->getDataset($pendingData, $allDates, __('filament::resources.stats.orders_chart.pending'), '#fbbf24', '#f59e0b'),
$this->getDataset($cancelledData, $allDates, __('filament::resources.stats.orders_chart.cancelled'), '#dc2626', '#b91c1c'),
$this->getDataset($completedData, $allDates, __('filament::resources.stats.orders_chart.completed'), '#10b981', '#059669'),
];
$data = $pendingOrder->map(fn (TrendValue $value) => $value->date)->merge(
$cancelledOrder->map(fn (TrendValue $value) => $value->date),
)->merge(
$completedOrder->map(fn (TrendValue $value) => $value->date),
)->unique()->sort()->flatten();
return [
'datasets' => $datasets,
'labels' => $data,
'labels' => $allDates,
];
}
protected function getDataset($data, $label, string $backgroundColor, string $borderColor): array
private function getDataset(array $data, $allDates, string $label, string $backgroundColor, string $borderColor): array
{
return [
'label' => $label,
'data' => $data->map(fn (TrendValue $value) => $value->aggregate),
'data' => $allDates->map(fn ($date) => $data[$date] ?? 0),
'backgroundColor' => $backgroundColor,
'borderColor' => $borderColor,
];
@@ -4,9 +4,8 @@ namespace App\Filament\Widgets;
use App\Models\Articles\WebsiteArticle;
use Filament\Widgets\ChartWidget;
use Flowframe\Trend\Trend;
use Flowframe\Trend\TrendValue;
use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Support\Facades\DB;
class ArticlesAggregateChart extends ChartWidget
{
@@ -34,13 +33,12 @@ class ArticlesAggregateChart extends ChartWidget
#[\Override]
protected function getData(): array
{
$data = Trend::model(WebsiteArticle::class)
->between(
start: now()->startOfMonth(),
end: now()->endOfMonth(),
)
->perDay()
->count();
$data = WebsiteArticle::query()
->whereBetween('created_at', [now()->startOfMonth(), now()->endOfMonth()])
->selectRaw('DATE(created_at) as date, COUNT(*) as aggregate')
->groupBy(DB::raw('DATE(created_at)'))
->orderBy('date')
->get();
$label = __('filament::resources.stats.articles_chart.label');
@@ -48,10 +46,10 @@ class ArticlesAggregateChart extends ChartWidget
'datasets' => [
[
'label' => $label,
'data' => $data->map(fn (TrendValue $value) => $value->aggregate),
'data' => $data->pluck('aggregate'),
],
],
'labels' => $data->map(fn (TrendValue $value) => $value->date),
'labels' => $data->pluck('date'),
];
}
+29 -33
View File
@@ -4,11 +4,10 @@ namespace App\Http\Controllers\Shop;
use App\Http\Controllers\Controller;
use App\Http\Requests\AccountTopupFormRequest;
use App\Services\PayPalService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Srmklive\PayPal\Services\PayPal;
use Srmklive\PayPal\Services\PayPal as PayPalClient;
use Symfony\Component\HttpFoundation\Response;
class PayPalController extends Controller
@@ -17,17 +16,11 @@ class PayPalController extends Controller
private const string STATUS_COMPLETED = 'COMPLETED';
private ?PayPalClient $provider = null;
private PayPalService $paypal;
private function getProvider(): PayPalClient
public function __construct(PayPalService $paypal)
{
if (! $this->provider instanceof PayPal) {
$this->provider = new PayPalClient;
$this->provider->setApiCredentials(config('habbo.paypal'));
$this->provider->getAccessToken();
}
return $this->provider;
$this->paypal = $paypal;
}
public function process(AccountTopupFormRequest $request): Response|RedirectResponse
@@ -44,7 +37,7 @@ class PayPalController extends Controller
'user_action' => 'CONTINUE',
],
'purchase_units' => [
0 => [
[
'amount' => [
'currency_code' => config('habbo.paypal.currency'),
'value' => (string) $amount,
@@ -53,14 +46,13 @@ class PayPalController extends Controller
],
];
$response = $this->getProvider()->createOrder($orderData);
$response = $this->paypal->createOrder($orderData);
if (isset($response['id']) === false) {
if ($response === null || ! isset($response['id'])) {
$message = $response['message'] ?? __('Something went wrong');
Log::error('Error creating order', ['response' => $response]);
return to_route('shop.index')->withErrors(
['message' => $response['message'] ?? __('Something went wrong')],
);
return to_route('shop.index')->withErrors(['message' => $message]);
}
foreach ($response['links'] as $links) {
@@ -76,7 +68,7 @@ class PayPalController extends Controller
}
return to_route('shop.index')->withErrors(
['message' => $response['message'] ?? __('Something went wrong')],
['message' => __('Something went wrong')],
);
}
@@ -97,26 +89,30 @@ class PayPalController extends Controller
return to_route('shop.index')->withErrors(['message' => __('Transaction already processed')]);
}
$response = $this->getProvider()->capturePaymentOrder($request['token']);
$paymentDetails = $response['purchase_units'][0]['payments']['captures'][0] ?? null;
$response = $this->paypal->capturePaymentOrder($request['token']);
if ($response === null) {
Log::error('PayPal capture returned null');
return to_route('shop.index')->withErrors(['message' => __('Something went wrong, please try again later')]);
}
if (isset($response['status'], $response['purchase_units'][0]['payments']['captures'][0]) === false) {
if (isset($response['error']['details'][0])) {
$details = $response['error']['details'][0];
$transaction->update([
'status' => $response['name'] ?? 'ERROR',
'description' => sprintf('%s - %s', $details['issue'] ?? '', $details['description'] ?? ''),
'amount' => 0,
]);
}
if (! isset($response['status'], $paymentDetails)) {
Log::error('Invalid response from PayPal', ['response' => $response]);
return to_route('shop.index')->withErrors(['message' => __('Something went wrong, please try again later')]);
}
if (($response['status'] ?? null) === null) {
$details = $response['error']['details'][0];
$transaction->update([
'status' => $response['name'],
'description' => sprintf('%s - %s', $details['issue'], $details['description']),
'amount' => 0,
]);
return to_route('shop.index')->withErrors(['message' => __('Something went wrong, please check your paypal account to make sure nothing was deducted and try again')]);
}
$paymentDetails = $response['purchase_units'][0]['payments']['captures'][0];
$capturedAmount = (float) $paymentDetails['amount']['value'];
$expectedAmount = (float) ($transaction->expected_amount ?? 0);
@@ -144,7 +140,7 @@ class PayPalController extends Controller
if ($response['status'] !== self::STATUS_COMPLETED) {
return to_route('shop.index')->withErrors(
['message' => $response['message'] ?? __('Something went wrong')],
['message' => __('Something went wrong')],
);
}
+152
View File
@@ -0,0 +1,152 @@
<?php
namespace App\Services;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
class PayPalService
{
private Client $client;
private string $mode;
private string $clientId;
private string $clientSecret;
public function __construct()
{
$this->mode = config('habbo.paypal.mode', 'sandbox');
$this->clientId = config("habbo.paypal.{$this->mode}.client_id", '');
$this->clientSecret = config("habbo.paypal.{$this->mode}.client_secret", '');
$baseUrl = $this->mode === 'live'
? 'https://api-m.paypal.com'
: 'https://api-m.sandbox.paypal.com';
$this->client = new Client([
'base_uri' => $baseUrl,
'timeout' => 30,
'http_errors' => false,
]);
}
public function getAccessToken(): ?string
{
$cacheKey = 'paypal_access_token_' . $this->mode;
return Cache::remember($cacheKey, 32400, function () {
try {
$response = $this->client->post('/v1/oauth2/token', [
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/x-www-form-urlencoded',
],
'auth' => [$this->clientId, $this->clientSecret],
'form_params' => [
'grant_type' => 'client_credentials',
],
]);
$body = json_decode($response->getBody(), true);
if ($response->getStatusCode() !== 200 || ! isset($body['access_token'])) {
Log::error('PayPal access token request failed', [
'status' => $response->getStatusCode(),
'response' => $body,
]);
return;
}
return $body['access_token'];
} catch (GuzzleException $e) {
Log::error('PayPal access token exception', [
'message' => $e->getMessage(),
]);
return;
}
});
}
public function createOrder(array $orderData): ?array
{
$accessToken = $this->getAccessToken();
if ($accessToken === null) {
return null;
}
try {
$response = $this->client->post('/v2/checkout/orders', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => "Bearer {$accessToken}",
'Accept' => 'application/json',
],
'json' => $orderData,
]);
$body = json_decode($response->getBody(), true);
if ($response->getStatusCode() >= 400) {
Log::error('PayPal create order failed', [
'status' => $response->getStatusCode(),
'response' => $body,
]);
return $body;
}
return $body;
} catch (GuzzleException $e) {
Log::error('PayPal create order exception', [
'message' => $e->getMessage(),
]);
return null;
}
}
public function capturePaymentOrder(string $orderId): ?array
{
$accessToken = $this->getAccessToken();
if ($accessToken === null) {
return null;
}
try {
$response = $this->client->post("/v2/checkout/orders/{$orderId}/capture", [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => "Bearer {$accessToken}",
'Accept' => 'application/json',
],
]);
$body = json_decode($response->getBody(), true);
if ($response->getStatusCode() >= 400) {
Log::error('PayPal capture order failed', [
'status' => $response->getStatusCode(),
'response' => $body,
]);
return $body;
}
return $body;
} catch (GuzzleException $e) {
Log::error('PayPal capture order exception', [
'message' => $e->getMessage(),
]);
return null;
}
}
}
+1 -68
View File
@@ -14,7 +14,6 @@
"ext-sockets": "*",
"doctrine/dbal": "^4.4",
"filament/filament": "^5.6",
"flowframe/laravel-trend": "0.4.99",
"guzzlehttp/guzzle": "^7.10",
"inertiajs/inertia-laravel": "^3.1",
"laravel/fortify": "^1.37",
@@ -31,7 +30,6 @@
"spatie/laravel-sluggable": "^4.0",
"spiral/roadrunner-cli": "^2.7",
"spiral/roadrunner-http": "^4.1",
"srmklive/paypal": "3.0.99",
"stevebauman/purify": "^6.3"
},
"require-dev": {
@@ -101,72 +99,7 @@
"pestphp/pest-plugin": true
}
},
"repositories": [
{
"type": "package",
"package": {
"name": "flowframe/laravel-trend",
"version": "0.4.99",
"source": {
"url": "https://github.com/Flowframe/laravel-trend.git",
"type": "git",
"reference": "5ace11d3075932652dc48963faa732c043aeb14d"
},
"autoload": {
"psr-4": {
"Flowframe\\Trend\\": "src"
}
},
"require": {
"php": "^8.0",
"illuminate/contracts": "^8.37|^9|^10.0|^11.0|^12.0|^13.0",
"illuminate/database": "^8.37|^9|^10.0|^11.0|^12.0|^13.0",
"illuminate/support": "^8.37|^9|^10.0|^11.0|^12.0|^13.0",
"spatie/laravel-package-tools": "^1.4.3"
}
}
},
{
"type": "package",
"package": {
"name": "srmklive/paypal",
"version": "3.0.99",
"source": {
"url": "https://github.com/srmklive/laravel-paypal.git",
"type": "git",
"reference": "1ddc49fd836a4785933ab953452152f3fedbac63"
},
"dist": {
"url": "https://api.github.com/repos/srmklive/laravel-paypal/zipball/1ddc49fd836a4785933ab953452152f3fedbac63",
"type": "zip",
"reference": "1ddc49fd836a4785933ab953452152f3fedbac63"
},
"autoload": {
"psr-4": {
"Srmklive\\PayPal\\": "src/"
}
},
"require": {
"php": ">=7.2|^8.0",
"ext-curl": "*",
"guzzlehttp/guzzle": "~7.0",
"nesbot/carbon": "~2.0|^3.0",
"illuminate/support": "~6.0|~7.0|~8.0|~9.0|^10.0|^11.0|^12.0|^13.0",
"illuminate/console": "~6.0|~7.0|~8.0|~9.0|^10.0|^11.0|^12.0|^13.0"
},
"extra": {
"laravel": {
"providers": [
"Srmklive\\PayPal\\Providers\\PayPalServiceProvider"
],
"aliases": {
"PayPal": "Srmklive\\PayPal\\Facades\\PayPal"
}
}
}
}
}
],
"repositories": [],
"minimum-stability": "stable",
"prefer-stable": true
}
Generated
+150 -212
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "f297a466517bedb236e0e702ed83d250",
"content-hash": "b124d8a22803da548bb33931f590e3bf",
"packages": [
{
"name": "bacon/bacon-qr-code",
@@ -213,23 +213,22 @@
},
{
"name": "brick/math",
"version": "0.14.8",
"version": "0.17.2",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
"reference": "63422359a44b7f06cae63c3b429b59e8efcc0629"
"reference": "8189e751995f9e15729c1aa2f89fa8f166ffe818"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629",
"reference": "63422359a44b7f06cae63c3b429b59e8efcc0629",
"url": "https://api.github.com/repos/brick/math/zipball/8189e751995f9e15729c1aa2f89fa8f166ffe818",
"reference": "8189e751995f9e15729c1aa2f89fa8f166ffe818",
"shasum": ""
},
"require": {
"php": "^8.2"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
"phpstan/phpstan": "2.1.22",
"phpunit/phpunit": "^11.5"
},
@@ -261,7 +260,7 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
"source": "https://github.com/brick/math/tree/0.14.8"
"source": "https://github.com/brick/math/tree/0.17.2"
},
"funding": [
{
@@ -269,7 +268,7 @@
"type": "github"
}
],
"time": "2026-02-10T14:33:43+00:00"
"time": "2026-05-25T20:34:43+00:00"
},
{
"name": "carbonphp/carbon-doctrine-types",
@@ -1863,16 +1862,16 @@
},
{
"name": "firebase/php-jwt",
"version": "v7.0.5",
"version": "v7.1.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/php-jwt.git",
"reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380"
"reference": "b374a5d1a4f1f67fadc2165cdb284645945e2fc0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/googleapis/php-jwt/zipball/47ad26bab5e7c70ae8a6f08ed25ff83631121380",
"reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380",
"url": "https://api.github.com/repos/googleapis/php-jwt/zipball/b374a5d1a4f1f67fadc2165cdb284645945e2fc0",
"reference": "b374a5d1a4f1f67fadc2165cdb284645945e2fc0",
"shasum": ""
},
"require": {
@@ -1881,6 +1880,7 @@
"require-dev": {
"guzzlehttp/guzzle": "^7.4",
"phpfastcache/phpfastcache": "^9.2",
"phpseclib/phpseclib": "~3.0",
"phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^9.5",
"psr/cache": "^2.0||^3.0",
@@ -1889,7 +1889,8 @@
},
"suggest": {
"ext-sodium": "Support EdDSA (Ed25519) signatures",
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
"paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present",
"phpseclib/phpseclib": "Support PS256 (RSASSA-PSS) signatures"
},
"type": "library",
"autoload": {
@@ -1914,38 +1915,16 @@
}
],
"description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
"homepage": "https://github.com/firebase/php-jwt",
"homepage": "https://github.com/googleapis/php-jwt",
"keywords": [
"jwt",
"php"
],
"support": {
"issues": "https://github.com/googleapis/php-jwt/issues",
"source": "https://github.com/googleapis/php-jwt/tree/v7.0.5"
"source": "https://github.com/googleapis/php-jwt/tree/v7.1.0"
},
"time": "2026-04-01T20:38:03+00:00"
},
{
"name": "flowframe/laravel-trend",
"version": "0.4.99",
"source": {
"type": "git",
"url": "https://github.com/Flowframe/laravel-trend.git",
"reference": "5ace11d3075932652dc48963faa732c043aeb14d"
},
"require": {
"illuminate/contracts": "^8.37|^9|^10.0|^11.0|^12.0|^13.0",
"illuminate/database": "^8.37|^9|^10.0|^11.0|^12.0|^13.0",
"illuminate/support": "^8.37|^9|^10.0|^11.0|^12.0|^13.0",
"php": "^8.0",
"spatie/laravel-package-tools": "^1.4.3"
},
"type": "library",
"autoload": {
"psr-4": {
"Flowframe\\Trend\\": "src"
}
}
"time": "2026-06-11T17:54:14+00:00"
},
{
"name": "fruitcake/php-cors",
@@ -2020,16 +1999,16 @@
},
{
"name": "google/protobuf",
"version": "v5.35.0",
"version": "v5.35.1",
"source": {
"type": "git",
"url": "https://github.com/protocolbuffers/protobuf-php.git",
"reference": "d96ed77c7edaff3cd576a74173aa0b0655c87b1a"
"reference": "55bb4a7d6739b5af0927b96213c1371a3afb7cfb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/d96ed77c7edaff3cd576a74173aa0b0655c87b1a",
"reference": "d96ed77c7edaff3cd576a74173aa0b0655c87b1a",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/55bb4a7d6739b5af0927b96213c1371a3afb7cfb",
"reference": "55bb4a7d6739b5af0927b96213c1371a3afb7cfb",
"shasum": ""
},
"require": {
@@ -2058,9 +2037,9 @@
"proto"
],
"support": {
"source": "https://github.com/protocolbuffers/protobuf-php/tree/v5.35.0"
"source": "https://github.com/protocolbuffers/protobuf-php/tree/v5.35.1"
},
"time": "2026-05-19T22:13:40+00:00"
"time": "2026-06-11T21:19:23+00:00"
},
{
"name": "graham-campbell/result-type",
@@ -2126,22 +2105,22 @@
},
{
"name": "guzzlehttp/guzzle",
"version": "7.11.1",
"version": "7.12.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "5af96f374e0ab4ebd747b8310888c99d3adb0a8c"
"reference": "d34627490fbc03bf5c5d7cfed81f2faa19519425"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/5af96f374e0ab4ebd747b8310888c99d3adb0a8c",
"reference": "5af96f374e0ab4ebd747b8310888c99d3adb0a8c",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/d34627490fbc03bf5c5d7cfed81f2faa19519425",
"reference": "d34627490fbc03bf5c5d7cfed81f2faa19519425",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/promises": "^2.5",
"guzzlehttp/psr7": "^2.11",
"guzzlehttp/psr7": "^2.12.1",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.5 || ^3.0",
@@ -2154,7 +2133,7 @@
"bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
"guzzle/client-integration-tests": "3.0.2",
"guzzlehttp/test-server": "^0.5",
"guzzlehttp/test-server": "^0.5.1",
"php-http/message-factory": "^1.1",
"phpunit/phpunit": "^8.5.52 || ^9.6.34",
"psr/log": "^1.1 || ^2.0 || ^3.0"
@@ -2234,7 +2213,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.11.1"
"source": "https://github.com/guzzle/guzzle/tree/7.12.1"
},
"funding": [
{
@@ -2250,7 +2229,7 @@
"type": "tidelift"
}
],
"time": "2026-06-07T22:54:06+00:00"
"time": "2026-06-18T14:12:49+00:00"
},
{
"name": "guzzlehttp/promises",
@@ -2338,16 +2317,16 @@
},
{
"name": "guzzlehttp/psr7",
"version": "2.11.0",
"version": "2.12.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "bbb5e61349fa5cb822b3e87842b951088b76b81f"
"reference": "172ef2f4e9824c1e058b7f30be8ae25a02c0f2b7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/bbb5e61349fa5cb822b3e87842b951088b76b81f",
"reference": "bbb5e61349fa5cb822b3e87842b951088b76b81f",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/172ef2f4e9824c1e058b7f30be8ae25a02c0f2b7",
"reference": "172ef2f4e9824c1e058b7f30be8ae25a02c0f2b7",
"shasum": ""
},
"require": {
@@ -2437,7 +2416,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.11.0"
"source": "https://github.com/guzzle/psr7/tree/2.12.1"
},
"funding": [
{
@@ -2453,20 +2432,20 @@
"type": "tidelift"
}
],
"time": "2026-06-02T12:30:48+00:00"
"time": "2026-06-18T09:49:37+00:00"
},
{
"name": "guzzlehttp/uri-template",
"version": "v1.0.6",
"version": "v1.0.7",
"source": {
"type": "git",
"url": "https://github.com/guzzle/uri-template.git",
"reference": "eef7f87bab6f204eba3c39224d8075c70c637946"
"reference": "7fe811c23a9e3cd712b4389eaeb50b5456d8c529"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/uri-template/zipball/eef7f87bab6f204eba3c39224d8075c70c637946",
"reference": "eef7f87bab6f204eba3c39224d8075c70c637946",
"url": "https://api.github.com/repos/guzzle/uri-template/zipball/7fe811c23a9e3cd712b4389eaeb50b5456d8c529",
"reference": "7fe811c23a9e3cd712b4389eaeb50b5456d8c529",
"shasum": ""
},
"require": {
@@ -2523,7 +2502,7 @@
],
"support": {
"issues": "https://github.com/guzzle/uri-template/issues",
"source": "https://github.com/guzzle/uri-template/tree/v1.0.6"
"source": "https://github.com/guzzle/uri-template/tree/v1.0.7"
},
"funding": [
{
@@ -2539,7 +2518,7 @@
"type": "tidelift"
}
],
"time": "2026-05-23T22:00:21+00:00"
"time": "2026-06-12T21:33:43+00:00"
},
{
"name": "inertiajs/inertia-laravel",
@@ -2831,16 +2810,16 @@
},
{
"name": "laravel/framework",
"version": "v13.15.0",
"version": "v13.16.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "7e23b2aa4e1133a43835c93a810b4bedc40e425b"
"reference": "6135650d69bd9442e470bb1b343422081b076f1e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/7e23b2aa4e1133a43835c93a810b4bedc40e425b",
"reference": "7e23b2aa4e1133a43835c93a810b4bedc40e425b",
"url": "https://api.github.com/repos/laravel/framework/zipball/6135650d69bd9442e470bb1b343422081b076f1e",
"reference": "6135650d69bd9442e470bb1b343422081b076f1e",
"shasum": ""
},
"require": {
@@ -3051,7 +3030,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2026-06-09T13:45:51+00:00"
"time": "2026-06-16T16:07:50+00:00"
},
{
"name": "laravel/octane",
@@ -3395,16 +3374,16 @@
},
{
"name": "laravel/socialite",
"version": "v5.27.0",
"version": "v5.28.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/socialite.git",
"reference": "40e0757a75637c7b2dff05d3286b0d8fc25e5c0e"
"reference": "4c131ff4b24d8881a9c8fe4eecb5ffeff9803f26"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/socialite/zipball/40e0757a75637c7b2dff05d3286b0d8fc25e5c0e",
"reference": "40e0757a75637c7b2dff05d3286b0d8fc25e5c0e",
"url": "https://api.github.com/repos/laravel/socialite/zipball/4c131ff4b24d8881a9c8fe4eecb5ffeff9803f26",
"reference": "4c131ff4b24d8881a9c8fe4eecb5ffeff9803f26",
"shasum": ""
},
"require": {
@@ -3463,7 +3442,7 @@
"issues": "https://github.com/laravel/socialite/issues",
"source": "https://github.com/laravel/socialite"
},
"time": "2026-04-24T14:05:47+00:00"
"time": "2026-06-12T03:24:05+00:00"
},
{
"name": "laravel/tinker",
@@ -4525,16 +4504,16 @@
},
{
"name": "nesbot/carbon",
"version": "3.11.4",
"version": "3.13.0",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon.git",
"reference": "e890471a3494740f7d9326d72ce6a8c559ffee60"
"reference": "40f6618f052df16b545f626fbf9a878e6497d16a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/e890471a3494740f7d9326d72ce6a8c559ffee60",
"reference": "e890471a3494740f7d9326d72ce6a8c559ffee60",
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/40f6618f052df16b545f626fbf9a878e6497d16a",
"reference": "40f6618f052df16b545f626fbf9a878e6497d16a",
"shasum": ""
},
"require": {
@@ -4626,7 +4605,7 @@
"type": "tidelift"
}
],
"time": "2026-04-07T09:57:54+00:00"
"time": "2026-06-18T13:49:15+00:00"
},
{
"name": "nette/php-generator",
@@ -5007,16 +4986,16 @@
},
{
"name": "opcodesio/log-viewer",
"version": "v3.24.0",
"version": "v3.24.2",
"source": {
"type": "git",
"url": "https://github.com/opcodesio/log-viewer.git",
"reference": "8afefde09f6005f7d8ee3f628aa311f27c91d125"
"reference": "bdf931182c40001dd3ebf728fdded0648b121ae0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/opcodesio/log-viewer/zipball/8afefde09f6005f7d8ee3f628aa311f27c91d125",
"reference": "8afefde09f6005f7d8ee3f628aa311f27c91d125",
"url": "https://api.github.com/repos/opcodesio/log-viewer/zipball/bdf931182c40001dd3ebf728fdded0648b121ae0",
"reference": "bdf931182c40001dd3ebf728fdded0648b121ae0",
"shasum": ""
},
"require": {
@@ -5079,7 +5058,7 @@
],
"support": {
"issues": "https://github.com/opcodesio/log-viewer/issues",
"source": "https://github.com/opcodesio/log-viewer/tree/v3.24.0"
"source": "https://github.com/opcodesio/log-viewer/tree/v3.24.2"
},
"funding": [
{
@@ -5091,20 +5070,20 @@
"type": "github"
}
],
"time": "2026-03-15T19:31:14+00:00"
"time": "2026-06-11T13:41:17+00:00"
},
{
"name": "opcodesio/mail-parser",
"version": "v0.2.3",
"version": "v0.2.4",
"source": {
"type": "git",
"url": "https://github.com/opcodesio/mail-parser.git",
"reference": "6f9544a1e526d5849cf8d96600556b2951893aec"
"reference": "7151e4183288e46d911a76803c5545a1c8822226"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/opcodesio/mail-parser/zipball/6f9544a1e526d5849cf8d96600556b2951893aec",
"reference": "6f9544a1e526d5849cf8d96600556b2951893aec",
"url": "https://api.github.com/repos/opcodesio/mail-parser/zipball/7151e4183288e46d911a76803c5545a1c8822226",
"reference": "7151e4183288e46d911a76803c5545a1c8822226",
"shasum": ""
},
"require": {
@@ -5142,9 +5121,9 @@
],
"support": {
"issues": "https://github.com/opcodesio/mail-parser/issues",
"source": "https://github.com/opcodesio/mail-parser/tree/v0.2.3"
"source": "https://github.com/opcodesio/mail-parser/tree/v0.2.4"
},
"time": "2026-02-28T09:04:57+00:00"
"time": "2026-06-11T08:50:37+00:00"
},
{
"name": "openspout/openspout",
@@ -5611,16 +5590,16 @@
},
{
"name": "phpseclib/phpseclib",
"version": "3.0.53",
"version": "3.0.55",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "511ddc8e352d5d1f1e33bea468b6f4ef48438cf9"
"reference": "db9744e6d47e742b1f974e965ad49bdd041105af"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/511ddc8e352d5d1f1e33bea468b6f4ef48438cf9",
"reference": "511ddc8e352d5d1f1e33bea468b6f4ef48438cf9",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/db9744e6d47e742b1f974e965ad49bdd041105af",
"reference": "db9744e6d47e742b1f974e965ad49bdd041105af",
"shasum": ""
},
"require": {
@@ -5701,7 +5680,7 @@
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.53"
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.55"
},
"funding": [
{
@@ -5717,7 +5696,7 @@
"type": "tidelift"
}
],
"time": "2026-06-09T18:08:26+00:00"
"time": "2026-06-14T23:24:10+00:00"
},
{
"name": "phpstan/phpdoc-parser",
@@ -6619,20 +6598,20 @@
},
{
"name": "ramsey/uuid",
"version": "4.9.2",
"version": "4.9.3",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
"reference": "8429c78ca35a09f27565311b98101e2826affde0"
"reference": "1df15849d00943a67d677dc9cfd80795f038c9f8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0",
"reference": "8429c78ca35a09f27565311b98101e2826affde0",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/1df15849d00943a67d677dc9cfd80795f038c9f8",
"reference": "1df15849d00943a67d677dc9cfd80795f038c9f8",
"shasum": ""
},
"require": {
"brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14",
"brick/math": ">=0.8.16 <=0.18",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
},
@@ -6691,9 +6670,9 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
"source": "https://github.com/ramsey/uuid/tree/4.9.2"
"source": "https://github.com/ramsey/uuid/tree/4.9.3"
},
"time": "2025-12-14T04:43:48+00:00"
"time": "2026-06-18T03:57:49+00:00"
},
{
"name": "roadrunner-php/roadrunner-api-dto",
@@ -7734,16 +7713,16 @@
},
{
"name": "spiral/roadrunner",
"version": "v2025.1.14",
"version": "v2025.1.15",
"source": {
"type": "git",
"url": "https://github.com/roadrunner-server/roadrunner.git",
"reference": "3853ad693522e82d53d62950e5f1315402c910f2"
"reference": "321b817fab1056e404533ca1ddd200e77d1525fd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/roadrunner-server/roadrunner/zipball/3853ad693522e82d53d62950e5f1315402c910f2",
"reference": "3853ad693522e82d53d62950e5f1315402c910f2",
"url": "https://api.github.com/repos/roadrunner-server/roadrunner/zipball/321b817fab1056e404533ca1ddd200e77d1525fd",
"reference": "321b817fab1056e404533ca1ddd200e77d1525fd",
"shasum": ""
},
"type": "metapackage",
@@ -7771,7 +7750,7 @@
"chat": "https://discord.gg/V6EK4he",
"docs": "https://docs.roadrunner.dev/",
"issues": "https://github.com/roadrunner-server/roadrunner/issues",
"source": "https://github.com/roadrunner-server/roadrunner/tree/v2025.1.14"
"source": "https://github.com/roadrunner-server/roadrunner/tree/v2025.1.15"
},
"funding": [
{
@@ -7779,7 +7758,7 @@
"type": "github"
}
],
"time": "2026-05-15T13:20:01+00:00"
"time": "2026-06-17T14:49:38+00:00"
},
{
"name": "spiral/roadrunner-cli",
@@ -8354,44 +8333,6 @@
],
"time": "2026-03-23T22:56:56+00:00"
},
{
"name": "srmklive/paypal",
"version": "3.0.99",
"source": {
"type": "git",
"url": "https://github.com/srmklive/laravel-paypal.git",
"reference": "1ddc49fd836a4785933ab953452152f3fedbac63"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/srmklive/laravel-paypal/zipball/1ddc49fd836a4785933ab953452152f3fedbac63",
"reference": "1ddc49fd836a4785933ab953452152f3fedbac63"
},
"require": {
"ext-curl": "*",
"guzzlehttp/guzzle": "~7.0",
"illuminate/console": "~6.0|~7.0|~8.0|~9.0|^10.0|^11.0|^12.0|^13.0",
"illuminate/support": "~6.0|~7.0|~8.0|~9.0|^10.0|^11.0|^12.0|^13.0",
"nesbot/carbon": "~2.0|^3.0",
"php": ">=7.2|^8.0"
},
"type": "library",
"extra": {
"laravel": {
"providers": [
"Srmklive\\PayPal\\Providers\\PayPalServiceProvider"
],
"aliases": {
"PayPal": "Srmklive\\PayPal\\Facades\\PayPal"
}
}
},
"autoload": {
"psr-4": {
"Srmklive\\PayPal\\": "src/"
}
}
},
{
"name": "stevebauman/purify",
"version": "v6.3.2",
@@ -11836,16 +11777,16 @@
},
{
"name": "ueberdosis/tiptap-php",
"version": "2.1.0",
"version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/ueberdosis/tiptap-php.git",
"reference": "6ea321fa665080e1a72ac5f52dfab19f6a292e2d"
"reference": "74bfb7be1c8c6102b240f3879b7f984a6ab87b97"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ueberdosis/tiptap-php/zipball/6ea321fa665080e1a72ac5f52dfab19f6a292e2d",
"reference": "6ea321fa665080e1a72ac5f52dfab19f6a292e2d",
"url": "https://api.github.com/repos/ueberdosis/tiptap-php/zipball/74bfb7be1c8c6102b240f3879b7f984a6ab87b97",
"reference": "74bfb7be1c8c6102b240f3879b7f984a6ab87b97",
"shasum": ""
},
"require": {
@@ -11885,7 +11826,7 @@
],
"support": {
"issues": "https://github.com/ueberdosis/tiptap-php/issues",
"source": "https://github.com/ueberdosis/tiptap-php/tree/2.1.0"
"source": "https://github.com/ueberdosis/tiptap-php/tree/2.1.1"
},
"funding": [
{
@@ -11901,7 +11842,7 @@
"type": "open_collective"
}
],
"time": "2026-01-10T16:40:02+00:00"
"time": "2026-06-12T18:19:46+00:00"
},
{
"name": "vlucas/phpdotenv",
@@ -12220,16 +12161,16 @@
},
{
"name": "webmozart/assert",
"version": "2.4.0",
"version": "2.4.1",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
"reference": "9007ea6f45ecf352a9422b36644e4bfc039b9155"
"reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/9007ea6f45ecf352a9422b36644e4bfc039b9155",
"reference": "9007ea6f45ecf352a9422b36644e4bfc039b9155",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/2ccb7c2e821038c03a3e6e1700c570c158c55f70",
"reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70",
"shasum": ""
},
"require": {
@@ -12280,9 +12221,9 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
"source": "https://github.com/webmozarts/assert/tree/2.4.0"
"source": "https://github.com/webmozarts/assert/tree/2.4.1"
},
"time": "2026-05-20T13:07:01+00:00"
"time": "2026-06-15T15:31:57+00:00"
}
],
"packages-dev": [
@@ -12381,28 +12322,29 @@
},
{
"name": "composer/pcre",
"version": "3.3.2",
"version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
"reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
"reference": "d5a341b3fb61f3001970940afb1d332968a183ed"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
"reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
"url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed",
"reference": "d5a341b3fb61f3001970940afb1d332968a183ed",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
"conflict": {
"phpstan/phpstan": "<1.11.10"
"phpstan/phpstan": "<2.2.2"
},
"require-dev": {
"phpstan/phpstan": "^1.12 || ^2",
"phpstan/phpstan-strict-rules": "^1 || ^2",
"phpunit/phpunit": "^8 || ^9"
"phpstan/phpstan": "^2",
"phpstan/phpstan-deprecation-rules": "^2",
"phpstan/phpstan-strict-rules": "^2",
"phpunit/phpunit": "^9"
},
"type": "library",
"extra": {
@@ -12440,7 +12382,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
"source": "https://github.com/composer/pcre/tree/3.3.2"
"source": "https://github.com/composer/pcre/tree/3.4.0"
},
"funding": [
{
@@ -12450,13 +12392,9 @@
{
"url": "https://github.com/composer",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
"type": "tidelift"
}
],
"time": "2024-11-12T16:29:46+00:00"
"time": "2026-06-07T11:47:49+00:00"
},
{
"name": "composer/xdebug-handler",
@@ -13116,16 +13054,16 @@
},
{
"name": "laravel/mcp",
"version": "v0.8.0",
"version": "v0.8.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/mcp.git",
"reference": "18221a07093d84153883bc956e5e213999549a4b"
"reference": "fdc39c9e21048801508765cb4d72bd9e8501b51f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/mcp/zipball/18221a07093d84153883bc956e5e213999549a4b",
"reference": "18221a07093d84153883bc956e5e213999549a4b",
"url": "https://api.github.com/repos/laravel/mcp/zipball/fdc39c9e21048801508765cb4d72bd9e8501b51f",
"reference": "fdc39c9e21048801508765cb4d72bd9e8501b51f",
"shasum": ""
},
"require": {
@@ -13186,20 +13124,20 @@
"issues": "https://github.com/laravel/mcp/issues",
"source": "https://github.com/laravel/mcp"
},
"time": "2026-06-08T13:48:51+00:00"
"time": "2026-06-11T13:59:49+00:00"
},
{
"name": "laravel/pint",
"version": "v1.29.1",
"version": "v1.29.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80"
"reference": "da1d1111a6aa2e082d2a388b194afe1ba0a05d14"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/0770e9b7fafd50d4586881d456d6eb41c9247a80",
"reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80",
"url": "https://api.github.com/repos/laravel/pint/zipball/da1d1111a6aa2e082d2a388b194afe1ba0a05d14",
"reference": "da1d1111a6aa2e082d2a388b194afe1ba0a05d14",
"shasum": ""
},
"require": {
@@ -13210,14 +13148,14 @@
"php": "^8.2.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.95.1",
"illuminate/view": "^12.56.0",
"larastan/larastan": "^3.9.6",
"friendsofphp/php-cs-fixer": "^3.95.8",
"illuminate/view": "^12.62.0",
"larastan/larastan": "^3.10.0",
"laravel-zero/framework": "^12.1.0",
"laravel/agent-detector": "^2.0.2",
"mockery/mockery": "^1.6.12",
"nunomaduro/termwind": "^2.4.0",
"pestphp/pest": "^3.8.6",
"shipfastlabs/agent-detector": "^1.1.3"
"pestphp/pest": "^3.8.6"
},
"bin": [
"builds/pint"
@@ -13254,7 +13192,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2026-04-20T15:26:14+00:00"
"time": "2026-06-16T15:34:04+00:00"
},
{
"name": "laravel/roster",
@@ -13621,16 +13559,16 @@
},
{
"name": "pestphp/pest",
"version": "v4.7.2",
"version": "v4.7.3",
"source": {
"type": "git",
"url": "https://github.com/pestphp/pest.git",
"reference": "40b88b62ef8a7c6fcae5fc28f1fa747f601c131b"
"reference": "87882a8561bf3ddf230b9a6b764f367f687d5b2f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/pestphp/pest/zipball/40b88b62ef8a7c6fcae5fc28f1fa747f601c131b",
"reference": "40b88b62ef8a7c6fcae5fc28f1fa747f601c131b",
"url": "https://api.github.com/repos/pestphp/pest/zipball/87882a8561bf3ddf230b9a6b764f367f687d5b2f",
"reference": "87882a8561bf3ddf230b9a6b764f367f687d5b2f",
"shasum": ""
},
"require": {
@@ -13643,12 +13581,12 @@
"pestphp/pest-plugin-mutate": "^4.0.1",
"pestphp/pest-plugin-profanity": "^4.2.1",
"php": "^8.3.0",
"phpunit/phpunit": "^12.5.28",
"phpunit/phpunit": "^12.5.29",
"symfony/process": "^7.4.13|^8.1.0"
},
"conflict": {
"filp/whoops": "<2.18.3",
"phpunit/phpunit": ">12.5.28",
"phpunit/phpunit": ">12.5.29",
"sebastian/exporter": "<7.0.0",
"webmozart/assert": "<1.11.0"
},
@@ -13724,7 +13662,7 @@
],
"support": {
"issues": "https://github.com/pestphp/pest/issues",
"source": "https://github.com/pestphp/pest/tree/v4.7.2"
"source": "https://github.com/pestphp/pest/tree/v4.7.3"
},
"funding": [
{
@@ -13736,7 +13674,7 @@
"type": "github"
}
],
"time": "2026-06-01T06:08:59+00:00"
"time": "2026-06-12T05:57:27+00:00"
},
{
"name": "pestphp/pest-plugin",
@@ -14707,16 +14645,16 @@
},
{
"name": "phpunit/phpunit",
"version": "12.5.28",
"version": "12.5.29",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "5895d05f5bf421ed230fbd76e1277e4b8955def4"
"reference": "9aa66a47db3ea70f1a468e66dd969f67e594945a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5895d05f5bf421ed230fbd76e1277e4b8955def4",
"reference": "5895d05f5bf421ed230fbd76e1277e4b8955def4",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9aa66a47db3ea70f1a468e66dd969f67e594945a",
"reference": "9aa66a47db3ea70f1a468e66dd969f67e594945a",
"shasum": ""
},
"require": {
@@ -14730,7 +14668,7 @@
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
"php": ">=8.3",
"phpunit/php-code-coverage": "^12.5.6",
"phpunit/php-code-coverage": "^12.5.7",
"phpunit/php-file-iterator": "^6.0.1",
"phpunit/php-invoker": "^6.0.0",
"phpunit/php-text-template": "^5.0.0",
@@ -14740,7 +14678,7 @@
"sebastian/diff": "^7.0.0",
"sebastian/environment": "^8.1.2",
"sebastian/exporter": "^7.0.3",
"sebastian/global-state": "^8.0.2",
"sebastian/global-state": "^8.0.3",
"sebastian/object-enumerator": "^7.0.0",
"sebastian/recursion-context": "^7.0.1",
"sebastian/type": "^6.0.4",
@@ -14785,7 +14723,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.28"
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.29"
},
"funding": [
{
@@ -14793,25 +14731,25 @@
"type": "other"
}
],
"time": "2026-05-27T14:01:10+00:00"
"time": "2026-06-04T06:14:42+00:00"
},
{
"name": "rector/rector",
"version": "2.4.5",
"version": "2.4.6",
"source": {
"type": "git",
"url": "https://github.com/rectorphp/rector.git",
"reference": "cbd86024be5014d3c14d9f0b3f7aae8ecbffd62c"
"reference": "9b9e5c76618e4d359f65b54ca2eabcad3d1761ee"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/cbd86024be5014d3c14d9f0b3f7aae8ecbffd62c",
"reference": "cbd86024be5014d3c14d9f0b3f7aae8ecbffd62c",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/9b9e5c76618e4d359f65b54ca2eabcad3d1761ee",
"reference": "9b9e5c76618e4d359f65b54ca2eabcad3d1761ee",
"shasum": ""
},
"require": {
"php": "^7.4|^8.0",
"phpstan/phpstan": "^2.1.56"
"phpstan/phpstan": "^2.2.2"
},
"conflict": {
"rector/rector-doctrine": "*",
@@ -14845,7 +14783,7 @@
],
"support": {
"issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.4.5"
"source": "https://github.com/rectorphp/rector/tree/2.4.6"
},
"funding": [
{
@@ -14853,7 +14791,7 @@
"type": "github"
}
],
"time": "2026-05-26T21:03:22+00:00"
"time": "2026-06-17T11:56:28+00:00"
},
{
"name": "sebastian/cli-parser",
-48
View File
@@ -1,48 +0,0 @@
<?php
declare(strict_types=1);
return [
'sandbox' => [
'client_id' => env('PAYPAL_SANDBOX_CLIENT_ID', ''),
'client_secret' => env('PAYPAL_SANDBOX_CLIENT_SECRET', ''),
'app_id' => env('PAYPAL_SANDBOX_APP_ID', 'APP-80W284485P519543T'),
'settings' => [
'mode' => 'sandbox',
'http.ConnectionTimeOut' => 30,
'log.LogEnabled' => false,
'log.FileName' => storage_path('logs/paypal.log'),
'log.LogLevel' => 'ERROR',
'validation.level' => 'log',
'cache.enabled' => true,
'cache.FileName' => storage_path('framework/cache/paypal.auth.cache'),
],
],
'live' => [
'client_id' => env('PAYPAL_LIVE_CLIENT_ID', ''),
'client_secret' => env('PAYPAL_LIVE_CLIENT_SECRET', ''),
'app_id' => env('PAYPAL_LIVE_APP_ID', ''),
'settings' => [
'mode' => 'live',
'http.ConnectionTimeOut' => 30,
'log.LogEnabled' => false,
'log.FileName' => storage_path('logs/paypal.log'),
'log.LogLevel' => 'ERROR',
'validation.level' => 'log',
'cache.enabled' => true,
'cache.FileName' => storage_path('framework/cache/paypal.auth.cache'),
],
],
'settings' => [
'mode' => env('PAYPAL_MODE', 'sandbox'),
'http.ConnectionTimeOut' => 30,
'log.LogEnabled' => false,
'log.FileName' => storage_path('logs/paypal.log'),
'log.LogLevel' => 'ERROR',
'validation.level' => 'log',
'cache.enabled' => true,
'cache.FileName' => storage_path('framework/cache/paypal.auth.cache'),
],
];
+10 -10
View File
@@ -29,36 +29,36 @@
"@popperjs/core": "2.11.8",
"@prettier/plugin-php": "0.25.0",
"@shufo/prettier-plugin-blade": "1.16.2",
"@swc/core": "^1.15.40",
"@swc/core": "^1.15.41",
"@tailwindcss/forms": "0.5.11",
"@tailwindcss/postcss": "4.3.0",
"@tailwindcss/typography": "0.5.19",
"@tailwindcss/postcss": "4.3.1",
"@tailwindcss/typography": "0.5.20",
"alpinejs": "3.15.12",
"autoprefixer": "10.5.0",
"axios": "^1.17.0",
"esbuild": "^0.28.0",
"eslint": "^10.4.1",
"axios": "^1.18.0",
"esbuild": "^0.28.1",
"eslint": "^10.5.0",
"eslint-plugin-vue": "10.9.2",
"laravel-vite-plugin": "^3.1.0",
"lodash": "^4.18.1",
"postcss": "8.5.15",
"postcss-import": "16.1.1",
"prettier": "3.8.3",
"prettier": "3.8.4",
"sass-loader": "17.0.0",
"stylelint": "^17.13.0",
"stylelint-config-standard": "^40.0.0",
"tailwindcss": "4.3.0",
"tailwindcss": "4.3.1",
"turbolinks": "5.2.0",
"vite": "^8.0.16"
},
"dependencies": {
"@inertiajs/react": "^3.3.1",
"@inertiajs/react": "^3.4.0",
"@vitejs/plugin-react": "^6.0.2",
"flowbite": "4.0.2",
"json5": "^2.2.3",
"react": "^19.2.7",
"react-dom": "^19.2.7",
"sass": "1.100.0",
"sass": "1.101.0",
"swiper": "^12.2.0"
}
}
+2 -2
View File
@@ -111,7 +111,7 @@
"src": "public/assets/images/profile/profile-bg.png"
},
"resources/css/global.css": {
"file": "assets/global-DmKtm1TC.css",
"file": "assets/global-D3hwr7UE.css",
"name": "global",
"names": [
"global.css"
@@ -166,7 +166,7 @@
]
},
"resources/themes/atom/css/app.css": {
"file": "assets/app-DtTGSxkD.css",
"file": "assets/app-BXjZsuSm.css",
"name": "app",
"names": [
"app.css"
@@ -100,7 +100,7 @@
{{ auth()->user() ? __('Current balance: $:balance', ['balance' => auth()->user()->website_balance]) : __('Current balance: Login required') }}
</div>
@if(config('paypal.live.client_id') && config('paypal.live.client_secret') && config('paypal.live.client_id') !== 'test_client_id')
@if(config('habbo.paypal.live.client_id') && config('habbo.paypal.live.client_secret') && config('habbo.paypal.live.client_id') !== 'test_client_id')
<form action="{{ route('paypal.process-transaction') }}" method="GET" class="mt-3">
@csrf
@@ -94,7 +94,7 @@
{{ __('Current balance: $:balance', ['balance' => auth()->user()->website_balance]) }}
</div>
@if(config('paypal.live.client_id') && config('paypal.live.client_secret') && config('paypal.live.client_id') !== 'test_client_id')
@if(config('habbo.paypal.live.client_id') && config('habbo.paypal.live.client_secret') && config('habbo.paypal.live.client_id') !== 'test_client_id')
<form action="{{ route('paypal.process-transaction') }}" method="GET" class="mt-3">
@csrf
+792 -793
View File
File diff suppressed because it is too large Load Diff