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 App\Models\User\UserOrder;
use Filament\Widgets\ChartWidget; use Filament\Widgets\ChartWidget;
use Flowframe\Trend\Trend;
use Flowframe\Trend\TrendValue;
use Illuminate\Contracts\Support\Htmlable; use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Support\Facades\DB;
class OrdersAggregateChart extends ChartWidget class OrdersAggregateChart extends ChartWidget
{ {
@@ -28,47 +27,45 @@ class OrdersAggregateChart extends ChartWidget
return __('filament::resources.stats.orders_chart.description'); 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] #[\Override]
protected function getData(): array protected function getData(): array
{ {
$pendingOrder = Trend::query(UserOrder::pending()) $pendingData = $this->getTrendData(UserOrder::pending());
->between(start: now()->startOfMonth(), end: now()->endOfMonth()) $cancelledData = $this->getTrendData(UserOrder::cancelled());
->perDay() $completedData = $this->getTrendData(UserOrder::completed());
->count();
$cancelledOrder = Trend::query(UserOrder::cancelled()) $allDates = collect(array_keys(array_merge($pendingData, $cancelledData, $completedData)))
->between(start: now()->startOfMonth(), end: now()->endOfMonth()) ->unique()
->perDay() ->sort()
->count(); ->values();
$completedOrder = Trend::query(UserOrder::completed())
->between(start: now()->startOfMonth(), end: now()->endOfMonth())
->perDay()
->count();
$datasets = [ $datasets = [
$this->getDataset($pendingOrder, __('filament::resources.stats.orders_chart.pending'), '#fbbf24', '#f59e0b'), $this->getDataset($pendingData, $allDates, __('filament::resources.stats.orders_chart.pending'), '#fbbf24', '#f59e0b'),
$this->getDataset($cancelledOrder, __('filament::resources.stats.orders_chart.cancelled'), '#dc2626', '#b91c1c'), $this->getDataset($cancelledData, $allDates, __('filament::resources.stats.orders_chart.cancelled'), '#dc2626', '#b91c1c'),
$this->getDataset($completedOrder, __('filament::resources.stats.orders_chart.completed'), '#10b981', '#059669'), $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 [ return [
'datasets' => $datasets, '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 [ return [
'label' => $label, 'label' => $label,
'data' => $data->map(fn (TrendValue $value) => $value->aggregate), 'data' => $allDates->map(fn ($date) => $data[$date] ?? 0),
'backgroundColor' => $backgroundColor, 'backgroundColor' => $backgroundColor,
'borderColor' => $borderColor, 'borderColor' => $borderColor,
]; ];
@@ -4,9 +4,8 @@ namespace App\Filament\Widgets;
use App\Models\Articles\WebsiteArticle; use App\Models\Articles\WebsiteArticle;
use Filament\Widgets\ChartWidget; use Filament\Widgets\ChartWidget;
use Flowframe\Trend\Trend;
use Flowframe\Trend\TrendValue;
use Illuminate\Contracts\Support\Htmlable; use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Support\Facades\DB;
class ArticlesAggregateChart extends ChartWidget class ArticlesAggregateChart extends ChartWidget
{ {
@@ -34,13 +33,12 @@ class ArticlesAggregateChart extends ChartWidget
#[\Override] #[\Override]
protected function getData(): array protected function getData(): array
{ {
$data = Trend::model(WebsiteArticle::class) $data = WebsiteArticle::query()
->between( ->whereBetween('created_at', [now()->startOfMonth(), now()->endOfMonth()])
start: now()->startOfMonth(), ->selectRaw('DATE(created_at) as date, COUNT(*) as aggregate')
end: now()->endOfMonth(), ->groupBy(DB::raw('DATE(created_at)'))
) ->orderBy('date')
->perDay() ->get();
->count();
$label = __('filament::resources.stats.articles_chart.label'); $label = __('filament::resources.stats.articles_chart.label');
@@ -48,10 +46,10 @@ class ArticlesAggregateChart extends ChartWidget
'datasets' => [ 'datasets' => [
[ [
'label' => $label, '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\Controllers\Controller;
use App\Http\Requests\AccountTopupFormRequest; use App\Http\Requests\AccountTopupFormRequest;
use App\Services\PayPalService;
use Illuminate\Http\RedirectResponse; use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Srmklive\PayPal\Services\PayPal;
use Srmklive\PayPal\Services\PayPal as PayPalClient;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
class PayPalController extends Controller class PayPalController extends Controller
@@ -17,17 +16,11 @@ class PayPalController extends Controller
private const string STATUS_COMPLETED = 'COMPLETED'; 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->paypal = $paypal;
$this->provider = new PayPalClient;
$this->provider->setApiCredentials(config('habbo.paypal'));
$this->provider->getAccessToken();
}
return $this->provider;
} }
public function process(AccountTopupFormRequest $request): Response|RedirectResponse public function process(AccountTopupFormRequest $request): Response|RedirectResponse
@@ -44,7 +37,7 @@ class PayPalController extends Controller
'user_action' => 'CONTINUE', 'user_action' => 'CONTINUE',
], ],
'purchase_units' => [ 'purchase_units' => [
0 => [ [
'amount' => [ 'amount' => [
'currency_code' => config('habbo.paypal.currency'), 'currency_code' => config('habbo.paypal.currency'),
'value' => (string) $amount, '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]); Log::error('Error creating order', ['response' => $response]);
return to_route('shop.index')->withErrors( return to_route('shop.index')->withErrors(['message' => $message]);
['message' => $response['message'] ?? __('Something went wrong')],
);
} }
foreach ($response['links'] as $links) { foreach ($response['links'] as $links) {
@@ -76,7 +68,7 @@ class PayPalController extends Controller
} }
return to_route('shop.index')->withErrors( 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')]); return to_route('shop.index')->withErrors(['message' => __('Transaction already processed')]);
} }
$response = $this->getProvider()->capturePaymentOrder($request['token']); $response = $this->paypal->capturePaymentOrder($request['token']);
$paymentDetails = $response['purchase_units'][0]['payments']['captures'][0] ?? null;
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]); Log::error('Invalid response from PayPal', ['response' => $response]);
return to_route('shop.index')->withErrors(['message' => __('Something went wrong, please try again later')]); return to_route('shop.index')->withErrors(['message' => __('Something went wrong, please try again later')]);
} }
if (($response['status'] ?? null) === null) { $paymentDetails = $response['purchase_units'][0]['payments']['captures'][0];
$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')]);
}
$capturedAmount = (float) $paymentDetails['amount']['value']; $capturedAmount = (float) $paymentDetails['amount']['value'];
$expectedAmount = (float) ($transaction->expected_amount ?? 0); $expectedAmount = (float) ($transaction->expected_amount ?? 0);
@@ -144,7 +140,7 @@ class PayPalController extends Controller
if ($response['status'] !== self::STATUS_COMPLETED) { if ($response['status'] !== self::STATUS_COMPLETED) {
return to_route('shop.index')->withErrors( 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": "*", "ext-sockets": "*",
"doctrine/dbal": "^4.4", "doctrine/dbal": "^4.4",
"filament/filament": "^5.6", "filament/filament": "^5.6",
"flowframe/laravel-trend": "0.4.99",
"guzzlehttp/guzzle": "^7.10", "guzzlehttp/guzzle": "^7.10",
"inertiajs/inertia-laravel": "^3.1", "inertiajs/inertia-laravel": "^3.1",
"laravel/fortify": "^1.37", "laravel/fortify": "^1.37",
@@ -31,7 +30,6 @@
"spatie/laravel-sluggable": "^4.0", "spatie/laravel-sluggable": "^4.0",
"spiral/roadrunner-cli": "^2.7", "spiral/roadrunner-cli": "^2.7",
"spiral/roadrunner-http": "^4.1", "spiral/roadrunner-http": "^4.1",
"srmklive/paypal": "3.0.99",
"stevebauman/purify": "^6.3" "stevebauman/purify": "^6.3"
}, },
"require-dev": { "require-dev": {
@@ -101,72 +99,7 @@
"pestphp/pest-plugin": true "pestphp/pest-plugin": true
} }
}, },
"repositories": [ "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"
}
}
}
}
}
],
"minimum-stability": "stable", "minimum-stability": "stable",
"prefer-stable": true "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", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "f297a466517bedb236e0e702ed83d250", "content-hash": "b124d8a22803da548bb33931f590e3bf",
"packages": [ "packages": [
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
@@ -213,23 +213,22 @@
}, },
{ {
"name": "brick/math", "name": "brick/math",
"version": "0.14.8", "version": "0.17.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/brick/math.git", "url": "https://github.com/brick/math.git",
"reference": "63422359a44b7f06cae63c3b429b59e8efcc0629" "reference": "8189e751995f9e15729c1aa2f89fa8f166ffe818"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629", "url": "https://api.github.com/repos/brick/math/zipball/8189e751995f9e15729c1aa2f89fa8f166ffe818",
"reference": "63422359a44b7f06cae63c3b429b59e8efcc0629", "reference": "8189e751995f9e15729c1aa2f89fa8f166ffe818",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^8.2" "php": "^8.2"
}, },
"require-dev": { "require-dev": {
"php-coveralls/php-coveralls": "^2.2",
"phpstan/phpstan": "2.1.22", "phpstan/phpstan": "2.1.22",
"phpunit/phpunit": "^11.5" "phpunit/phpunit": "^11.5"
}, },
@@ -261,7 +260,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/brick/math/issues", "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": [ "funding": [
{ {
@@ -269,7 +268,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-02-10T14:33:43+00:00" "time": "2026-05-25T20:34:43+00:00"
}, },
{ {
"name": "carbonphp/carbon-doctrine-types", "name": "carbonphp/carbon-doctrine-types",
@@ -1863,16 +1862,16 @@
}, },
{ {
"name": "firebase/php-jwt", "name": "firebase/php-jwt",
"version": "v7.0.5", "version": "v7.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/googleapis/php-jwt.git", "url": "https://github.com/googleapis/php-jwt.git",
"reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380" "reference": "b374a5d1a4f1f67fadc2165cdb284645945e2fc0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/googleapis/php-jwt/zipball/47ad26bab5e7c70ae8a6f08ed25ff83631121380", "url": "https://api.github.com/repos/googleapis/php-jwt/zipball/b374a5d1a4f1f67fadc2165cdb284645945e2fc0",
"reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380", "reference": "b374a5d1a4f1f67fadc2165cdb284645945e2fc0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1881,6 +1880,7 @@
"require-dev": { "require-dev": {
"guzzlehttp/guzzle": "^7.4", "guzzlehttp/guzzle": "^7.4",
"phpfastcache/phpfastcache": "^9.2", "phpfastcache/phpfastcache": "^9.2",
"phpseclib/phpseclib": "~3.0",
"phpspec/prophecy-phpunit": "^2.0", "phpspec/prophecy-phpunit": "^2.0",
"phpunit/phpunit": "^9.5", "phpunit/phpunit": "^9.5",
"psr/cache": "^2.0||^3.0", "psr/cache": "^2.0||^3.0",
@@ -1889,7 +1889,8 @@
}, },
"suggest": { "suggest": {
"ext-sodium": "Support EdDSA (Ed25519) signatures", "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", "type": "library",
"autoload": { "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.", "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": [ "keywords": [
"jwt", "jwt",
"php" "php"
], ],
"support": { "support": {
"issues": "https://github.com/googleapis/php-jwt/issues", "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" "time": "2026-06-11T17:54:14+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"
}
}
}, },
{ {
"name": "fruitcake/php-cors", "name": "fruitcake/php-cors",
@@ -2020,16 +1999,16 @@
}, },
{ {
"name": "google/protobuf", "name": "google/protobuf",
"version": "v5.35.0", "version": "v5.35.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/protocolbuffers/protobuf-php.git", "url": "https://github.com/protocolbuffers/protobuf-php.git",
"reference": "d96ed77c7edaff3cd576a74173aa0b0655c87b1a" "reference": "55bb4a7d6739b5af0927b96213c1371a3afb7cfb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/d96ed77c7edaff3cd576a74173aa0b0655c87b1a", "url": "https://api.github.com/repos/protocolbuffers/protobuf-php/zipball/55bb4a7d6739b5af0927b96213c1371a3afb7cfb",
"reference": "d96ed77c7edaff3cd576a74173aa0b0655c87b1a", "reference": "55bb4a7d6739b5af0927b96213c1371a3afb7cfb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2058,9 +2037,9 @@
"proto" "proto"
], ],
"support": { "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", "name": "graham-campbell/result-type",
@@ -2126,22 +2105,22 @@
}, },
{ {
"name": "guzzlehttp/guzzle", "name": "guzzlehttp/guzzle",
"version": "7.11.1", "version": "7.12.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/guzzle.git", "url": "https://github.com/guzzle/guzzle.git",
"reference": "5af96f374e0ab4ebd747b8310888c99d3adb0a8c" "reference": "d34627490fbc03bf5c5d7cfed81f2faa19519425"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/5af96f374e0ab4ebd747b8310888c99d3adb0a8c", "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d34627490fbc03bf5c5d7cfed81f2faa19519425",
"reference": "5af96f374e0ab4ebd747b8310888c99d3adb0a8c", "reference": "d34627490fbc03bf5c5d7cfed81f2faa19519425",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"guzzlehttp/promises": "^2.5", "guzzlehttp/promises": "^2.5",
"guzzlehttp/psr7": "^2.11", "guzzlehttp/psr7": "^2.12.1",
"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.5 || ^3.0", "symfony/deprecation-contracts": "^2.5 || ^3.0",
@@ -2154,7 +2133,7 @@
"bamarni/composer-bin-plugin": "^1.8.2", "bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*", "ext-curl": "*",
"guzzle/client-integration-tests": "3.0.2", "guzzle/client-integration-tests": "3.0.2",
"guzzlehttp/test-server": "^0.5", "guzzlehttp/test-server": "^0.5.1",
"php-http/message-factory": "^1.1", "php-http/message-factory": "^1.1",
"phpunit/phpunit": "^8.5.52 || ^9.6.34", "phpunit/phpunit": "^8.5.52 || ^9.6.34",
"psr/log": "^1.1 || ^2.0 || ^3.0" "psr/log": "^1.1 || ^2.0 || ^3.0"
@@ -2234,7 +2213,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.11.1" "source": "https://github.com/guzzle/guzzle/tree/7.12.1"
}, },
"funding": [ "funding": [
{ {
@@ -2250,7 +2229,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-06-07T22:54:06+00:00" "time": "2026-06-18T14:12:49+00:00"
}, },
{ {
"name": "guzzlehttp/promises", "name": "guzzlehttp/promises",
@@ -2338,16 +2317,16 @@
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "2.11.0", "version": "2.12.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "bbb5e61349fa5cb822b3e87842b951088b76b81f" "reference": "172ef2f4e9824c1e058b7f30be8ae25a02c0f2b7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/bbb5e61349fa5cb822b3e87842b951088b76b81f", "url": "https://api.github.com/repos/guzzle/psr7/zipball/172ef2f4e9824c1e058b7f30be8ae25a02c0f2b7",
"reference": "bbb5e61349fa5cb822b3e87842b951088b76b81f", "reference": "172ef2f4e9824c1e058b7f30be8ae25a02c0f2b7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2437,7 +2416,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.11.0" "source": "https://github.com/guzzle/psr7/tree/2.12.1"
}, },
"funding": [ "funding": [
{ {
@@ -2453,20 +2432,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-06-02T12:30:48+00:00" "time": "2026-06-18T09:49:37+00:00"
}, },
{ {
"name": "guzzlehttp/uri-template", "name": "guzzlehttp/uri-template",
"version": "v1.0.6", "version": "v1.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/uri-template.git", "url": "https://github.com/guzzle/uri-template.git",
"reference": "eef7f87bab6f204eba3c39224d8075c70c637946" "reference": "7fe811c23a9e3cd712b4389eaeb50b5456d8c529"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/uri-template/zipball/eef7f87bab6f204eba3c39224d8075c70c637946", "url": "https://api.github.com/repos/guzzle/uri-template/zipball/7fe811c23a9e3cd712b4389eaeb50b5456d8c529",
"reference": "eef7f87bab6f204eba3c39224d8075c70c637946", "reference": "7fe811c23a9e3cd712b4389eaeb50b5456d8c529",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2523,7 +2502,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.6" "source": "https://github.com/guzzle/uri-template/tree/v1.0.7"
}, },
"funding": [ "funding": [
{ {
@@ -2539,7 +2518,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-05-23T22:00:21+00:00" "time": "2026-06-12T21:33:43+00:00"
}, },
{ {
"name": "inertiajs/inertia-laravel", "name": "inertiajs/inertia-laravel",
@@ -2831,16 +2810,16 @@
}, },
{ {
"name": "laravel/framework", "name": "laravel/framework",
"version": "v13.15.0", "version": "v13.16.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/framework.git", "url": "https://github.com/laravel/framework.git",
"reference": "7e23b2aa4e1133a43835c93a810b4bedc40e425b" "reference": "6135650d69bd9442e470bb1b343422081b076f1e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/7e23b2aa4e1133a43835c93a810b4bedc40e425b", "url": "https://api.github.com/repos/laravel/framework/zipball/6135650d69bd9442e470bb1b343422081b076f1e",
"reference": "7e23b2aa4e1133a43835c93a810b4bedc40e425b", "reference": "6135650d69bd9442e470bb1b343422081b076f1e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3051,7 +3030,7 @@
"issues": "https://github.com/laravel/framework/issues", "issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework" "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", "name": "laravel/octane",
@@ -3395,16 +3374,16 @@
}, },
{ {
"name": "laravel/socialite", "name": "laravel/socialite",
"version": "v5.27.0", "version": "v5.28.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/socialite.git", "url": "https://github.com/laravel/socialite.git",
"reference": "40e0757a75637c7b2dff05d3286b0d8fc25e5c0e" "reference": "4c131ff4b24d8881a9c8fe4eecb5ffeff9803f26"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/socialite/zipball/40e0757a75637c7b2dff05d3286b0d8fc25e5c0e", "url": "https://api.github.com/repos/laravel/socialite/zipball/4c131ff4b24d8881a9c8fe4eecb5ffeff9803f26",
"reference": "40e0757a75637c7b2dff05d3286b0d8fc25e5c0e", "reference": "4c131ff4b24d8881a9c8fe4eecb5ffeff9803f26",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3463,7 +3442,7 @@
"issues": "https://github.com/laravel/socialite/issues", "issues": "https://github.com/laravel/socialite/issues",
"source": "https://github.com/laravel/socialite" "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", "name": "laravel/tinker",
@@ -4525,16 +4504,16 @@
}, },
{ {
"name": "nesbot/carbon", "name": "nesbot/carbon",
"version": "3.11.4", "version": "3.13.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/CarbonPHP/carbon.git", "url": "https://github.com/CarbonPHP/carbon.git",
"reference": "e890471a3494740f7d9326d72ce6a8c559ffee60" "reference": "40f6618f052df16b545f626fbf9a878e6497d16a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/e890471a3494740f7d9326d72ce6a8c559ffee60", "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/40f6618f052df16b545f626fbf9a878e6497d16a",
"reference": "e890471a3494740f7d9326d72ce6a8c559ffee60", "reference": "40f6618f052df16b545f626fbf9a878e6497d16a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -4626,7 +4605,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-04-07T09:57:54+00:00" "time": "2026-06-18T13:49:15+00:00"
}, },
{ {
"name": "nette/php-generator", "name": "nette/php-generator",
@@ -5007,16 +4986,16 @@
}, },
{ {
"name": "opcodesio/log-viewer", "name": "opcodesio/log-viewer",
"version": "v3.24.0", "version": "v3.24.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/opcodesio/log-viewer.git", "url": "https://github.com/opcodesio/log-viewer.git",
"reference": "8afefde09f6005f7d8ee3f628aa311f27c91d125" "reference": "bdf931182c40001dd3ebf728fdded0648b121ae0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/opcodesio/log-viewer/zipball/8afefde09f6005f7d8ee3f628aa311f27c91d125", "url": "https://api.github.com/repos/opcodesio/log-viewer/zipball/bdf931182c40001dd3ebf728fdded0648b121ae0",
"reference": "8afefde09f6005f7d8ee3f628aa311f27c91d125", "reference": "bdf931182c40001dd3ebf728fdded0648b121ae0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5079,7 +5058,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/opcodesio/log-viewer/issues", "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": [ "funding": [
{ {
@@ -5091,20 +5070,20 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-03-15T19:31:14+00:00" "time": "2026-06-11T13:41:17+00:00"
}, },
{ {
"name": "opcodesio/mail-parser", "name": "opcodesio/mail-parser",
"version": "v0.2.3", "version": "v0.2.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/opcodesio/mail-parser.git", "url": "https://github.com/opcodesio/mail-parser.git",
"reference": "6f9544a1e526d5849cf8d96600556b2951893aec" "reference": "7151e4183288e46d911a76803c5545a1c8822226"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/opcodesio/mail-parser/zipball/6f9544a1e526d5849cf8d96600556b2951893aec", "url": "https://api.github.com/repos/opcodesio/mail-parser/zipball/7151e4183288e46d911a76803c5545a1c8822226",
"reference": "6f9544a1e526d5849cf8d96600556b2951893aec", "reference": "7151e4183288e46d911a76803c5545a1c8822226",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5142,9 +5121,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/opcodesio/mail-parser/issues", "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", "name": "openspout/openspout",
@@ -5611,16 +5590,16 @@
}, },
{ {
"name": "phpseclib/phpseclib", "name": "phpseclib/phpseclib",
"version": "3.0.53", "version": "3.0.55",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpseclib/phpseclib.git", "url": "https://github.com/phpseclib/phpseclib.git",
"reference": "511ddc8e352d5d1f1e33bea468b6f4ef48438cf9" "reference": "db9744e6d47e742b1f974e965ad49bdd041105af"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/511ddc8e352d5d1f1e33bea468b6f4ef48438cf9", "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/db9744e6d47e742b1f974e965ad49bdd041105af",
"reference": "511ddc8e352d5d1f1e33bea468b6f4ef48438cf9", "reference": "db9744e6d47e742b1f974e965ad49bdd041105af",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -5701,7 +5680,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/phpseclib/phpseclib/issues", "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": [ "funding": [
{ {
@@ -5717,7 +5696,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2026-06-09T18:08:26+00:00" "time": "2026-06-14T23:24:10+00:00"
}, },
{ {
"name": "phpstan/phpdoc-parser", "name": "phpstan/phpdoc-parser",
@@ -6619,20 +6598,20 @@
}, },
{ {
"name": "ramsey/uuid", "name": "ramsey/uuid",
"version": "4.9.2", "version": "4.9.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ramsey/uuid.git", "url": "https://github.com/ramsey/uuid.git",
"reference": "8429c78ca35a09f27565311b98101e2826affde0" "reference": "1df15849d00943a67d677dc9cfd80795f038c9f8"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0", "url": "https://api.github.com/repos/ramsey/uuid/zipball/1df15849d00943a67d677dc9cfd80795f038c9f8",
"reference": "8429c78ca35a09f27565311b98101e2826affde0", "reference": "1df15849d00943a67d677dc9cfd80795f038c9f8",
"shasum": "" "shasum": ""
}, },
"require": { "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", "php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0" "ramsey/collection": "^1.2 || ^2.0"
}, },
@@ -6691,9 +6670,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/ramsey/uuid/issues", "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", "name": "roadrunner-php/roadrunner-api-dto",
@@ -7734,16 +7713,16 @@
}, },
{ {
"name": "spiral/roadrunner", "name": "spiral/roadrunner",
"version": "v2025.1.14", "version": "v2025.1.15",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/roadrunner-server/roadrunner.git", "url": "https://github.com/roadrunner-server/roadrunner.git",
"reference": "3853ad693522e82d53d62950e5f1315402c910f2" "reference": "321b817fab1056e404533ca1ddd200e77d1525fd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/roadrunner-server/roadrunner/zipball/3853ad693522e82d53d62950e5f1315402c910f2", "url": "https://api.github.com/repos/roadrunner-server/roadrunner/zipball/321b817fab1056e404533ca1ddd200e77d1525fd",
"reference": "3853ad693522e82d53d62950e5f1315402c910f2", "reference": "321b817fab1056e404533ca1ddd200e77d1525fd",
"shasum": "" "shasum": ""
}, },
"type": "metapackage", "type": "metapackage",
@@ -7771,7 +7750,7 @@
"chat": "https://discord.gg/V6EK4he", "chat": "https://discord.gg/V6EK4he",
"docs": "https://docs.roadrunner.dev/", "docs": "https://docs.roadrunner.dev/",
"issues": "https://github.com/roadrunner-server/roadrunner/issues", "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": [ "funding": [
{ {
@@ -7779,7 +7758,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-05-15T13:20:01+00:00" "time": "2026-06-17T14:49:38+00:00"
}, },
{ {
"name": "spiral/roadrunner-cli", "name": "spiral/roadrunner-cli",
@@ -8354,44 +8333,6 @@
], ],
"time": "2026-03-23T22:56:56+00:00" "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", "name": "stevebauman/purify",
"version": "v6.3.2", "version": "v6.3.2",
@@ -11836,16 +11777,16 @@
}, },
{ {
"name": "ueberdosis/tiptap-php", "name": "ueberdosis/tiptap-php",
"version": "2.1.0", "version": "2.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/ueberdosis/tiptap-php.git", "url": "https://github.com/ueberdosis/tiptap-php.git",
"reference": "6ea321fa665080e1a72ac5f52dfab19f6a292e2d" "reference": "74bfb7be1c8c6102b240f3879b7f984a6ab87b97"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ueberdosis/tiptap-php/zipball/6ea321fa665080e1a72ac5f52dfab19f6a292e2d", "url": "https://api.github.com/repos/ueberdosis/tiptap-php/zipball/74bfb7be1c8c6102b240f3879b7f984a6ab87b97",
"reference": "6ea321fa665080e1a72ac5f52dfab19f6a292e2d", "reference": "74bfb7be1c8c6102b240f3879b7f984a6ab87b97",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -11885,7 +11826,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/ueberdosis/tiptap-php/issues", "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": [ "funding": [
{ {
@@ -11901,7 +11842,7 @@
"type": "open_collective" "type": "open_collective"
} }
], ],
"time": "2026-01-10T16:40:02+00:00" "time": "2026-06-12T18:19:46+00:00"
}, },
{ {
"name": "vlucas/phpdotenv", "name": "vlucas/phpdotenv",
@@ -12220,16 +12161,16 @@
}, },
{ {
"name": "webmozart/assert", "name": "webmozart/assert",
"version": "2.4.0", "version": "2.4.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/webmozarts/assert.git", "url": "https://github.com/webmozarts/assert.git",
"reference": "9007ea6f45ecf352a9422b36644e4bfc039b9155" "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/webmozarts/assert/zipball/9007ea6f45ecf352a9422b36644e4bfc039b9155", "url": "https://api.github.com/repos/webmozarts/assert/zipball/2ccb7c2e821038c03a3e6e1700c570c158c55f70",
"reference": "9007ea6f45ecf352a9422b36644e4bfc039b9155", "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -12280,9 +12221,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/webmozarts/assert/issues", "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": [ "packages-dev": [
@@ -12381,28 +12322,29 @@
}, },
{ {
"name": "composer/pcre", "name": "composer/pcre",
"version": "3.3.2", "version": "3.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/pcre.git", "url": "https://github.com/composer/pcre.git",
"reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" "reference": "d5a341b3fb61f3001970940afb1d332968a183ed"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed",
"reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "reference": "d5a341b3fb61f3001970940afb1d332968a183ed",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.4 || ^8.0" "php": "^7.4 || ^8.0"
}, },
"conflict": { "conflict": {
"phpstan/phpstan": "<1.11.10" "phpstan/phpstan": "<2.2.2"
}, },
"require-dev": { "require-dev": {
"phpstan/phpstan": "^1.12 || ^2", "phpstan/phpstan": "^2",
"phpstan/phpstan-strict-rules": "^1 || ^2", "phpstan/phpstan-deprecation-rules": "^2",
"phpunit/phpunit": "^8 || ^9" "phpstan/phpstan-strict-rules": "^2",
"phpunit/phpunit": "^9"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
@@ -12440,7 +12382,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/composer/pcre/issues", "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": [ "funding": [
{ {
@@ -12450,13 +12392,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-11-12T16:29:46+00:00" "time": "2026-06-07T11:47:49+00:00"
}, },
{ {
"name": "composer/xdebug-handler", "name": "composer/xdebug-handler",
@@ -13116,16 +13054,16 @@
}, },
{ {
"name": "laravel/mcp", "name": "laravel/mcp",
"version": "v0.8.0", "version": "v0.8.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/mcp.git", "url": "https://github.com/laravel/mcp.git",
"reference": "18221a07093d84153883bc956e5e213999549a4b" "reference": "fdc39c9e21048801508765cb4d72bd9e8501b51f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/mcp/zipball/18221a07093d84153883bc956e5e213999549a4b", "url": "https://api.github.com/repos/laravel/mcp/zipball/fdc39c9e21048801508765cb4d72bd9e8501b51f",
"reference": "18221a07093d84153883bc956e5e213999549a4b", "reference": "fdc39c9e21048801508765cb4d72bd9e8501b51f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -13186,20 +13124,20 @@
"issues": "https://github.com/laravel/mcp/issues", "issues": "https://github.com/laravel/mcp/issues",
"source": "https://github.com/laravel/mcp" "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", "name": "laravel/pint",
"version": "v1.29.1", "version": "v1.29.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/laravel/pint.git", "url": "https://github.com/laravel/pint.git",
"reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80" "reference": "da1d1111a6aa2e082d2a388b194afe1ba0a05d14"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/0770e9b7fafd50d4586881d456d6eb41c9247a80", "url": "https://api.github.com/repos/laravel/pint/zipball/da1d1111a6aa2e082d2a388b194afe1ba0a05d14",
"reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80", "reference": "da1d1111a6aa2e082d2a388b194afe1ba0a05d14",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -13210,14 +13148,14 @@
"php": "^8.2.0" "php": "^8.2.0"
}, },
"require-dev": { "require-dev": {
"friendsofphp/php-cs-fixer": "^3.95.1", "friendsofphp/php-cs-fixer": "^3.95.8",
"illuminate/view": "^12.56.0", "illuminate/view": "^12.62.0",
"larastan/larastan": "^3.9.6", "larastan/larastan": "^3.10.0",
"laravel-zero/framework": "^12.1.0", "laravel-zero/framework": "^12.1.0",
"laravel/agent-detector": "^2.0.2",
"mockery/mockery": "^1.6.12", "mockery/mockery": "^1.6.12",
"nunomaduro/termwind": "^2.4.0", "nunomaduro/termwind": "^2.4.0",
"pestphp/pest": "^3.8.6", "pestphp/pest": "^3.8.6"
"shipfastlabs/agent-detector": "^1.1.3"
}, },
"bin": [ "bin": [
"builds/pint" "builds/pint"
@@ -13254,7 +13192,7 @@
"issues": "https://github.com/laravel/pint/issues", "issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint" "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", "name": "laravel/roster",
@@ -13621,16 +13559,16 @@
}, },
{ {
"name": "pestphp/pest", "name": "pestphp/pest",
"version": "v4.7.2", "version": "v4.7.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/pestphp/pest.git", "url": "https://github.com/pestphp/pest.git",
"reference": "40b88b62ef8a7c6fcae5fc28f1fa747f601c131b" "reference": "87882a8561bf3ddf230b9a6b764f367f687d5b2f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/pestphp/pest/zipball/40b88b62ef8a7c6fcae5fc28f1fa747f601c131b", "url": "https://api.github.com/repos/pestphp/pest/zipball/87882a8561bf3ddf230b9a6b764f367f687d5b2f",
"reference": "40b88b62ef8a7c6fcae5fc28f1fa747f601c131b", "reference": "87882a8561bf3ddf230b9a6b764f367f687d5b2f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -13643,12 +13581,12 @@
"pestphp/pest-plugin-mutate": "^4.0.1", "pestphp/pest-plugin-mutate": "^4.0.1",
"pestphp/pest-plugin-profanity": "^4.2.1", "pestphp/pest-plugin-profanity": "^4.2.1",
"php": "^8.3.0", "php": "^8.3.0",
"phpunit/phpunit": "^12.5.28", "phpunit/phpunit": "^12.5.29",
"symfony/process": "^7.4.13|^8.1.0" "symfony/process": "^7.4.13|^8.1.0"
}, },
"conflict": { "conflict": {
"filp/whoops": "<2.18.3", "filp/whoops": "<2.18.3",
"phpunit/phpunit": ">12.5.28", "phpunit/phpunit": ">12.5.29",
"sebastian/exporter": "<7.0.0", "sebastian/exporter": "<7.0.0",
"webmozart/assert": "<1.11.0" "webmozart/assert": "<1.11.0"
}, },
@@ -13724,7 +13662,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/pestphp/pest/issues", "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": [ "funding": [
{ {
@@ -13736,7 +13674,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-06-01T06:08:59+00:00" "time": "2026-06-12T05:57:27+00:00"
}, },
{ {
"name": "pestphp/pest-plugin", "name": "pestphp/pest-plugin",
@@ -14707,16 +14645,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "12.5.28", "version": "12.5.29",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "5895d05f5bf421ed230fbd76e1277e4b8955def4" "reference": "9aa66a47db3ea70f1a468e66dd969f67e594945a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5895d05f5bf421ed230fbd76e1277e4b8955def4", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9aa66a47db3ea70f1a468e66dd969f67e594945a",
"reference": "5895d05f5bf421ed230fbd76e1277e4b8955def4", "reference": "9aa66a47db3ea70f1a468e66dd969f67e594945a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -14730,7 +14668,7 @@
"phar-io/manifest": "^2.0.4", "phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1", "phar-io/version": "^3.2.1",
"php": ">=8.3", "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-file-iterator": "^6.0.1",
"phpunit/php-invoker": "^6.0.0", "phpunit/php-invoker": "^6.0.0",
"phpunit/php-text-template": "^5.0.0", "phpunit/php-text-template": "^5.0.0",
@@ -14740,7 +14678,7 @@
"sebastian/diff": "^7.0.0", "sebastian/diff": "^7.0.0",
"sebastian/environment": "^8.1.2", "sebastian/environment": "^8.1.2",
"sebastian/exporter": "^7.0.3", "sebastian/exporter": "^7.0.3",
"sebastian/global-state": "^8.0.2", "sebastian/global-state": "^8.0.3",
"sebastian/object-enumerator": "^7.0.0", "sebastian/object-enumerator": "^7.0.0",
"sebastian/recursion-context": "^7.0.1", "sebastian/recursion-context": "^7.0.1",
"sebastian/type": "^6.0.4", "sebastian/type": "^6.0.4",
@@ -14785,7 +14723,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/12.5.28" "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.29"
}, },
"funding": [ "funding": [
{ {
@@ -14793,25 +14731,25 @@
"type": "other" "type": "other"
} }
], ],
"time": "2026-05-27T14:01:10+00:00" "time": "2026-06-04T06:14:42+00:00"
}, },
{ {
"name": "rector/rector", "name": "rector/rector",
"version": "2.4.5", "version": "2.4.6",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/rectorphp/rector.git", "url": "https://github.com/rectorphp/rector.git",
"reference": "cbd86024be5014d3c14d9f0b3f7aae8ecbffd62c" "reference": "9b9e5c76618e4d359f65b54ca2eabcad3d1761ee"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/cbd86024be5014d3c14d9f0b3f7aae8ecbffd62c", "url": "https://api.github.com/repos/rectorphp/rector/zipball/9b9e5c76618e4d359f65b54ca2eabcad3d1761ee",
"reference": "cbd86024be5014d3c14d9f0b3f7aae8ecbffd62c", "reference": "9b9e5c76618e4d359f65b54ca2eabcad3d1761ee",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.4|^8.0", "php": "^7.4|^8.0",
"phpstan/phpstan": "^2.1.56" "phpstan/phpstan": "^2.2.2"
}, },
"conflict": { "conflict": {
"rector/rector-doctrine": "*", "rector/rector-doctrine": "*",
@@ -14845,7 +14783,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/rectorphp/rector/issues", "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": [ "funding": [
{ {
@@ -14853,7 +14791,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-05-26T21:03:22+00:00" "time": "2026-06-17T11:56:28+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "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", "@popperjs/core": "2.11.8",
"@prettier/plugin-php": "0.25.0", "@prettier/plugin-php": "0.25.0",
"@shufo/prettier-plugin-blade": "1.16.2", "@shufo/prettier-plugin-blade": "1.16.2",
"@swc/core": "^1.15.40", "@swc/core": "^1.15.41",
"@tailwindcss/forms": "0.5.11", "@tailwindcss/forms": "0.5.11",
"@tailwindcss/postcss": "4.3.0", "@tailwindcss/postcss": "4.3.1",
"@tailwindcss/typography": "0.5.19", "@tailwindcss/typography": "0.5.20",
"alpinejs": "3.15.12", "alpinejs": "3.15.12",
"autoprefixer": "10.5.0", "autoprefixer": "10.5.0",
"axios": "^1.17.0", "axios": "^1.18.0",
"esbuild": "^0.28.0", "esbuild": "^0.28.1",
"eslint": "^10.4.1", "eslint": "^10.5.0",
"eslint-plugin-vue": "10.9.2", "eslint-plugin-vue": "10.9.2",
"laravel-vite-plugin": "^3.1.0", "laravel-vite-plugin": "^3.1.0",
"lodash": "^4.18.1", "lodash": "^4.18.1",
"postcss": "8.5.15", "postcss": "8.5.15",
"postcss-import": "16.1.1", "postcss-import": "16.1.1",
"prettier": "3.8.3", "prettier": "3.8.4",
"sass-loader": "17.0.0", "sass-loader": "17.0.0",
"stylelint": "^17.13.0", "stylelint": "^17.13.0",
"stylelint-config-standard": "^40.0.0", "stylelint-config-standard": "^40.0.0",
"tailwindcss": "4.3.0", "tailwindcss": "4.3.1",
"turbolinks": "5.2.0", "turbolinks": "5.2.0",
"vite": "^8.0.16" "vite": "^8.0.16"
}, },
"dependencies": { "dependencies": {
"@inertiajs/react": "^3.3.1", "@inertiajs/react": "^3.4.0",
"@vitejs/plugin-react": "^6.0.2", "@vitejs/plugin-react": "^6.0.2",
"flowbite": "4.0.2", "flowbite": "4.0.2",
"json5": "^2.2.3", "json5": "^2.2.3",
"react": "^19.2.7", "react": "^19.2.7",
"react-dom": "^19.2.7", "react-dom": "^19.2.7",
"sass": "1.100.0", "sass": "1.101.0",
"swiper": "^12.2.0" "swiper": "^12.2.0"
} }
} }
+2 -2
View File
@@ -111,7 +111,7 @@
"src": "public/assets/images/profile/profile-bg.png" "src": "public/assets/images/profile/profile-bg.png"
}, },
"resources/css/global.css": { "resources/css/global.css": {
"file": "assets/global-DmKtm1TC.css", "file": "assets/global-D3hwr7UE.css",
"name": "global", "name": "global",
"names": [ "names": [
"global.css" "global.css"
@@ -166,7 +166,7 @@
] ]
}, },
"resources/themes/atom/css/app.css": { "resources/themes/atom/css/app.css": {
"file": "assets/app-DtTGSxkD.css", "file": "assets/app-BXjZsuSm.css",
"name": "app", "name": "app",
"names": [ "names": [
"app.css" "app.css"
@@ -100,7 +100,7 @@
{{ auth()->user() ? __('Current balance: $:balance', ['balance' => auth()->user()->website_balance]) : __('Current balance: Login required') }} {{ auth()->user() ? __('Current balance: $:balance', ['balance' => auth()->user()->website_balance]) : __('Current balance: Login required') }}
</div> </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"> <form action="{{ route('paypal.process-transaction') }}" method="GET" class="mt-3">
@csrf @csrf
@@ -94,7 +94,7 @@
{{ __('Current balance: $:balance', ['balance' => auth()->user()->website_balance]) }} {{ __('Current balance: $:balance', ['balance' => auth()->user()->website_balance]) }}
</div> </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"> <form action="{{ route('paypal.process-transaction') }}" method="GET" class="mt-3">
@csrf @csrf
+792 -793
View File
File diff suppressed because it is too large Load Diff