diff --git a/app/Console/Commands/MakeUserCommand.php b/app/Console/Commands/MakeUserCommand.php index fd2a6505e..584773d3a 100644 --- a/app/Console/Commands/MakeUserCommand.php +++ b/app/Console/Commands/MakeUserCommand.php @@ -4,13 +4,13 @@ use App\Classes\PterodactylClient; use App\Models\User; -use App\Settings\UserSettings; +use App\Settings\GeneralSettings; use App\Settings\PterodactylSettings; use App\Traits\Referral; use Illuminate\Console\Command; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; -use App\Facades\Currency; + class MakeUserCommand extends Command { use Referral; @@ -47,7 +47,7 @@ public function __construct() * * @return int */ - public function handle(PterodactylSettings $ptero_settings, UserSettings $user_settings) + public function handle(PterodactylSettings $ptero_settings, GeneralSettings $general_settings) { $this->pterodactyl = new PterodactylClient($ptero_settings); $ptero_id = $this->option('ptero_id') ?? $this->ask('Please specify your Pterodactyl ID.'); @@ -98,8 +98,8 @@ public function handle(PterodactylSettings $ptero_settings, UserSettings $user_s 'name' => $response['first_name'], 'email' => $response['email'], 'password' => Hash::make($password), - 'credits' => $user_settings->initial_credits, - 'server_limit' => $user_settings->initial_server_limit, + 'credits' => $general_settings->initial_credits, + 'server_limit' => $general_settings->initial_server_limit, 'referral_code' => $this->createReferralCode(), 'pterodactyl_id' => $response['id'], ]); diff --git a/app/Console/Commands/NotifyServerSuspension.php b/app/Console/Commands/NotifyServerSuspension.php deleted file mode 100644 index 40f9d5c32..000000000 --- a/app/Console/Commands/NotifyServerSuspension.php +++ /dev/null @@ -1,216 +0,0 @@ -clearResolvedWarnings(); - - // Get all servers that are not suspended and haven't been warned yet - Server::whereNull('suspended') - ->whereNull('suspension_warning_sent_at') - ->with(['user', 'product']) - ->byBillingPriority() - ->chunk(10, function ($servers) use (&$serversChecked, &$serversNotified) { - /** @var Server $server */ - foreach ($servers as $server) { - $serversChecked++; - - /** @var Product $product */ - $product = $server->product; - /** @var User $user */ - $user = $server->user; - - if (!$product || !$user) { - continue; - } - - $billing_period = $product->billing_period; - $suspensionDate = null; - switch ($billing_period) { - case 'annually': - $suspensionDate = Carbon::parse($server->last_billed)->addYear(); - break; - case 'half-annually': - $suspensionDate = Carbon::parse($server->last_billed)->addMonths(6); - break; - case 'quarterly': - $suspensionDate = Carbon::parse($server->last_billed)->addMonths(3); - break; - case 'monthly': - $suspensionDate = Carbon::parse($server->last_billed)->addMonth(); - break; - case 'weekly': - $suspensionDate = Carbon::parse($server->last_billed)->addWeek(); - break; - case 'daily': - $suspensionDate = Carbon::parse($server->last_billed)->addDay(); - break; - case 'hourly': - $suspensionDate = Carbon::parse($server->last_billed)->addHour(); - break; - default: - $suspensionDate = Carbon::parse($server->last_billed)->addHour(); - break; - } - $hasInsufficientCredits = $this->hasInsufficientCredits($user, $product); - - if (!$hasInsufficientCredits) { - continue; - } - - $now = Carbon::now(); - $daysUntilSuspension = $now->diffInDays($suspensionDate, false); - - if ($daysUntilSuspension > 0 && $daysUntilSuspension <= 3) { - $this->line("{$server->name} from user: {$user->name} will be suspended in {$daysUntilSuspension} days. Sending warning..."); - - $server->update(['suspension_warning_sent_at' => now()]); - $serversNotified++; - - if (!isset($this->usersToNotify[$user->id])) { - $this->usersToNotify[$user->id] = [ - 'user' => $user, - 'servers' => collect() - ]; - } - $this->usersToNotify[$user->id]['servers']->push([ - 'server' => $server, - 'suspension_date' => $suspensionDate - ]); - } - } - - // Notifications will be sent after processing all chunks - }); - - $this->notifyUsers(); - - $this->info("Completed! Checked: {$serversChecked} servers, Sent warnings for: {$serversNotified} servers"); - - return 0; - } - - /** - * Clear suspension warnings for servers that are no longer at risk - * (i.e., servers that were warned but now have sufficient credits) - */ - private function clearResolvedWarnings() - { - $clearedCount = 0; - - Server::whereNotNull('suspension_warning_sent_at') - ->whereNull('suspended') - ->with(['user', 'product']) - ->chunk(10, function ($servers) use (&$clearedCount) { - foreach ($servers as $server) { - /** @var Product $product */ - $product = $server->product; - /** @var User $user */ - $user = $server->user; - - if (!$product || !$user) { - continue; - } - - $hasSufficientCredits = !$this->hasInsufficientCredits($user, $product); - - if ($hasSufficientCredits) { - $server->update(['suspension_warning_sent_at' => null]); - $clearedCount++; - $this->line("{$server->name} from user: {$user->name} - Warning cleared (sufficient credits)"); - } - } - }); - - if ($clearedCount > 0) { - $this->info("Cleared warnings for {$clearedCount} servers that now have sufficient credits"); - } - } - - /** - * @return bool - */ - public function notifyUsers() - { - if (!empty($this->usersToNotify)) { - foreach ($this->usersToNotify as $userData) { - $user = $userData['user']; - $servers = $userData['servers']; - - if ($servers->isNotEmpty()) { - $this->line("Notified user: {$user->name}"); - - $user->notify(new ServerSuspensionWarningNotification($servers)); - } - } - } - - // Reset array - $this->usersToNotify = []; - return true; - } - - /** - * Check if user has insufficient credits for the product - * - * @param $user - * @param $product - * @return bool - */ - private function hasInsufficientCredits($user, $product) - { - // Direct integer comparison; both values are in thousandths - return $user->credits < $product->price && $product->price != 0; - } -} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 15358333f..a271e673d 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -16,7 +16,6 @@ class Kernel extends ConsoleKernel protected $commands = [ Commands\ChargeServers::class, Commands\DeleteExpiredCoupons::class, - Commands\NotifyServerSuspension::class, ]; /** @@ -28,7 +27,6 @@ class Kernel extends ConsoleKernel protected function schedule(Schedule $schedule) { $schedule->command('servers:charge')->everyMinute(); - $schedule->command('servers:notify-suspension')->daily(); $schedule->command('cp:versioncheck:get')->daily(); $schedule->command('payments:open:clear')->daily(); $schedule->command('coupons:delete')->daily(); diff --git a/app/Events/CouponUsedEvent.php b/app/Events/CouponUsedEvent.php index 518b8c759..54b322bd9 100644 --- a/app/Events/CouponUsedEvent.php +++ b/app/Events/CouponUsedEvent.php @@ -3,7 +3,6 @@ namespace App\Events; use App\Models\Coupon; -use App\Models\User; use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; @@ -12,20 +11,18 @@ class CouponUsedEvent { use Dispatchable, InteractsWithSockets, SerializesModels; - public Coupon $coupon; public string $couponCode; - public ?User $user = null; /** * Create a new event instance. * * @return void */ - public function __construct(string $couponCode, ?User $user = null) + public function __construct(string $couponCode) { + $this->couponCode = $couponCode; $this->coupon = Coupon::where('code', $couponCode)->first(); - $this->user = $user; } } diff --git a/app/Helpers/CurrencyHelper.php b/app/Helpers/CurrencyHelper.php index 8e98b0b3e..a8a53ad4c 100644 --- a/app/Helpers/CurrencyHelper.php +++ b/app/Helpers/CurrencyHelper.php @@ -11,53 +11,9 @@ private function convertForDisplay($amount) return $amount / 1000; } - /** - * Gets the effective locale to use for formatting, considering global overrides. - * - * @param string|null $locale The requested locale - * @param bool $ignoreOverride Whether to ignore the global override setting - * @return string The effective locale to use - */ - private function getEffectiveLocale($locale = null, $ignoreOverride = false) + public function formatForDisplay($amount, $decimals = 2) { - $effectiveLocale = $locale ?: str_replace('_', '-', app()->getLocale()); - - if (!$ignoreOverride) { - $override = resolve(\App\Settings\GeneralSettings::class)->currency_format_override ?? null; - if ($override) { - $effectiveLocale = $override; - } - } - - return $effectiveLocale; - } - - /** - * Formats a currency amount for display. - * - * @param mixed $amount The amount to format. - * @param int $decimals Number of decimal places to use. - * @param string|null $locale The locale to use for formatting (defaults to current application locale). - * @param bool $ignoreOverride When true, bypasses the global currency format override setting. - * @return string The formatted currency string. - */ - public function formatForDisplay($amount, $decimals = 2, $locale = null, $ignoreOverride = false) - { - $locale = $this->getEffectiveLocale($locale, $ignoreOverride); - - $display = $this->convertForDisplay($amount); - - // For Bulgarian ('bg'), Spanish ('es'), and Polish ('pl') locales: For numbers <= 9999, use comma as decimal separator and no thousands separator. - // This follows common formatting conventions for small numbers in these locales, as per CLDR and local usage. - // source: https://forum.opencart.com/viewtopic.php?t=144907 - $specialLocales = ['bg', 'es', 'pl']; - if (in_array($locale, $specialLocales, true) && $display <= 9999) { - return number_format($display, $decimals, ',', ''); - } - $formatter = new NumberFormatter($locale, NumberFormatter::DECIMAL); - $formatter->setAttribute(NumberFormatter::MIN_FRACTION_DIGITS, $decimals); - $formatter->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, $decimals); - return $formatter->format($display); + return number_format($this->convertForDisplay($amount), $decimals, ',', '.'); } public function formatForForm($amount, $decimals = 2) @@ -70,25 +26,12 @@ public function prepareForDatabase($amount) return (int)($amount * 1000); } - public function formatToCurrency(int $amount, $currency_code, $locale = null) + public function formatToCurrency(int $amount, $currency_code, $locale = null,) { - $locale = $this->getEffectiveLocale($locale, false); + $locale = $locale ?: str_replace('_', '-', app()->getLocale()); $formatter = new NumberFormatter($locale, NumberFormatter::CURRENCY); return $formatter->formatCurrency($this->convertForDisplay($amount), $currency_code); } - - /** - * Formats the given amount for use in commands. - * - * Converts the amount from the smallest currency unit to a float. - * - * @param int $amount Amount in the smallest currency unit (e.g., thousandths). - * @return float Converted amount for commands. - */ - public function formatForCommands($amount) - { - return $this->convertForDisplay($amount); - } } diff --git a/app/Http/Controllers/Admin/CouponController.php b/app/Http/Controllers/Admin/CouponController.php index 127bd4a40..56799042f 100644 --- a/app/Http/Controllers/Admin/CouponController.php +++ b/app/Http/Controllers/Admin/CouponController.php @@ -55,8 +55,8 @@ public function store(Request $request) $random_codes_amount = $request->input('range_codes'); $rules = $this->requestRules($request); - // If for some reason you pass both fields at once. - if ($coupon_code && $random_codes_amount) { + // If for some reason you pass both fields at once. + if ($coupon_code && $random_codes_amount) { return redirect()->back()->with('error', __('Only one of the two code inputs must be provided.'))->withInput($request->all()); } @@ -77,7 +77,6 @@ public function store(Request $request) 'type' => $request->input('type'), 'value' => $request->input('value'), 'max_uses' => $request->input('max_uses'), - // per-coupon max_uses_per_user removed; rely on global setting 'expires_at' => $request->input('expires_at'), 'created_at' => Carbon::now(), // Does not fill in by itself when using the 'insert' method. 'updated_at' => Carbon::now() @@ -85,9 +84,7 @@ public function store(Request $request) } Coupon::insert($data); } else { - $data = $request->except('_token'); - - Coupon::create($data); + Coupon::create($request->except('_token')); } return redirect()->route('admin.coupons.index')->with('success', __("The coupon's was registered successfully.")); @@ -143,8 +140,7 @@ public function update(Request $request, Coupon $coupon) } $request->validate($rules); - $data = $request->except('_token'); - $coupon->update($data); + $coupon->update($request->except('_token')); return redirect()->route('admin.coupons.index')->with('success', __('coupon has been updated!')); } @@ -169,20 +165,10 @@ private function requestRules(Request $request) $random_codes_amount = $request->input('range_codes'); $rules = [ "type" => "required|string|in:percentage,amount", - // Maximum number of uses that a user can make of the same coupon. Set to -1 for unlimited uses per user, or between 1 and 100 digits. - "max_uses" => [ - 'required', - 'integer', - function ($attribute, $value, $fail) { - if ($value != -1 && ($value <= 0 || strlen((string) $value) > 100)) { - $fail(__('Maximum number of uses that a user can make of the same coupon. Set to -1 for unlimited uses per user, or a positive integer with at most 100 digits.')); - } - } - ], + "max_uses" => "required|integer|digits_between:1,100", "value" => "required|numeric|between:0,100", "expires_at" => "nullable|date|after:" . Carbon::now()->format(Coupon::formatDate()) ]; - // per-coupon max_uses_per_user validation removed; use global CouponSettings if ($coupon_code) { $rules['code'] = "required|string|min:4"; @@ -203,7 +189,6 @@ public function dataTable() $query = Coupon::selectRaw(' coupons.*, CASE - WHEN coupons.max_uses = -1 THEN "VALID" WHEN coupons.uses >= coupons.max_uses THEN "USES_LIMIT_REACHED" WHEN coupons.expires_at IS NOT NULL AND coupons.expires_at < NOW() THEN "EXPIRED" ELSE "VALID" @@ -211,14 +196,14 @@ public function dataTable() '); return datatables($query) - ->addColumn('actions', function (Coupon $coupon) { + ->addColumn('actions', function(Coupon $coupon) { return ' - + -
- ' . csrf_field() . ' - ' . method_field('DELETE') . ' - + + '.csrf_field().' + '.method_field('DELETE').' +
'; }) @@ -226,11 +211,10 @@ public function dataTable() $color = ($coupon->derived_status == 'VALID') ? 'success' : 'danger'; $status = str_replace('_', ' ', $coupon->derived_status); - return '' . $status . ''; + return ''.$status.''; }) ->editColumn('uses', function (Coupon $coupon) { - $maxUses = $coupon->max_uses == -1 ? '∞' : $coupon->max_uses; - return "{$coupon->uses} / {$maxUses}"; + return "{$coupon->uses} / {$coupon->max_uses}"; }) ->editColumn('value', function (Coupon $coupon, CurrencyHelper $currencyHelper) { if ($coupon->type === 'percentage') { @@ -246,17 +230,14 @@ public function dataTable() return Carbon::createFromTimestamp($coupon->expires_at); }) - ->editColumn('created_at', function (Coupon $coupon) { + ->editColumn('created_at', function(Coupon $coupon) { return Carbon::createFromTimeString($coupon->created_at); }) ->editColumn('code', function (Coupon $coupon) { return "{$coupon->code}"; }) - // per-coupon max_uses_per_user column removed from listing; show global behavior instead if needed ->orderColumn('status', 'derived_status $1') ->rawColumns(['actions', 'code', 'status']) ->make(); } - - } diff --git a/app/Http/Controllers/Admin/OverViewController.php b/app/Http/Controllers/Admin/OverViewController.php index 6eb6e7a1f..651086791 100644 --- a/app/Http/Controllers/Admin/OverViewController.php +++ b/app/Http/Controllers/Admin/OverViewController.php @@ -41,9 +41,7 @@ public function index(GeneralSettings $general_settings, CurrencyHelper $currenc $counters->put('users', collect()); $counters['users']->active = User::where("suspended", 0)->count(); $counters['users']->total = User::query()->count(); - $counters->put('credits', $currencyHelper->formatForDisplay( - User::query()->whereHas("roles", function($q){ $q->where("id", "!=", "1"); })->sum('credits') - )); + $counters->put('credits', number_format(User::query()->whereHas("roles", function($q){ $q->where("id", "!=", "1"); })->sum('credits'), 2, '.', '')); $counters->put('payments', Payment::query()->count()); $counters->put('eggs', Egg::query()->count()); $counters->put('nests', Nest::query()->count()); diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php index a5fe67838..f165b0e1b 100644 --- a/app/Http/Controllers/Admin/PaymentController.php +++ b/app/Http/Controllers/Admin/PaymentController.php @@ -10,7 +10,6 @@ use App\Http\Controllers\Controller; use App\Models\Invoice; use App\Models\PartnerDiscount; -use App\Models\Coupon; use App\Models\Payment; use App\Models\User; use App\Models\ShopProduct; @@ -72,8 +71,7 @@ public function checkOut(ShopProduct $shopProduct, GeneralSettings $general_sett $extensionName = basename($extension); $extensionSettings = ExtensionHelper::getExtensionSettings($extensionName); - if ($extensionSettings->enabled == false) - continue; + if ($extensionSettings->enabled == false) continue; $payment = new \stdClass(); @@ -91,7 +89,7 @@ public function checkOut(ShopProduct $shopProduct, GeneralSettings $general_sett 'taxvalue' => $shopProduct->getTaxValue(), 'taxpercent' => $shopProduct->getTaxPercent(), 'total' => $shopProduct->getTotalPrice(), - 'paymentGateways' => $paymentGateways, + 'paymentGateways' => $paymentGateways, 'productIsFree' => $price <= 0, 'credits_display_name' => $general_settings->credits_display_name, 'isCouponsEnabled' => $coupon_settings->enabled, @@ -150,7 +148,8 @@ public function pay(Request $request) if ($couponCode) { if ($this->isCouponValid($couponCode, $user, $shopProduct->id)) { $subtotal = $this->applyCoupon($couponCode, $subtotal); - event(new CouponUsedEvent($couponCode, $user)); + + event(new CouponUsedEvent($couponCode)); } } diff --git a/app/Http/Controllers/Admin/ProductController.php b/app/Http/Controllers/Admin/ProductController.php index 49fc02b74..5ce826d87 100644 --- a/app/Http/Controllers/Admin/ProductController.php +++ b/app/Http/Controllers/Admin/ProductController.php @@ -60,10 +60,10 @@ public function create(GeneralSettings $general_settings) public function clone(Product $product, GeneralSettings $general_settings) { $this->checkPermission(self::WRITE_PERMISSION); - + return view('admin.products.create', [ 'product' => $product, - 'credits_display_name' => $general_settings->credits_display_name, + 'credits_display_name' => $general_settings->credits_display_name, 'locations' => Location::with('nodes')->get(), 'nests' => Nest::with('eggs')->get(), ]); @@ -77,16 +77,14 @@ public function clone(Product $product, GeneralSettings $general_settings) */ public function store(Request $request) { - $this->checkPermission(self::WRITE_PERMISSION); - $request->validate([ 'name' => 'required|max:30', 'price' => 'required|numeric|max:1000000|min:0', - 'memory' => 'required|numeric|max:1000000|min:0', + 'memory' => 'required|numeric|max:1000000|min:5', 'cpu' => 'required|numeric|max:1000000|min:0', - 'swap' => ['required', $this->getSwapValidator()], + 'swap' => 'required|numeric|max:1000000|min:0', 'description' => 'required|string|max:191', - 'disk' => 'required|numeric|max:1000000|min:0', + 'disk' => 'required|numeric|max:1000000|min:5', 'minimum_credits' => 'nullable|numeric|max:1000000', 'io' => 'required|numeric|max:1000000|min:0', 'serverlimit' => 'required|numeric|max:1000000|min:0', @@ -102,8 +100,8 @@ public function store(Request $request) ]); - $disabled = !is_null($request->input('disabled')); - $oomkiller = !is_null($request->input('oom_killer')); + $disabled = ! is_null($request->input('disabled')); + $oomkiller = ! is_null($request->input('oom_killer')); $product = Product::create(array_merge($request->all(), ['disabled' => $disabled, 'oom_killer' => $oomkiller])); //link nodes and eggs @@ -121,7 +119,7 @@ public function store(Request $request) */ public function show(Product $product, UserSettings $user_settings, GeneralSettings $general_settings) { - $this->checkAnyPermission([self::READ_PERMISSION, self::WRITE_PERMISSION]); + $this->checkAnyPermission([self::READ_PERMISSION,self::WRITE_PERMISSION]); return view('admin.products.show', [ 'product' => $product, @@ -160,11 +158,11 @@ public function update(Request $request, Product $product): RedirectResponse $request->validate([ 'name' => 'required|max:30', 'price' => 'required|numeric|max:1000000|min:0', - 'memory' => 'required|numeric|max:1000000|min:0', + 'memory' => 'required|numeric|max:1000000|min:5', 'cpu' => 'required|numeric|max:1000000|min:0', - 'swap' => ['required', $this->getSwapValidator()], + 'swap' => 'required|numeric|max:1000000|min:0', 'description' => 'required|string|max:191', - 'disk' => 'required|numeric|max:1000000|min:0', + 'disk' => 'required|numeric|max:1000000|min:5', 'io' => 'required|numeric|max:1000000|min:0', 'minimum_credits' => 'nullable|numeric|max:1000000', 'databases' => 'required|numeric|max:1000000|min:0', @@ -179,8 +177,8 @@ public function update(Request $request, Product $product): RedirectResponse 'default_billing_priority' => ['required', new Enum(BillingPriority::class)] ]); - $disabled = !is_null($request->input('disabled')); - $oomkiller = !is_null($request->input('oom_killer')); + $disabled = ! is_null($request->input('disabled')); + $oomkiller = ! is_null($request->input('oom_killer')); $product->update(array_merge($request->all(), ['disabled' => $disabled, 'oom_killer' => $oomkiller])); //link nodes and eggs @@ -201,7 +199,7 @@ public function disable(Product $product) { $this->checkPermission(self::WRITE_PERMISSION); - $product->update(['disabled' => !$product->disabled]); + $product->update(['disabled' => ! $product->disabled]); return redirect()->route('admin.products.index')->with('success', 'Product has been updated!'); } @@ -238,14 +236,14 @@ public function dataTable() return datatables($query) ->addColumn('actions', function (Product $product) { return ' - - - - -
- ' . csrf_field() . ' - ' . method_field('DELETE') . ' - + + + + + + '.csrf_field().' + '.method_field('DELETE').' +
'; }) @@ -263,12 +261,12 @@ public function dataTable() $checked = $product->disabled == false ? 'checked' : ''; return ' -
- ' . csrf_field() . ' - ' . method_field('PATCH') . ' + + '.csrf_field().' + '.method_field('PATCH').'
- - + +
'; @@ -282,24 +280,6 @@ public function dataTable() ->editColumn('serverlimit', function (Product $product) { return $product->serverlimit == 0 ? "∞" : $product->serverlimit; }) - ->editColumn('memory', function (Product $product) { - return $product->memory == 0 ? "∞" : $product->memory; - }) - ->editColumn('cpu', function (Product $product) { - return $product->cpu == 0 ? "∞" : $product->cpu; - }) - ->editColumn('swap', function (Product $product) { - if ($product->swap == -1) { - return "∞"; - } elseif ($product->swap == 0) { - return __("Disabled"); - } else { - return $product->swap; - } - }) - ->editColumn('disk', function (Product $product) { - return $product->disk == 0 ? "∞" : $product->disk; - }) ->editColumn('oom_killer', function (Product $product) { return $product->oom_killer ? __("enabled") : __("disabled"); }) @@ -309,17 +289,4 @@ public function dataTable() ->rawColumns(['actions', 'disabled']) ->make(); } - - /** - * Get reusable validator for swap field. - * Validates that swap is either -1 (unlimited), 0 (disabled), or a positive integer with at most 100 digits. - */ - private function getSwapValidator() - { - return function ($attribute, $value, $fail) { - if ($value != -1 && $value != 0 && (!ctype_digit((string) $value) || strlen((string) $value) > 100)) { - $fail(__('Swap must be -1 for unlimited, 0 for disabled, or a positive integer with at most 100 digits.')); - } - }; - } } diff --git a/app/Http/Controllers/Admin/SettingsController.php b/app/Http/Controllers/Admin/SettingsController.php index d6e9b4af9..ff2f0b85a 100644 --- a/app/Http/Controllers/Admin/SettingsController.php +++ b/app/Http/Controllers/Admin/SettingsController.php @@ -67,7 +67,7 @@ public function index() 'identifier' => $optionInputData[$key]['identifier'] ?? 'option' ]; - if ($optionInputData[$key]['type'] === 'number') { + if($optionInputData[$key]['type'] === 'number') { $optionsData[$key]['step'] = $optionInputData[$key]['step'] ?? '1'; if ($optionInputData[$key]['mustBeConverted'] ?? false) { @@ -83,7 +83,7 @@ public function index() if (isset($optionInputData['position'])) { $optionsData['position'] = $optionInputData['position']; - } else { + }else{ $optionsData['position'] = 99; } @@ -150,8 +150,7 @@ public function update(Request $request) $rpType = $rp->getType(); if ($rpType == 'bool') { - // Always assign false if key is missing (checkbox unchecked) - $settingsClass->$key = $request->has($key) ? true : false; + $settingsClass->$key = $request->has($key); continue; } if ($rp->name == 'available') { @@ -160,22 +159,8 @@ public function update(Request $request) } $nullable = $rpType->allowsNull(); - $inputValue = $nullable ? ($request->input($key) ?? null) : $request->input($key); - - // using currency facade for reward and other currency fields - $currencyKeys = [ - 'reward', - 'credits_reward_after_verify_discord', - 'credits_reward_after_verify_email', - 'initial_credits', - 'min_credits_to_make_server', - ]; - - if (in_array($key, $currencyKeys) && $inputValue !== null && $inputValue !== '') { - $inputValue = Currency::prepareForDatabase($inputValue); - } - - $settingsClass->$key = $inputValue; + if ($nullable) $settingsClass->$key = $request->input($key) ?? null; + else $settingsClass->$key = $request->input($key); } $settingsClass->save(); diff --git a/app/Http/Controllers/Admin/TicketsController.php b/app/Http/Controllers/Admin/TicketsController.php index f4d3c8360..ca22ade92 100644 --- a/app/Http/Controllers/Admin/TicketsController.php +++ b/app/Http/Controllers/Admin/TicketsController.php @@ -146,7 +146,7 @@ public function dataTable() '.method_field('POST').' -
+ '.csrf_field().' '.method_field('POST').' diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index fda6004c5..48f8d2177 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -85,54 +85,18 @@ public function show(User $user, LocaleSettings $locale_settings, GeneralSetting { $this->checkPermission(self::READ_PERMISSION); - $referralRecords = DB::table('user_referrals')->where('referral_id', '=', $user->id)->get(); - $allReferrals = []; - - foreach ($referralRecords as $referral) { - $deleted = $referral->deleted_at !== null; - - if ($deleted) { - $deletedId = $referral->deleted_user_id; - $name = $referral->deleted_username ? $referral->deleted_username . ' (deleted)' : 'Deleted User'; - - $allReferrals[] = (object)[ - 'id' => $deletedId, - 'name' => $name, - 'created_at' => \Carbon\Carbon::parse($referral->created_at), - 'deleted' => true, - ]; - } else { - $userObj = User::query()->find($referral->registered_user_id); - if ($userObj) { - $allReferrals[] = (object)[ - 'id' => $userObj->id, - 'name' => $userObj->name, - 'created_at' => $userObj->created_at, - 'deleted' => false, - ]; - } else { - if ($referral->deleted_user_id) { - $allReferrals[] = (object)[ - 'id' => $referral->deleted_user_id, - 'name' => ($referral->deleted_username ? $referral->deleted_username . ' (deleted)' : 'Deleted User'), - 'created_at' => \Carbon\Carbon::parse($referral->created_at), - 'deleted' => true, - ]; - } else { - $allReferrals[] = (object)[ - 'id' => 'N/A', - 'name' => 'Unknown (deleted)', - 'created_at' => \Carbon\Carbon::parse($referral->created_at), - 'deleted' => true, - ]; - } - } - } + //QUERY ALL REFERRALS A USER HAS + //i am not proud of this at all. + $allReferals = []; + $referrals = DB::table('user_referrals')->where('referral_id', '=', $user->id)->get(); + foreach ($referrals as $referral) { + array_push($allReferals, $allReferals['id'] = User::query()->findOrFail($referral->registered_user_id)); } + array_pop($allReferals); return view('admin.users.show')->with([ 'user' => $user, - 'referrals' => $allReferrals, + 'referrals' => $allReferals, 'locale_datatables' => $locale_settings->datatables, 'credits_display_name' => $general_settings->credits_display_name ]); @@ -367,7 +331,7 @@ public function notify(Request $request) { $this->checkPermission(self::NOTIFY_PERMISSION); - //TODO: reimplement the required validation on all,users and roles . didnt work -- required_without:users,roles +//TODO: reimplement the required validation on all,users and roles . didnt work -- required_without:users,roles $data = $request->validate([ 'via' => 'required|min:1|array', 'via.*' => 'required|string|in:mail,database', diff --git a/app/Http/Controllers/Admin/VoucherController.php b/app/Http/Controllers/Admin/VoucherController.php index a26a06a5d..397394754 100644 --- a/app/Http/Controllers/Admin/VoucherController.php +++ b/app/Http/Controllers/Admin/VoucherController.php @@ -150,7 +150,7 @@ public function users(Voucher $voucher, LocaleSettings $locale_settings, General * * @throws ValidationException */ - public function redeem(Request $request, GeneralSettings $general_settings, CurrencyHelper $currencyHelper) + public function redeem(Request $request, GeneralSettings $general_settings) { //general validations $request->validate([ @@ -191,7 +191,7 @@ public function redeem(Request $request, GeneralSettings $general_settings, Curr event(new UserUpdateCreditsEvent($request->user())); return response()->json([ - 'success' => "{$currencyHelper->formatForDisplay($voucher->credits)} ". $general_settings->credits_display_name .' '.__('have been added to your balance!'), + 'success' => "{$voucher->credits} ". $general_settings->credits_display_name .' '.__('have been added to your balance!'), ]); } diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index c2ed035bf..f5c146c74 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -2,7 +2,6 @@ namespace App\Http\Controllers\Auth; -use App\Facades\Currency; use App\Http\Controllers\Controller; use App\Models\User; use App\Notifications\ReferralNotification; @@ -138,7 +137,7 @@ protected function create(array $data) $user = User::create([ 'name' => $data['name'], 'email' => $data['email'], - 'credits' => Currency::prepareForDatabase($this->initial_credits), + 'credits' => $this->initial_credits, 'server_limit' => $this->initial_server_limit, 'password' => Hash::make($data['password']), 'referral_code' => $this->createReferralCode(), @@ -187,7 +186,7 @@ protected function create(array $data) $new_user = $user->id; if ($ref_user = User::query()->where('referral_code', '=', $ref_code)->first()) { if ($this->referral_mode === 'sign-up' || $this->referral_mode === 'both') { - $ref_user->increment('credits', ($this->referral_reward)); + $ref_user->increment('credits', $this->referral_reward); $ref_user->notify(new ReferralNotification($ref_user->id, $new_user)); //LOGS REFERRALS IN THE ACTIVITY LOG diff --git a/app/Http/Controllers/PreferencesController.php b/app/Http/Controllers/PreferencesController.php index 934d8e8f5..18048c4c8 100644 --- a/app/Http/Controllers/PreferencesController.php +++ b/app/Http/Controllers/PreferencesController.php @@ -2,7 +2,6 @@ namespace App\Http\Controllers; -use App\Settings\GeneralSettings; use App\Settings\LocaleSettings; use Illuminate\Http\Request; use Illuminate\Support\Facades\Session; @@ -10,26 +9,17 @@ class PreferencesController extends Controller { private $localeSettings; - private $generalSettings; - public function __construct(LocaleSettings $localeSettings, GeneralSettings $generalSettings) + public function __construct(LocaleSettings $localeSettings) { $this->localeSettings = $localeSettings; - $this->generalSettings = $generalSettings; } public function index(Request $request) { $localeSettings = $this->localeSettings; - $generalSettings = $this->generalSettings; - $currencyOverrideAlert = null; - // Only show alert when an override is actively set (non-empty string) - if (!empty($generalSettings->currency_format_override)) { - $currencyOverrideAlert = __('Global currency format override is enabled. All currency and number displays use :locale formatting. Your language preference does not affect currency formatting.', ['locale' => $generalSettings->currency_format_override]); - } - - return view('preferences.index', compact('localeSettings', 'currencyOverrideAlert')); + return view('preferences.index', compact('localeSettings')); } public function update(Request $request) diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 924a8c831..52cb0bffe 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -2,7 +2,6 @@ namespace App\Http\Controllers; -use App\Facades\Currency; use App\Models\User; use App\Settings\UserSettings; use App\Settings\PterodactylSettings; @@ -30,7 +29,7 @@ public function index(UserSettings $user_settings, DiscordSettings $discord_sett return view('profile.index')->with([ 'user' => Auth::user(), - 'credits_reward_after_verify_discord' => Currency::formatForDisplay($user_settings->credits_reward_after_verify_discord), + 'credits_reward_after_verify_discord' => $user_settings->credits_reward_after_verify_discord, 'force_email_verification' => $user_settings->force_email_verification, 'force_discord_verification' => $user_settings->force_discord_verification, 'discord_client_id' => $discord_settings->client_id, @@ -42,8 +41,7 @@ public function index(UserSettings $user_settings, DiscordSettings $discord_sett public function selfDestroyUser() { $user = Auth::user(); - if ($user->hasRole("Admin")) - return back()->with("error", "You cannot delete yourself as an admin!"); + if ($user->hasRole("Admin")) return back()->with("error", "You cannot delete yourself as an admin!"); $user->delete(); diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php index df238498e..2caed6ede 100644 --- a/app/Http/Controllers/ServerController.php +++ b/app/Http/Controllers/ServerController.php @@ -28,7 +28,6 @@ use Illuminate\Support\Facades\Request as FacadesRequest; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rules\Enum; -use Illuminate\Support\Facades\Cache; class ServerController extends Controller { @@ -112,17 +111,8 @@ public function create(): \Illuminate\View\View|RedirectResponse public function store(Request $request): RedirectResponse { - // Anti-Spam: Make sure the user didnt somehow spam-create servers - $lastServerCreation = session('last_server_creation'); - if ($lastServerCreation && (time() - $lastServerCreation < 10)) { - return redirect()->route('servers.index') - ->with('error', __('Please wait a few Seconds before creating a new Server.')); - } - session(['last_server_creation' => time()]); - $validationResult = $this->validateServerCreation($request); - if ($validationResult) - return $validationResult; + if ($validationResult) return $validationResult; $request->validate([ 'name' => 'required|max:191', @@ -222,8 +212,7 @@ private function getServersWithInfo(): \Illuminate\Database\Eloquent\Collection foreach ($servers as $server) { $serverInfo = $this->pterodactyl->getServerAttributes($server->pterodactyl_id); - if (!$serverInfo) - continue; + if (!$serverInfo) continue; $this->updateServerInfo($server, $serverInfo); } @@ -271,8 +260,7 @@ private function createServer(Request $request): ?Server $egg = $product->eggs()->findOrFail($request->input('egg')); $node = $this->findAvailableNode($request->input('location'), $product); - if (!$node) - return null; + if (!$node) return null; $server = $request->user()->servers()->create([ 'name' => $request->input('name'), @@ -317,10 +305,8 @@ private function handlePostCreation(User $user, Server $server): void $user->decrement('credits', $server->product->price); - Cache::forget('user_credits_left:' . $user->id); try { - if ( - $this->discordSettings->role_for_active_clients && + if ($this->discordSettings->role_for_active_clients && $user->discordUser && $user->servers->count() >= 1 ) { @@ -376,7 +362,6 @@ private function handleServerDeletion(Server $server): void } $server->delete(); - Cache::forget('user_credits_left:' . $server->user_id); } public function cancel(Server $server): RedirectResponse @@ -440,10 +425,8 @@ private function getUpgradeOptions(Server $server, array $serverInfo): \Illumina $maxMemory = ($pteroNode['memory'] * ($pteroNode['memory_overallocate'] + 100) / 100); $maxDisk = ($pteroNode['disk'] * ($pteroNode['disk_overallocate'] + 100) / 100); - if ( - $memoryDiff > $maxMemory - $pteroNode['allocated_resources']['memory'] || - $diskDiff > $maxDisk - $pteroNode['allocated_resources']['disk'] - ) { + if ($memoryDiff > $maxMemory - $pteroNode['allocated_resources']['memory'] || + $diskDiff > $maxDisk - $pteroNode['allocated_resources']['disk']) { $product->doesNotFit = true; } diff --git a/app/Listeners/CouponUsed.php b/app/Listeners/CouponUsed.php index 13e9f405f..c9abb42bc 100644 --- a/app/Listeners/CouponUsed.php +++ b/app/Listeners/CouponUsed.php @@ -33,17 +33,6 @@ public function handle(CouponUsedEvent $event) // Automatically increments the coupon usage. $this->incrementUses($event); - // Increment per-user usage by attaching to user_coupons pivot - if ($event->user && $event->coupon) { - $exists = $event->user->coupons()->where('coupon_id', $event->coupon->id)->exists(); - if (!$exists) { - $event->user->coupons()->attach($event->coupon->id, [ - 'created_at' => now(), - 'updated_at' => now(), - ]); - } - } - if ($this->delete_coupon_on_expires) { if (!is_null($event->coupon->expired_at)) { if ($event->coupon->expires_at <= Carbon::now()->timestamp) { @@ -53,7 +42,7 @@ public function handle(CouponUsedEvent $event) } if ($this->delete_coupon_on_uses_reached) { - if ($event->coupon->max_uses !== -1 && $event->coupon->uses >= $event->coupon->max_uses) { + if ($event->coupon->uses >= $event->coupon->max_uses) { $event->coupon->delete(); } } diff --git a/app/Listeners/UnsuspendServers.php b/app/Listeners/UnsuspendServers.php index 62640f871..c511b7887 100644 --- a/app/Listeners/UnsuspendServers.php +++ b/app/Listeners/UnsuspendServers.php @@ -20,7 +20,7 @@ class UnsuspendServers implements ShouldQueue */ public function __construct(UserSettings $user_settings) { - $this->min_credits_to_make_server = ($user_settings->min_credits_to_make_server) / 1000; + $this->min_credits_to_make_server = $user_settings->min_credits_to_make_server; } /** diff --git a/app/Models/Coupon.php b/app/Models/Coupon.php index 7313ad4c9..2cf942988 100644 --- a/app/Models/Coupon.php +++ b/app/Models/Coupon.php @@ -44,7 +44,7 @@ public function getActivitylogOptions(): LogOptions 'value' => 'float', 'uses' => 'integer', 'max_uses' => 'integer', - 'expires_at' => 'timestamp', + 'expires_at' => 'timestamp' ]; /** @@ -55,7 +55,7 @@ public function getActivitylogOptions(): LogOptions protected function value(): Attribute { return Attribute::make( - set: fn($value) => $this->type == 'amount' ? Currency::prepareForDatabase($value) : $value + set: fn ($value) => $this->type == 'amount' ? Currency::prepareForDatabase($value) : $value ); } @@ -76,7 +76,7 @@ public static function formatDate(): string */ public function getStatus() { - if ($this->uses >= $this->max_uses && $this->max_uses != -1) { + if ($this->uses >= $this->max_uses) { return 'USES_LIMIT_REACHED'; } @@ -99,22 +99,9 @@ public function getStatus() public function isMaxUsesReached($user): bool { $coupon_settings = new CouponSettings; - // Unlimited uses if max_uses is -1 - if ($this->max_uses === -1) { - return false; - } $coupon_uses = $user->coupons()->where('id', $this->id)->count(); - $limit = $coupon_settings->max_uses_per_user; - if ($limit === null) { - return false; // No limit set anywhere - } - - // Treat -1 as unlimited per-user uses - if ($limit === -1) { - return false; - } - return $coupon_uses >= $limit; + return $coupon_uses >= $coupon_settings->max_uses_per_user; } /** diff --git a/app/Models/Server.php b/app/Models/Server.php index b6291ced5..ae34c7ae9 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -61,8 +61,7 @@ public function getActivitylogOptions(): LogOptions "product_id", "pterodactyl_id", "last_billed", - "canceled", - "suspension_warning_sent_at" + "canceled" ]; /** @@ -145,7 +144,6 @@ public function unSuspend() $this->update([ 'suspended' => null, 'last_billed' => Carbon::now()->toDateTimeString(), - 'suspension_warning_sent_at' => null, ]); } diff --git a/app/Models/User.php b/app/Models/User.php index e544f5552..9c5c159b0 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -22,7 +22,7 @@ use Spatie\Activitylog\Traits\CausesActivity; use Spatie\Activitylog\Traits\LogsActivity; use Spatie\Permission\Traits\HasRoles; -use Spatie\Activitylog\Models\Activity; + /** * Class User */ @@ -129,21 +129,6 @@ public static function boot() $user->discordUser()->delete(); - // --- Referral logic --- - // get all referrals (incl. of deleted ones) - $referralRecords = DB::table('user_referrals')->where('registered_user_id', $user->id)->get(); - foreach ($referralRecords as $ref) { - // mark ref as deleted and persist the deleted user id and name - DB::table('user_referrals') - ->where('referral_id', $ref->referral_id) - ->where('registered_user_id', $ref->registered_user_id) - ->update([ - 'deleted_at' => now(), - 'deleted_username' => $user->name, - 'deleted_user_id' => $user->id, - ]); - } - $user->pterodactyl->application->delete("/application/users/{$user->pterodactyl_id}"); }); } @@ -157,7 +142,7 @@ protected function credits(): Attribute { return Attribute::make( // We only convert when the user already exists, to avoid 2 conversions. - set: fn($value) => $this->exists ? Currency::prepareForDatabase($value) : $value, + set: fn ($value) => $this->exists ? Currency::prepareForDatabase($value) : $value, ); } @@ -209,19 +194,6 @@ public function coupons() return $this->belongsToMany(Coupon::class, 'user_coupons'); } - // tap into activity log to convert db value to display value - public function tapActivity(Activity $activity, string $eventName) - { - if (($eventName === 'deleted' || $eventName === 'created') && $activity->properties->has('attributes')) { - $attributes = $activity->properties->get('attributes'); - if (isset($attributes['credits'])) { - $attributes['credits'] = Currency::formatForDisplay($attributes['credits']); - $activity->properties->put('attributes', $attributes); - } - } - - } - /** * @return HasOne */ @@ -246,7 +218,7 @@ public function sendEmailVerificationNotification() if (!$executed) { return redirect()->back()->with('error', 'Too many requests. Try again in ' . RateLimiter::availableIn('verify-mail:' . $this->id) . ' seconds.'); } - } catch (\Exception $exception) { + }catch (\Exception $exception){ Log::error($exception->getMessage()); return redirect()->back()->with('error', __("Something went wrong. Please try again later!")); } @@ -352,11 +324,11 @@ public function referredBy() { $referee = DB::table('user_referrals')->where("registered_user_id", $this->id)->first(); - if ($referee && $referee->referral_id) { - $referrer = User::find($referee->referral_id); - return $referrer; + if ($referee) { + $referee = User::where("id", $referee->referral_id)->firstOrFail(); + return $referee; } - return null; + return Null; } public function getActivitylogOptions(): LogOptions diff --git a/app/Notifications/InvoiceNotification.php b/app/Notifications/InvoiceNotification.php index e299c5709..9aa4a3683 100644 --- a/app/Notifications/InvoiceNotification.php +++ b/app/Notifications/InvoiceNotification.php @@ -52,7 +52,7 @@ public function toMail($notifiable) ->line(__('Price').': '.Currency::formatToCurrency($this->payment->total_price, $this->payment->currency_code)) ->line(__('Type').': '.$this->payment->type) ->line(__('Amount').': '.$this->payment->amount) - ->line(__('Balance').': '.Currency::formatForDisplay($this->user->credits)) + ->line(__('Balance').': '.number_format($this->user->credits, 2)) ->line(__('User ID').': '.$this->payment->user_id) ->attach(storage_path('app/invoice/'.$this->user->id.'/'.now()->format('Y').'/'.$this->invoice_file)); } diff --git a/app/Notifications/ServerSuspensionWarningNotification.php b/app/Notifications/ServerSuspensionWarningNotification.php deleted file mode 100644 index 058d1a479..000000000 --- a/app/Notifications/ServerSuspensionWarningNotification.php +++ /dev/null @@ -1,142 +0,0 @@ -servers = $servers; - } - - /** - * Get the notification's delivery channels. - * - * @param mixed $notifiable - * @return array - */ - public function via($notifiable) - { - $channels = ['database']; - - $mailSettings = app(MailSettings::class); - - if ($mailSettings->mail_from_address && $mailSettings->mail_host) { - $channels[] = 'mail'; - } - - return $channels; - } - - /** - * Get the mail representation of the notification. - * - * @param mixed $notifiable - * @return \Illuminate\Notifications\Messages\MailMessage - */ - public function toMail($notifiable) - { - $sortedServers = $this->getSortedServersByPriority(); - - $totalCreditsNeeded = $sortedServers->sum(function ($serverData) { - return $serverData['server']->product->price; - }); - $serverList = $sortedServers->map(function ($serverData, $index) { - $server = $serverData['server']; - return '• ' . $server->name . ' (will be suspended on ' . $serverData['suspension_date']->format('M j, Y \a\t g:i A') . ')'; - })->implode("\n"); - - $currentCredits = app(CurrencyHelper::class)->formatForDisplay($notifiable->credits); - $totalNeededDisplay = app(CurrencyHelper::class)->formatForDisplay($totalCreditsNeeded); - $additionalNeeded = max(0, $totalCreditsNeeded - $notifiable->credits); - $additionalNeededDisplay = app(CurrencyHelper::class)->formatForDisplay($additionalNeeded); - - return (new MailMessage) - ->subject('Server Suspension Warning - Action Required') - ->greeting('Hello ' . $notifiable->name . ',') - ->line('Your server(s) are scheduled for suspension due to insufficient credits:') - ->line($serverList) - ->line('Credit Status:') - ->line('• Current balance: ' . $currentCredits) - ->line('• Total needed for these servers: ' . $totalNeededDisplay) - ->line('• Additional credits needed: ' . $additionalNeededDisplay) - ->line('**Important:** Servers will be suspended in billing priority order (lowest priority first). If you don\'t have enough credits for all servers, lower priority servers will be suspended before higher priority ones.') - ->action('Add Credits Now', route('store.index')) - ->line('If you have any questions, please contact our support team.') - ->salutation('Best regards, ' . config('app.name', 'CtrlPanel') . ' Team'); - } - - /** - * Get the array representation of the notification. - * - * @param mixed $notifiable - * @return array - */ - public function toArray($notifiable) - { - // Sort servers by billing priority (LOW first = suspended first, HIGH last = suspended last) - $sortedServers = $this->getSortedServersByPriority(); - - $totalCreditsNeeded = $sortedServers->sum(function ($serverData) { - return $serverData['server']->product->price; - }); - $serverList = $sortedServers->map(function ($serverData, $index) { - $server = $serverData['server']; - $priorityText = ''; - if ($index === 0) { - $priorityText = ' (Lowest priority - suspended first)'; - } elseif ($index === $this->servers->count() - 1 && $this->servers->count() > 1) { - $priorityText = ' (Highest priority - suspended last)'; - } - return '
  • ' . $server->name . ' (will be suspended on ' . $serverData['suspension_date']->format('M j, Y \a\t g:i A') . ')' . $priorityText . '
  • '; - })->implode(''); - - $currentCredits = app(CurrencyHelper::class)->formatForDisplay($notifiable->credits); - $totalNeededDisplay = app(CurrencyHelper::class)->formatForDisplay($totalCreditsNeeded); - $additionalNeeded = max(0, $totalCreditsNeeded - $notifiable->credits); - $additionalNeededDisplay = app(CurrencyHelper::class)->formatForDisplay($additionalNeeded); - - return [ - 'title' => 'Server Suspension Warning - Action Required', - 'content' => ' -

    Hello ' . $notifiable->name . ',

    -

    Your server(s) are scheduled for suspension due to insufficient credits:

    -
      ' . $serverList . '
    -
    - Credit Status:
    - • Current balance: ' . $currentCredits . '
    - • Total needed for these servers: ' . $totalNeededDisplay . '
    - • Additional credits needed: ' . $additionalNeededDisplay . ' -
    -

    Important: Servers will be suspended in billing priority order (lowest priority first). If you don\'t have enough credits for all servers, lower priority servers will be suspended before higher priority ones.

    -

    Add Credits Now

    -

    If you have any questions, please contact our support team.

    -

    Best regards,
    ' . config('app.name', 'CtrlPanel') . '

    - ', - ]; - } - - /** - * Get servers sorted by billing priority. - * - * @return \Illuminate\Support\Collection - */ - private function getSortedServersByPriority() - { - return $this->servers->sortBy(function ($serverData) { - $server = $serverData['server']; - return $server->billing_priority ?? $server->product->default_billing_priority; - }); - } -} diff --git a/app/Notifications/WelcomeMessage.php b/app/Notifications/WelcomeMessage.php index c1e731342..6ce5c8fea 100644 --- a/app/Notifications/WelcomeMessage.php +++ b/app/Notifications/WelcomeMessage.php @@ -2,7 +2,6 @@ namespace App\Notifications; -use App\Facades\Currency; use App\Models\User; use App\Settings\GeneralSettings; use App\Settings\UserSettings; @@ -36,13 +35,13 @@ class WelcomeMessage extends Notification implements ShouldQueue */ public function __construct(User $user) { - $general_settings = new GeneralSettings(); + $general_settings= new GeneralSettings(); $user_settings = new UserSettings(); $this->user = $user; $this->credits_display_name = $general_settings->credits_display_name; - $this->credits_reward_after_verify_discord = Currency::formatForDisplay($user_settings->credits_reward_after_verify_discord); - $this->credits_reward_after_verify_email = Currency::formatForDisplay($user_settings->credits_reward_after_verify_email); + $this->credits_reward_after_verify_discord = $user_settings->credits_reward_after_verify_discord; + $this->credits_reward_after_verify_email = $user_settings->credits_reward_after_verify_email; $this->server_limit_increment_after_verify_discord = $user_settings->server_limit_increment_after_verify_discord; $this->server_limit_increment_after_verify_email = $user_settings->server_limit_increment_after_verify_email; } @@ -62,17 +61,17 @@ public function AdditionalLines() { $AdditionalLine = ''; if ($this->credits_reward_after_verify_email != 0) { - $AdditionalLine .= __('Verifying your e-mail address will grant you ') . $this->credits_reward_after_verify_email . ' ' . __('additional') . ' ' . $this->credits_display_name . '.
    '; + $AdditionalLine .= __('Verifying your e-mail address will grant you ').$this->credits_reward_after_verify_email.' '.__('additional').' '.$this->credits_display_name.'.
    '; } if ($this->server_limit_increment_after_verify_email != 0) { - $AdditionalLine .= __('Verifying your e-mail will also increase your Server Limit by ') . $this->server_limit_increment_after_verify_email . '.
    '; + $AdditionalLine .= __('Verifying your e-mail will also increase your Server Limit by ').$this->server_limit_increment_after_verify_email.'.
    '; } $AdditionalLine .= '
    '; if ($this->credits_reward_after_verify_discord != 0) { - $AdditionalLine .= __('You can also verify your discord account to get another ') . $this->credits_reward_after_verify_discord . ' ' . $this->credits_display_name . '.
    '; + $AdditionalLine .= __('You can also verify your discord account to get another ').$this->credits_reward_after_verify_discord.' '.$this->credits_display_name.'.
    '; } if ($this->server_limit_increment_after_verify_discord != 0) { - $AdditionalLine .= __('Verifying your Discord account will also increase your Server Limit by ') . $this->server_limit_increment_after_verify_discord . '.
    '; + $AdditionalLine .= __('Verifying your Discord account will also increase your Server Limit by ').$this->server_limit_increment_after_verify_discord.'.
    '; } return $AdditionalLine; @@ -89,16 +88,16 @@ public function toArray($notifiable) return [ 'title' => __('Getting started!'), 'content' => ' -

    ' . __('Hello') . " {$this->user->name}, " . __('Welcome to our dashboard') . '!

    -
    ' . __('Verification') . '
    -

    ' . __('You can verify your e-mail address and link/verify your Discord account.') . '

    +

    '.__('Hello')." {$this->user->name}, ".__('Welcome to our dashboard').'!

    +
    '.__('Verification').'
    +

    '.__('You can verify your e-mail address and link/verify your Discord account.').'

    - ' . $this->AdditionalLines() . ' + '.$this->AdditionalLines().'

    -
    ' . __('Information') . '
    -

    ' . __('This dashboard can be used to create and delete servers') . '.
    ' . __('These servers can be used and managed on our pterodactyl panel') . '.
    ' . __('If you have any questions, please join our Discord server and #create-a-ticket') . '.

    -

    ' . __('We hope you can enjoy this hosting experience and if you have any suggestions please let us know') . '!

    -

    ' . __('Regards') . ',
    ' . config('app.name', 'Laravel') . '

    +
    '.__('Information').'
    +

    '.__('This dashboard can be used to create and delete servers').'.
    '.__('These servers can be used and managed on our pterodactyl panel').'.
    '.__('If you have any questions, please join our Discord server and #create-a-ticket').'.

    +

    '.__('We hope you can enjoy this hosting experience and if you have any suggestions please let us know').'!

    +

    '.__('Regards').',
    '.config('app.name', 'Laravel').'

    ', ]; } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 0b99368f0..78cca9371 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -66,28 +66,22 @@ public function boot() CallHomeHelper::callHomeOnce(); //get the Github Branch the panel is running on - $headFile = base_path() . '/.git/HEAD'; - $headFileMissing = false; - if (file_exists($headFile)) { - try { - $stringfromfile = file($headFile); - $firstLine = $stringfromfile[0]; //get the string from the array - $explodedstring = explode('/', $firstLine, 3); //seperate out by the "/" in the string - $branchname = isset($explodedstring[2]) ? trim($explodedstring[2]) : 'unknown'; - } catch (Exception $e) { - $branchname = 'unknown'; - Log::notice($e); - } - } else { + try { + $stringfromfile = file(base_path() . '/.git/HEAD'); + + $firstLine = $stringfromfile[0]; //get the string from the array + + $explodedstring = explode('/', $firstLine, 3); //seperate out by the "/" in the string + + $branchname = $explodedstring[2]; //get the one that is always the branch name + } catch (Exception $e) { $branchname = 'unknown'; - $headFileMissing = true; + Log::notice($e); } config(['BRANCHNAME' => $branchname]); - view()->share('headFileMissing', $headFileMissing); // Do not run this code if no APP_KEY is set - if (config('app.key') == null) - return; + if (config('app.key') == null) return; try { if (Schema::hasColumn('useful_links', 'position')) { diff --git a/app/Settings/GeneralSettings.php b/app/Settings/GeneralSettings.php index 8a611d6b9..b52ac45e1 100644 --- a/app/Settings/GeneralSettings.php +++ b/app/Settings/GeneralSettings.php @@ -3,13 +3,12 @@ namespace App\Settings; use Spatie\LaravelSettings\Settings; -use App\Helpers\CurrencyHelper; + class GeneralSettings extends Settings { public bool $store_enabled = false; public ?float $sales_tax = null; public string $credits_display_name = 'Credits'; - public ?string $currency_format_override = null; public ?string $recaptcha_version = null; public ?string $recaptcha_site_key = null; public ?string $recaptcha_secret_key = null; @@ -40,7 +39,6 @@ public static function getValidations() 'store_enabled' => 'nullable|string', 'sales_tax' => 'nullable|numeric', 'credits_display_name' => 'required|string', - 'currency_format_override' => 'nullable|string|in:' . implode(',', array_merge([''], config('app.available_locales'))), 'recaptcha_version' => 'nullable|string|in:v2,v3,turnstile', 'recaptcha_site_key' => 'nullable|string', 'recaptcha_secret_key' => 'nullable|string', @@ -66,20 +64,7 @@ public static function getThemes() return $themesWithLabels; } - public static function getCurrencyFormatOptions() - { - $options = []; - $locales = config('app.available_locales'); - $helper = app(CurrencyHelper::class); - - foreach ($locales as $locale) { - // Format a sample amount (1234.56 in database units = 1234560) - $sample = $helper->formatForDisplay(1234560, 2, $locale, true); - $options[$locale] = "$locale: $sample"; - } - return $options; - } /** * Summary of optionTypes @@ -107,13 +92,6 @@ public static function getOptionInputData() 'label' => 'Credits Display Name', 'description' => 'The name of the currency used.' ], - 'currency_format_override' => [ - 'type' => 'select', - 'label' => 'Currency Format Override', - 'description' => 'Force all currency displays to use this locale\'s formatting, overriding the current locale.', - 'options' => array_merge(['' => 'Auto (Use Current Locale)'], self::getCurrencyFormatOptions()), - 'identifier' => 'value' - ], 'recaptcha_version' => [ 'type' => 'select', 'label' => 'reCAPTCHA Version', diff --git a/app/Settings/ReferralSettings.php b/app/Settings/ReferralSettings.php index da47d2e01..b6387fef3 100644 --- a/app/Settings/ReferralSettings.php +++ b/app/Settings/ReferralSettings.php @@ -18,17 +18,17 @@ public static function group(): string return 'referral'; } - // /** - // * Casts the settings to the correct type. - // * - // * @return array - // */ - // public static function casts(): array - // { - // return [ - // 'reward' => CurrencyCast::class, - // ]; - // } + /** + * Casts the settings to the correct type. + * + * @return array + */ + public static function casts(): array + { + return [ + 'reward' => CurrencyCast::class, + ]; + } /** * Summary of validations array diff --git a/app/Settings/UserSettings.php b/app/Settings/UserSettings.php index b13dbc269..f2ecec638 100644 --- a/app/Settings/UserSettings.php +++ b/app/Settings/UserSettings.php @@ -30,15 +30,15 @@ public static function group(): string * * @return array */ - // public static function casts(): array - // { - // return [ - // 'credits_reward_after_verify_discord' => CurrencyCast::class, - // 'credits_reward_after_verify_email' => CurrencyCast::class, - // 'initial_credits' => CurrencyCast::class, - // 'min_credits_to_make_server' => CurrencyCast::class, - // ]; - // } + public static function casts(): array + { + return [ + 'credits_reward_after_verify_discord' => CurrencyCast::class, + 'credits_reward_after_verify_email' => CurrencyCast::class, + 'initial_credits' => CurrencyCast::class, + 'min_credits_to_make_server' => CurrencyCast::class, + ]; + } /** * Summary of validations array diff --git a/app/Traits/Coupon.php b/app/Traits/Coupon.php index fb0a28b73..c2d38625d 100644 --- a/app/Traits/Coupon.php +++ b/app/Traits/Coupon.php @@ -22,12 +22,12 @@ public function validateCoupon($requestUser, $couponCode, $productId): JsonRespo ], 404); if (!is_null($coupon)) { - // Unlimited uses if max_uses is -1 - if ($coupon->max_uses !== -1 && $coupon->getStatus() == 'USES_LIMIT_REACHED') { + if ($coupon->getStatus() == 'USES_LIMIT_REACHED') { $response = response()->json([ 'isValid' => false, 'error' => __('This coupon has reached the maximum amount of uses.') ], 422); + return $response; } @@ -40,11 +40,12 @@ public function validateCoupon($requestUser, $couponCode, $productId): JsonRespo return $response; } - if ($coupon->isMaxUsesReached($requestUser)) { + if ($coupon->isMaxUsesReached($requestUser, $coupon_settings)) { $response = response()->json([ 'isValid' => false, 'error' => __('You have reached the maximum uses of this coupon.') ], 422); + return $response; } @@ -70,14 +71,12 @@ public function validateCoupon($requestUser, $couponCode, $productId): JsonRespo public function isCouponValid(string $couponCode, User $user, string $productId): bool { - if (is_null($couponCode)) - return false; + if (is_null($couponCode)) return false; $coupon = CouponModel::where('code', $couponCode)->firstOrFail(); $shopProduct = ShopProduct::findOrFail($productId); - // Unlimited uses if max_uses is -1 - if ($coupon->max_uses !== -1 && $coupon->getStatus() == 'USES_LIMIT_REACHED') { + if ($coupon->getStatus() == 'USES_LIMIT_REACHED') { return false; } diff --git a/composer.lock b/composer.lock index 7cf15f6e1..14e59a8eb 100644 --- a/composer.lock +++ b/composer.lock @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.359.10", + "version": "3.343.18", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "10989892e99083c73e8421b85b5d6f7d2ca0f2f5" + "reference": "ae98d503173740cce23b30d2ba2737c49b0d9876" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/10989892e99083c73e8421b85b5d6f7d2ca0f2f5", - "reference": "10989892e99083c73e8421b85b5d6f7d2ca0f2f5", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ae98d503173740cce23b30d2ba2737c49b0d9876", + "reference": "ae98d503173740cce23b30d2ba2737c49b0d9876", "shasum": "" }, "require": { @@ -84,7 +84,7 @@ "guzzlehttp/psr7": "^2.4.5", "mtdowling/jmespath.php": "^2.8.0", "php": ">=8.1", - "psr/http-message": "^1.0 || ^2.0" + "psr/http-message": "^2.0" }, "require-dev": { "andrewsville/php-token-reflection": "^1.4", @@ -153,9 +153,9 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.359.10" + "source": "https://github.com/aws/aws-sdk-php/tree/3.343.18" }, - "time": "2025-11-11T19:08:54+00:00" + "time": "2025-05-23T18:08:18+00:00" }, { "name": "barryvdh/laravel-dompdf", @@ -263,12 +263,12 @@ "type": "library", "extra": { "laravel": { - "aliases": { - "ReCaptcha": "Biscolab\\ReCaptcha\\Facades\\ReCaptcha" - }, "providers": [ "Biscolab\\ReCaptcha\\ReCaptchaServiceProvider" - ] + ], + "aliases": { + "ReCaptcha": "Biscolab\\ReCaptcha\\Facades\\ReCaptcha" + } } }, "autoload": { @@ -308,25 +308,25 @@ }, { "name": "brick/math", - "version": "0.14.0", + "version": "0.12.3", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" + "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", - "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "url": "https://api.github.com/repos/brick/math/zipball/866551da34e9a618e64a819ee1e01c20d8a588ba", + "reference": "866551da34e9a618e64a819ee1e01c20d8a588ba", "shasum": "" }, "require": { - "php": "^8.2" + "php": "^8.1" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpstan/phpstan": "2.1.22", - "phpunit/phpunit": "^11.5" + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "6.8.8" }, "type": "library", "autoload": { @@ -356,7 +356,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.14.0" + "source": "https://github.com/brick/math/tree/0.12.3" }, "funding": [ { @@ -364,7 +364,7 @@ "type": "github" } ], - "time": "2025-08-29T12:40:03+00:00" + "time": "2025-02-28T13:11:00+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -586,34 +586,34 @@ }, { "name": "doctrine/dbal", - "version": "4.3.4", + "version": "4.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "1a2fbd0e93b8dec7c3d1ac2b6396a7b929b130dc" + "reference": "33d2d7fe1269b2301640c44cf2896ea607b30e3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/1a2fbd0e93b8dec7c3d1ac2b6396a7b929b130dc", - "reference": "1a2fbd0e93b8dec7c3d1ac2b6396a7b929b130dc", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/33d2d7fe1269b2301640c44cf2896ea607b30e3e", + "reference": "33d2d7fe1269b2301640c44cf2896ea607b30e3e", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.1.5", - "php": "^8.2", + "doctrine/deprecations": "^0.5.3|^1", + "php": "^8.1", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "14.0.0", + "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.2", - "phpstan/phpstan": "2.1.30", - "phpstan/phpstan-phpunit": "2.0.7", + "phpstan/phpstan": "2.1.1", + "phpstan/phpstan-phpunit": "2.0.3", "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "11.5.23", - "slevomat/coding-standard": "8.24.0", - "squizlabs/php_codesniffer": "4.0.0", + "phpunit/phpunit": "10.5.39", + "slevomat/coding-standard": "8.13.1", + "squizlabs/php_codesniffer": "3.10.2", "symfony/cache": "^6.3.8|^7.0", "symfony/console": "^5.4|^6.3|^7.0" }, @@ -672,7 +672,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.3.4" + "source": "https://github.com/doctrine/dbal/tree/4.2.3" }, "funding": [ { @@ -688,7 +688,7 @@ "type": "tidelift" } ], - "time": "2025-10-09T09:11:36+00:00" + "time": "2025-03-07T18:29:05+00:00" }, { "name": "doctrine/deprecations", @@ -740,32 +740,33 @@ }, { "name": "doctrine/inflector", - "version": "2.1.0", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", - "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^12.0 || ^13.0", - "phpstan/phpstan": "^1.12 || ^2.0", - "phpstan/phpstan-phpunit": "^1.4 || ^2.0", - "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", - "phpunit/phpunit": "^8.5 || ^12.2" + "doctrine/coding-standard": "^11.0", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25 || ^5.4" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "src" + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, "notification-url": "https://packagist.org/downloads/", @@ -810,7 +811,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.1.0" + "source": "https://github.com/doctrine/inflector/tree/2.0.10" }, "funding": [ { @@ -826,7 +827,7 @@ "type": "tidelift" } ], - "time": "2025-08-10T19:31:58+00:00" + "time": "2024-02-18T20:23:39+00:00" }, { "name": "doctrine/lexer", @@ -907,16 +908,16 @@ }, { "name": "dompdf/dompdf", - "version": "v3.1.4", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "db712c90c5b9868df3600e64e68da62e78a34623" + "reference": "a51bd7a063a65499446919286fb18b518177155a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/db712c90c5b9868df3600e64e68da62e78a34623", - "reference": "db712c90c5b9868df3600e64e68da62e78a34623", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/a51bd7a063a65499446919286fb18b518177155a", + "reference": "a51bd7a063a65499446919286fb18b518177155a", "shasum": "" }, "require": { @@ -965,9 +966,9 @@ "homepage": "https://github.com/dompdf/dompdf", "support": { "issues": "https://github.com/dompdf/dompdf/issues", - "source": "https://github.com/dompdf/dompdf/tree/v3.1.4" + "source": "https://github.com/dompdf/dompdf/tree/v3.1.0" }, - "time": "2025-10-29T12:43:30+00:00" + "time": "2025-01-15T14:09:04+00:00" }, { "name": "dompdf/php-font-lib", @@ -1062,28 +1063,29 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.6.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013" + "reference": "8c784d071debd117328803d86b2097615b457500" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013", - "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", "shasum": "" }, "require": { - "php": "^8.2|^8.3|^8.4|^8.5" + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" }, "replace": { "mtdowling/cron-expression": "^1.0" }, "require-dev": { - "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^1.12.32|^2.1.31", - "phpunit/phpunit": "^8.5.48|^9.0" + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", "extra": { @@ -1114,7 +1116,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" }, "funding": [ { @@ -1122,7 +1124,7 @@ "type": "github" } ], - "time": "2025-10-31T18:51:33+00:00" + "time": "2024-10-09T13:47:03+00:00" }, { "name": "egulias/email-validator", @@ -1442,22 +1444,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.10.0", + "version": "7.9.3", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", - "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", + "reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^2.3", - "guzzlehttp/psr7": "^2.8", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -1548,7 +1550,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.10.0" + "source": "https://github.com/guzzle/guzzle/tree/7.9.3" }, "funding": [ { @@ -1564,20 +1566,20 @@ "type": "tidelift" } ], - "time": "2025-08-23T22:36:01+00:00" + "time": "2025-03-27T13:37:11+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.3.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "481557b130ef3790cf82b713667b43030dc9c957" + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", - "reference": "481557b130ef3790cf82b713667b43030dc9c957", + "url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c", + "reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c", "shasum": "" }, "require": { @@ -1585,7 +1587,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.44 || ^9.6.25" + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "type": "library", "extra": { @@ -1631,7 +1633,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.3.0" + "source": "https://github.com/guzzle/promises/tree/2.2.0" }, "funding": [ { @@ -1647,20 +1649,20 @@ "type": "tidelift" } ], - "time": "2025-08-22T14:34:08+00:00" + "time": "2025-03-27T13:27:01+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.8.0", + "version": "2.7.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "21dc724a0583619cd1652f673303492272778051" + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", - "reference": "21dc724a0583619cd1652f673303492272778051", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", "shasum": "" }, "require": { @@ -1676,7 +1678,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "0.9.0", - "phpunit/phpunit": "^8.5.44 || ^9.6.25" + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -1747,7 +1749,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.8.0" + "source": "https://github.com/guzzle/psr7/tree/2.7.1" }, "funding": [ { @@ -1763,20 +1765,20 @@ "type": "tidelift" } ], - "time": "2025-08-23T21:21:41+00:00" + "time": "2025-03-27T12:30:47+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.5", + "version": "v1.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1" + "reference": "30e286560c137526eccd4ce21b2de477ab0676d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1", - "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/30e286560c137526eccd4ce21b2de477ab0676d2", + "reference": "30e286560c137526eccd4ce21b2de477ab0676d2", "shasum": "" }, "require": { @@ -1785,7 +1787,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.44 || ^9.6.25", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "uri-template/tests": "1.0.0" }, "type": "library", @@ -1833,7 +1835,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.5" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.4" }, "funding": [ { @@ -1849,7 +1851,7 @@ "type": "tidelift" } ], - "time": "2025-08-22T14:27:06+00:00" + "time": "2025-02-03T10:55:03+00:00" }, { "name": "hidehalo/nanoid-php", @@ -1976,16 +1978,16 @@ }, { "name": "kkomelin/laravel-translatable-string-exporter", - "version": "1.25.0", + "version": "1.23.0", "source": { "type": "git", "url": "https://github.com/kkomelin/laravel-translatable-string-exporter.git", - "reference": "e0feda8878a8b2a3dd5f4f66f14e5d808421346e" + "reference": "5d310214ac647904953b4a830f3990a04e262f06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kkomelin/laravel-translatable-string-exporter/zipball/e0feda8878a8b2a3dd5f4f66f14e5d808421346e", - "reference": "e0feda8878a8b2a3dd5f4f66f14e5d808421346e", + "url": "https://api.github.com/repos/kkomelin/laravel-translatable-string-exporter/zipball/5d310214ac647904953b4a830f3990a04e262f06", + "reference": "5d310214ac647904953b4a830f3990a04e262f06", "shasum": "" }, "require": { @@ -1996,7 +1998,7 @@ "symfony/finder": "^5|^6|^7.0" }, "require-dev": { - "larastan/larastan": "^1.0|^2.0|^3.0", + "nunomaduro/larastan": "^1.0|^2.0|^3.0", "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0", "phpunit/phpunit": "^9.0|^10.5|^11.5|^12.0" }, @@ -2035,26 +2037,26 @@ ], "support": { "issues": "https://github.com/kkomelin/laravel-translatable-string-exporter/issues", - "source": "https://github.com/kkomelin/laravel-translatable-string-exporter/tree/1.25.0" + "source": "https://github.com/kkomelin/laravel-translatable-string-exporter/tree/1.23.0" }, - "time": "2025-10-03T09:34:30+00:00" + "time": "2025-02-26T12:03:29+00:00" }, { "name": "laravel/framework", - "version": "v11.46.1", + "version": "v11.45.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "5fd457f807570a962a53b403b1346efe4cc80bb8" + "reference": "d0730deb427632004d24801be7ca1ed2c10fbc4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/5fd457f807570a962a53b403b1346efe4cc80bb8", - "reference": "5fd457f807570a962a53b403b1346efe4cc80bb8", + "url": "https://api.github.com/repos/laravel/framework/zipball/d0730deb427632004d24801be7ca1ed2c10fbc4e", + "reference": "d0730deb427632004d24801be7ca1ed2c10fbc4e", "shasum": "" }, "require": { - "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12|^0.13|^0.14", + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", "composer-runtime-api": "^2.2", "doctrine/inflector": "^2.0.5", "dragonmantank/cron-expression": "^3.4", @@ -2158,7 +2160,7 @@ "league/flysystem-read-only": "^3.25.1", "league/flysystem-sftp-v3": "^3.25.1", "mockery/mockery": "^1.6.10", - "orchestra/testbench-core": "^9.16.1", + "orchestra/testbench-core": "^9.13.2", "pda/pheanstalk": "^5.0.6", "php-http/discovery": "^1.15", "phpstan/phpstan": "^2.0", @@ -2252,20 +2254,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-09-30T14:51:32+00:00" + "time": "2025-05-20T15:15:58+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.7", + "version": "v0.3.5", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc" + "reference": "57b8f7efe40333cdb925700891c7d7465325d3b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/a1891d362714bc40c8d23b0b1d7090f022ea27cc", - "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc", + "url": "https://api.github.com/repos/laravel/prompts/zipball/57b8f7efe40333cdb925700891c7d7465325d3b1", + "reference": "57b8f7efe40333cdb925700891c7d7465325d3b1", "shasum": "" }, "require": { @@ -2282,8 +2284,8 @@ "illuminate/collections": "^10.0|^11.0|^12.0", "mockery/mockery": "^1.5", "pestphp/pest": "^2.3|^3.4", - "phpstan/phpstan": "^1.12.28", - "phpstan/phpstan-mockery": "^1.1.3" + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-mockery": "^1.1" }, "suggest": { "ext-pcntl": "Required for the spinner to be animated." @@ -2309,22 +2311,22 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.7" + "source": "https://github.com/laravel/prompts/tree/v0.3.5" }, - "time": "2025-09-19T13:47:56+00:00" + "time": "2025-02-11T13:34:40+00:00" }, { "name": "laravel/serializable-closure", - "version": "v2.0.6", + "version": "v2.0.4", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "038ce42edee619599a1debb7e81d7b3759492819" + "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/038ce42edee619599a1debb7e81d7b3759492819", - "reference": "038ce42edee619599a1debb7e81d7b3759492819", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b352cf0534aa1ae6b4d825d1e762e35d43f8a841", + "reference": "b352cf0534aa1ae6b4d825d1e762e35d43f8a841", "shasum": "" }, "require": { @@ -2372,20 +2374,20 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2025-10-09T13:42:30+00:00" + "time": "2025-03-19T13:51:03+00:00" }, { "name": "laravel/socialite", - "version": "v5.23.1", + "version": "v5.20.0", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "83d7523c97c1101d288126948947891319eef800" + "reference": "30972c12a41f71abeb418bc9ff157da8d9231519" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/83d7523c97c1101d288126948947891319eef800", - "reference": "83d7523c97c1101d288126948947891319eef800", + "url": "https://api.github.com/repos/laravel/socialite/zipball/30972c12a41f71abeb418bc9ff157da8d9231519", + "reference": "30972c12a41f71abeb418bc9ff157da8d9231519", "shasum": "" }, "require": { @@ -2444,7 +2446,7 @@ "issues": "https://github.com/laravel/socialite/issues", "source": "https://github.com/laravel/socialite" }, - "time": "2025-10-27T15:36:41+00:00" + "time": "2025-04-21T14:21:34+00:00" }, { "name": "laravel/tinker", @@ -2643,16 +2645,16 @@ }, { "name": "league/commonmark", - "version": "2.7.1", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "10732241927d3971d28e7ea7b5712721fa2296ca" + "reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/10732241927d3971d28e7ea7b5712721fa2296ca", - "reference": "10732241927d3971d28e7ea7b5712721fa2296ca", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/6fbb36d44824ed4091adbcf4c7d4a3923cdb3405", + "reference": "6fbb36d44824ed4091adbcf4c7d4a3923cdb3405", "shasum": "" }, "require": { @@ -2681,7 +2683,7 @@ "symfony/process": "^5.4 | ^6.0 | ^7.0", "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", "unleashedtech/php-coding-standard": "^3.1.1", - "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0" + "vimeo/psalm": "^4.24.0 || ^5.0.0" }, "suggest": { "symfony/yaml": "v2.3+ required if using the Front Matter extension" @@ -2746,7 +2748,7 @@ "type": "tidelift" } ], - "time": "2025-07-20T12:47:49+00:00" + "time": "2025-05-05T12:20:28+00:00" }, { "name": "league/config", @@ -2832,16 +2834,16 @@ }, { "name": "league/flysystem", - "version": "3.30.2", + "version": "3.29.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277" + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277", - "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319", + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319", "shasum": "" }, "require": { @@ -2865,13 +2867,13 @@ "composer/semver": "^3.0", "ext-fileinfo": "*", "ext-ftp": "*", - "ext-mongodb": "^1.3|^2", + "ext-mongodb": "^1.3", "ext-zip": "*", "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", "guzzlehttp/psr7": "^2.6", "microsoft/azure-storage-blob": "^1.1", - "mongodb/mongodb": "^1.2|^2", + "mongodb/mongodb": "^1.2", "phpseclib/phpseclib": "^3.0.36", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^9.5.11|^10.0", @@ -2909,22 +2911,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.30.2" + "source": "https://github.com/thephpleague/flysystem/tree/3.29.1" }, - "time": "2025-11-10T17:13:11+00:00" + "time": "2024-10-08T08:58:34+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.30.1", + "version": "3.29.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "d286e896083bed3190574b8b088b557b59eb66f5" + "reference": "c6ff6d4606e48249b63f269eba7fabdb584e76a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/d286e896083bed3190574b8b088b557b59eb66f5", - "reference": "d286e896083bed3190574b8b088b557b59eb66f5", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/c6ff6d4606e48249b63f269eba7fabdb584e76a9", + "reference": "c6ff6d4606e48249b63f269eba7fabdb584e76a9", "shasum": "" }, "require": { @@ -2964,22 +2966,22 @@ "storage" ], "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.30.1" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.29.0" }, - "time": "2025-10-20T15:27:33+00:00" + "time": "2024-08-17T13:10:48+00:00" }, { "name": "league/flysystem-local", - "version": "3.30.2", + "version": "3.29.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d" + "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ab4f9d0d672f601b102936aa728801dd1a11968d", - "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27", + "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27", "shasum": "" }, "require": { @@ -3013,9 +3015,9 @@ "local" ], "support": { - "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.2" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0" }, - "time": "2025-11-10T11:23:37+00:00" + "time": "2024-08-09T21:24:39+00:00" }, { "name": "league/mime-type-detection", @@ -3325,16 +3327,16 @@ }, { "name": "masterminds/html5", - "version": "2.10.0", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "fcf91eb64359852f00d921887b219479b4f21251" + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251", - "reference": "fcf91eb64359852f00d921887b219479b4f21251", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", "shasum": "" }, "require": { @@ -3386,9 +3388,9 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" }, - "time": "2025-07-25T09:04:22+00:00" + "time": "2024-03-31T07:05:07+00:00" }, { "name": "monolog/monolog", @@ -3561,16 +3563,16 @@ }, { "name": "nesbot/carbon", - "version": "3.10.3", + "version": "3.9.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f" + "reference": "ced71f79398ece168e24f7f7710462f462310d4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", - "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ced71f79398ece168e24f7f7710462f462310d4d", + "reference": "ced71f79398ece168e24f7f7710462f462310d4d", "shasum": "" }, "require": { @@ -3578,9 +3580,9 @@ "ext-json": "*", "php": "^8.1", "psr/clock": "^1.0", - "symfony/clock": "^6.3.12 || ^7.0", + "symfony/clock": "^6.3 || ^7.0", "symfony/polyfill-mbstring": "^1.0", - "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0" + "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0" }, "provide": { "psr/clock-implementation": "1.0" @@ -3588,13 +3590,14 @@ "require-dev": { "doctrine/dbal": "^3.6.3 || ^4.0", "doctrine/orm": "^2.15.2 || ^3.0", - "friendsofphp/php-cs-fixer": "^v3.87.1", + "friendsofphp/php-cs-fixer": "^3.57.2", "kylekatarnls/multi-tester": "^2.5.3", + "ondrejmirtes/better-reflection": "^6.25.0.4", "phpmd/phpmd": "^2.15.0", - "phpstan/extension-installer": "^1.4.3", - "phpstan/phpstan": "^2.1.22", - "phpunit/phpunit": "^10.5.53", - "squizlabs/php_codesniffer": "^3.13.4" + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^1.11.2", + "phpunit/phpunit": "^10.5.20", + "squizlabs/php_codesniffer": "^3.9.0" }, "bin": [ "bin/carbon" @@ -3662,29 +3665,29 @@ "type": "tidelift" } ], - "time": "2025-09-06T13:39:36+00:00" + "time": "2025-05-01T19:51:51+00:00" }, { "name": "nette/schema", - "version": "v1.3.3", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004" + "reference": "da801d52f0354f70a638673c4a0f04e16529431d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004", - "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004", + "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d", "shasum": "" }, "require": { "nette/utils": "^4.0", - "php": "8.1 - 8.5" + "php": "8.1 - 8.4" }, "require-dev": { "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^2.0@stable", + "phpstan/phpstan-nette": "^1.0", "tracy/tracy": "^2.8" }, "type": "library", @@ -3694,9 +3697,6 @@ } }, "autoload": { - "psr-4": { - "Nette\\": "src" - }, "classmap": [ "src/" ] @@ -3725,35 +3725,35 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.3" + "source": "https://github.com/nette/schema/tree/v1.3.2" }, - "time": "2025-10-30T22:57:59+00:00" + "time": "2024-10-06T23:10:23+00:00" }, { "name": "nette/utils", - "version": "v4.0.8", + "version": "v4.0.6", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede" + "reference": "ce708655043c7050eb050df361c5e313cf708309" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/c930ca4e3cf4f17dcfb03037703679d2396d2ede", - "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede", + "url": "https://api.github.com/repos/nette/utils/zipball/ce708655043c7050eb050df361c5e313cf708309", + "reference": "ce708655043c7050eb050df361c5e313cf708309", "shasum": "" }, "require": { - "php": "8.0 - 8.5" + "php": "8.0 - 8.4" }, "conflict": { "nette/finder": "<3", "nette/schema": "<1.2.2" }, "require-dev": { - "jetbrains/phpstorm-attributes": "^1.2", + "jetbrains/phpstorm-attributes": "dev-master", "nette/tester": "^2.5", - "phpstan/phpstan-nette": "^2.0@stable", + "phpstan/phpstan": "^1.0", "tracy/tracy": "^2.9" }, "suggest": { @@ -3771,9 +3771,6 @@ } }, "autoload": { - "psr-4": { - "Nette\\": "src" - }, "classmap": [ "src/" ] @@ -3814,22 +3811,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.0.8" + "source": "https://github.com/nette/utils/tree/v4.0.6" }, - "time": "2025-08-06T21:43:34+00:00" + "time": "2025-03-30T21:06:30+00:00" }, { "name": "nikic/php-parser", - "version": "v5.6.2", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "3a454ca033b9e06b63282ce19562e892747449bb" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", - "reference": "3a454ca033b9e06b63282ce19562e892747449bb", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { @@ -3848,7 +3845,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.x-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -3872,37 +3869,37 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.6.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2025-10-21T19:32:17+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "nunomaduro/termwind", - "version": "v2.3.2", + "version": "v2.3.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "eb61920a53057a7debd718a5b89c2178032b52c0" + "reference": "dfa08f390e509967a15c22493dc0bac5733d9123" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/eb61920a53057a7debd718a5b89c2178032b52c0", - "reference": "eb61920a53057a7debd718a5b89c2178032b52c0", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/dfa08f390e509967a15c22493dc0bac5733d9123", + "reference": "dfa08f390e509967a15c22493dc0bac5733d9123", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.3.4" + "symfony/console": "^7.2.6" }, "require-dev": { - "illuminate/console": "^11.46.1", - "laravel/pint": "^1.25.1", + "illuminate/console": "^11.44.7", + "laravel/pint": "^1.22.0", "mockery/mockery": "^1.6.12", - "pestphp/pest": "^2.36.0 || ^3.8.4", - "phpstan/phpstan": "^1.12.32", + "pestphp/pest": "^2.36.0 || ^3.8.2", + "phpstan/phpstan": "^1.12.25", "phpstan/phpstan-strict-rules": "^1.6.2", - "symfony/var-dumper": "^7.3.4", + "symfony/var-dumper": "^7.2.6", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -3945,7 +3942,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.3.2" + "source": "https://github.com/nunomaduro/termwind/tree/v2.3.1" }, "funding": [ { @@ -3961,30 +3958,28 @@ "type": "github" } ], - "time": "2025-10-18T11:10:27+00:00" + "time": "2025-05-08T08:14:37+00:00" }, { "name": "paragonie/constant_time_encoding", - "version": "v3.1.3", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", - "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512", + "reference": "df1e7fde177501eee2037dd159cf04f5f301a512", "shasum": "" }, "require": { "php": "^8" }, "require-dev": { - "infection/infection": "^0", - "nikic/php-fuzzer": "^0", - "phpunit/phpunit": "^9|^10|^11", - "vimeo/psalm": "^4|^5|^6" + "phpunit/phpunit": "^9", + "vimeo/psalm": "^4|^5" }, "type": "library", "autoload": { @@ -4030,7 +4025,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2025-09-24T15:06:41+00:00" + "time": "2024-05-08T12:36:18+00:00" }, { "name": "paragonie/random_compat", @@ -4176,7 +4171,6 @@ "issues": "https://github.com/paypal/paypalhttp_php/issues", "source": "https://github.com/paypal/paypalhttp_php/tree/1.0.1" }, - "abandoned": true, "time": "2021-09-14T21:35:26+00:00" }, { @@ -4292,16 +4286,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.9.4", + "version": "1.9.3", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d" + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", - "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", "shasum": "" }, "require": { @@ -4309,7 +4303,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" }, "type": "library", "extra": { @@ -4351,7 +4345,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.4" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" }, "funding": [ { @@ -4363,20 +4357,20 @@ "type": "tidelift" } ], - "time": "2025-08-21T11:53:16+00:00" + "time": "2024-07-20T21:41:07+00:00" }, { "name": "phpseclib/phpseclib", - "version": "3.0.47", + "version": "3.0.43", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d" + "reference": "709ec107af3cb2f385b9617be72af8cf62441d02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/9d6ca36a6c2dd434765b1071b2644a1c683b385d", - "reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/709ec107af3cb2f385b9617be72af8cf62441d02", + "reference": "709ec107af3cb2f385b9617be72af8cf62441d02", "shasum": "" }, "require": { @@ -4457,7 +4451,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.47" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.43" }, "funding": [ { @@ -4473,20 +4467,20 @@ "type": "tidelift" } ], - "time": "2025-10-06T01:07:24+00:00" + "time": "2024-12-14T21:12:59+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" + "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", - "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", + "reference": "9b30d6fd026b2c132b3985ce6b23bec09ab3aa68", "shasum": "" }, "require": { @@ -4518,22 +4512,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.1.0" }, - "time": "2025-08-30T15:50:23+00:00" + "time": "2025-02-19T13:28:12+00:00" }, { "name": "predis/predis", - "version": "v3.2.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "9e9deec4dfd3ebf65d32eb368f498c646ba2ecd8" + "reference": "34fb0a7da0330df1bab4280fcac4afdeeccc3edf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/9e9deec4dfd3ebf65d32eb368f498c646ba2ecd8", - "reference": "9e9deec4dfd3ebf65d32eb368f498c646ba2ecd8", + "url": "https://api.github.com/repos/predis/predis/zipball/34fb0a7da0330df1bab4280fcac4afdeeccc3edf", + "reference": "34fb0a7da0330df1bab4280fcac4afdeeccc3edf", "shasum": "" }, "require": { @@ -4575,7 +4569,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v3.2.0" + "source": "https://github.com/predis/predis/tree/v3.0.1" }, "funding": [ { @@ -4583,7 +4577,7 @@ "type": "github" } ], - "time": "2025-08-06T06:41:24+00:00" + "time": "2025-05-16T18:30:32+00:00" }, { "name": "psr/cache", @@ -5048,16 +5042,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.14", + "version": "v0.12.8", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "95c29b3756a23855a30566b745d218bee690bef2" + "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/95c29b3756a23855a30566b745d218bee690bef2", - "reference": "95c29b3756a23855a30566b745d218bee690bef2", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/85057ceedee50c49d4f6ecaff73ee96adb3b3625", + "reference": "85057ceedee50c49d4f6ecaff73ee96adb3b3625", "shasum": "" }, "require": { @@ -5072,12 +5066,11 @@ "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "composer/class-map-generator": "^1.6" + "bamarni/composer-bin-plugin": "^1.2" }, "suggest": { - "composer/class-map-generator": "Improved tab completion performance with better class discovery.", "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." }, "bin": [ @@ -5108,11 +5101,12 @@ "authors": [ { "name": "Justin Hileman", - "email": "justin@justinhileman.info" + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" } ], "description": "An interactive shell for modern PHP.", - "homepage": "https://psysh.org", + "homepage": "http://psysh.org", "keywords": [ "REPL", "console", @@ -5121,9 +5115,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.14" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.8" }, - "time": "2025-10-27T17:15:31+00:00" + "time": "2025-03-16T03:05:19+00:00" }, { "name": "qirolab/laravel-themer", @@ -5317,20 +5311,21 @@ }, { "name": "ramsey/uuid", - "version": "4.9.1", + "version": "4.7.6", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", - "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", + "ext-json": "*", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -5338,23 +5333,26 @@ "rhumsaa/uuid": "self.version" }, "require-dev": { - "captainhook/captainhook": "^5.25", + "captainhook/captainhook": "^5.10", "captainhook/plugin-composer": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^1.0", - "ergebnis/composer-normalize": "^2.47", - "mockery/mockery": "^1.6", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", "paragonie/random-lib": "^2", - "php-mock/php-mock": "^2.6", - "php-mock/php-mock-mockery": "^1.5", - "php-parallel-lint/php-parallel-lint": "^1.4.0", - "phpbench/phpbench": "^1.2.14", - "phpstan/extension-installer": "^1.4", - "phpstan/phpstan": "^2.1", - "phpstan/phpstan-mockery": "^2.0", - "phpstan/phpstan-phpunit": "^2.0", - "phpunit/phpunit": "^9.6", - "slevomat/coding-standard": "^8.18", - "squizlabs/php_codesniffer": "^3.13" + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" }, "suggest": { "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", @@ -5389,22 +5387,32 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.1" + "source": "https://github.com/ramsey/uuid/tree/4.7.6" }, - "time": "2025-09-04T20:59:21+00:00" + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2024-04-27T21:32:50+00:00" }, { "name": "sabberworm/php-css-parser", - "version": "v8.9.0", + "version": "v8.8.0", "source": { "type": "git", "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git", - "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9" + "reference": "3de493bdddfd1f051249af725c7e0d2c38fed740" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/d8e916507b88e389e26d4ab03c904a082aa66bb9", - "reference": "d8e916507b88e389e26d4ab03c904a082aa66bb9", + "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/3de493bdddfd1f051249af725c7e0d2c38fed740", + "reference": "3de493bdddfd1f051249af725c7e0d2c38fed740", "shasum": "" }, "require": { @@ -5412,8 +5420,7 @@ "php": "^5.6.20 || ^7.0.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { - "phpunit/phpunit": "5.7.27 || 6.5.14 || 7.5.20 || 8.5.41", - "rawr/cross-data-providers": "^2.0.0" + "phpunit/phpunit": "5.7.27 || 6.5.14 || 7.5.20 || 8.5.41" }, "suggest": { "ext-mbstring": "for parsing UTF-8 CSS" @@ -5455,9 +5462,9 @@ ], "support": { "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues", - "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.9.0" + "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v8.8.0" }, - "time": "2025-07-11T13:20:48+00:00" + "time": "2025-03-23T17:59:05+00:00" }, { "name": "socialiteproviders/discord", @@ -5585,16 +5592,16 @@ }, { "name": "spatie/laravel-activitylog", - "version": "4.10.2", + "version": "4.10.1", "source": { "type": "git", "url": "https://github.com/spatie/laravel-activitylog.git", - "reference": "bb879775d487438ed9a99e64f09086b608990c10" + "reference": "466f30f7245fe3a6e328ad5e6812bd43b4bddea5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-activitylog/zipball/bb879775d487438ed9a99e64f09086b608990c10", - "reference": "bb879775d487438ed9a99e64f09086b608990c10", + "url": "https://api.github.com/repos/spatie/laravel-activitylog/zipball/466f30f7245fe3a6e328ad5e6812bd43b4bddea5", + "reference": "466f30f7245fe3a6e328ad5e6812bd43b4bddea5", "shasum": "" }, "require": { @@ -5660,7 +5667,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-activitylog/issues", - "source": "https://github.com/spatie/laravel-activitylog/tree/4.10.2" + "source": "https://github.com/spatie/laravel-activitylog/tree/4.10.1" }, "funding": [ { @@ -5672,20 +5679,20 @@ "type": "github" } ], - "time": "2025-06-15T06:59:49+00:00" + "time": "2025-02-10T15:38:25+00:00" }, { "name": "spatie/laravel-package-tools", - "version": "1.92.7", + "version": "1.92.4", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "f09a799850b1ed765103a4f0b4355006360c49a5" + "reference": "d20b1969f836d210459b78683d85c9cd5c5f508c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/f09a799850b1ed765103a4f0b4355006360c49a5", - "reference": "f09a799850b1ed765103a4f0b4355006360c49a5", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/d20b1969f836d210459b78683d85c9cd5c5f508c", + "reference": "d20b1969f836d210459b78683d85c9cd5c5f508c", "shasum": "" }, "require": { @@ -5725,7 +5732,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.7" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.4" }, "funding": [ { @@ -5733,20 +5740,20 @@ "type": "github" } ], - "time": "2025-07-17T15:46:43+00:00" + "time": "2025-04-11T15:27:14+00:00" }, { "name": "spatie/laravel-permission", - "version": "6.23.0", + "version": "6.18.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-permission.git", - "reference": "9e41247bd512b1e6c229afbc1eb528f7565ae3bb" + "reference": "3c05f04d12275dfbe462c8b4aae3290e586c2dde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/9e41247bd512b1e6c229afbc1eb528f7565ae3bb", - "reference": "9e41247bd512b1e6c229afbc1eb528f7565ae3bb", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/3c05f04d12275dfbe462c8b4aae3290e586c2dde", + "reference": "3c05f04d12275dfbe462c8b4aae3290e586c2dde", "shasum": "" }, "require": { @@ -5808,7 +5815,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-permission/issues", - "source": "https://github.com/spatie/laravel-permission/tree/6.23.0" + "source": "https://github.com/spatie/laravel-permission/tree/6.18.0" }, "funding": [ { @@ -5816,20 +5823,20 @@ "type": "github" } ], - "time": "2025-11-03T20:16:13+00:00" + "time": "2025-05-14T03:32:23+00:00" }, { "name": "spatie/laravel-query-builder", - "version": "6.3.6", + "version": "6.3.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-query-builder.git", - "reference": "b9a5af31c79ae8fb79ae0aa8ba2b9e7180f39481" + "reference": "3675f7bace346dc5243f58fa7c531e36471200f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/b9a5af31c79ae8fb79ae0aa8ba2b9e7180f39481", - "reference": "b9a5af31c79ae8fb79ae0aa8ba2b9e7180f39481", + "url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/3675f7bace346dc5243f58fa7c531e36471200f4", + "reference": "3675f7bace346dc5243f58fa7c531e36471200f4", "shasum": "" }, "require": { @@ -5841,11 +5848,10 @@ }, "require-dev": { "ext-json": "*", - "larastan/larastan": "^2.7 || ^3.3", "mockery/mockery": "^1.4", "orchestra/testbench": "^7.0|^8.0|^10.0", - "pestphp/pest": "^2.0|^3.7|^4.0", - "phpunit/phpunit": "^10.0|^11.5.3|^12.0", + "pestphp/pest": "^2.0|^3.7", + "phpunit/phpunit": "^10.0|^11.5.3", "spatie/invade": "^2.0" }, "type": "library", @@ -5890,20 +5896,20 @@ "type": "custom" } ], - "time": "2025-10-20T09:50:21+00:00" + "time": "2025-04-16T07:30:03+00:00" }, { "name": "spatie/laravel-settings", - "version": "3.5.0", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/spatie/laravel-settings.git", - "reference": "bdb12449ce1f7afcf12fac59f6c7a63a39513fe7" + "reference": "fd0eb5a832131b56cd98834b93be3425ee28e333" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-settings/zipball/bdb12449ce1f7afcf12fac59f6c7a63a39513fe7", - "reference": "bdb12449ce1f7afcf12fac59f6c7a63a39513fe7", + "url": "https://api.github.com/repos/spatie/laravel-settings/zipball/fd0eb5a832131b56cd98834b93be3425ee28e333", + "reference": "fd0eb5a832131b56cd98834b93be3425ee28e333", "shasum": "" }, "require": { @@ -5963,7 +5969,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-settings/issues", - "source": "https://github.com/spatie/laravel-settings/tree/3.5.0" + "source": "https://github.com/spatie/laravel-settings/tree/3.4.4" }, "funding": [ { @@ -5975,7 +5981,7 @@ "type": "github" } ], - "time": "2025-10-24T13:01:51+00:00" + "time": "2025-04-11T11:35:56+00:00" }, { "name": "spatie/temporary-directory", @@ -6100,7 +6106,7 @@ }, { "name": "symfony/clock", - "version": "v7.3.0", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", @@ -6154,7 +6160,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.3.0" + "source": "https://github.com/symfony/clock/tree/v7.2.0" }, "funding": [ { @@ -6174,24 +6180,23 @@ }, { "name": "symfony/console", - "version": "v7.3.6", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a" + "reference": "0e2e3f38c192e93e622e41ec37f4ca70cfedf218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c28ad91448f86c5f6d9d2c70f0cf68bf135f252a", - "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a", + "url": "https://api.github.com/repos/symfony/console/zipball/0e2e3f38c192e93e622e41ec37f4ca70cfedf218", + "reference": "0e2e3f38c192e93e622e41ec37f4ca70cfedf218", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2" + "symfony/string": "^6.4|^7.0" }, "conflict": { "symfony/dependency-injection": "<6.4", @@ -6248,7 +6253,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.3.6" + "source": "https://github.com/symfony/console/tree/v7.2.6" }, "funding": [ { @@ -6259,29 +6264,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-11-04T01:21:42+00:00" + "time": "2025-04-07T19:09:28+00:00" }, { "name": "symfony/css-selector", - "version": "v7.3.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "84321188c4754e64273b46b406081ad9b18e8614" + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/84321188c4754e64273b46b406081ad9b18e8614", - "reference": "84321188c4754e64273b46b406081ad9b18e8614", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", "shasum": "" }, "require": { @@ -6317,7 +6318,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.3.6" + "source": "https://github.com/symfony/css-selector/tree/v7.2.0" }, "funding": [ { @@ -6328,16 +6329,12 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-10-29T17:24:25+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6408,16 +6405,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.3.6", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "bbe40bfab84323d99dab491b716ff142410a92a8" + "reference": "102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/bbe40bfab84323d99dab491b716ff142410a92a8", - "reference": "bbe40bfab84323d99dab491b716ff142410a92a8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b", + "reference": "102be5e6a8e4f4f3eb3149bcbfa33a80d1ee374b", "shasum": "" }, "require": { @@ -6430,11 +6427,9 @@ "symfony/http-kernel": "<6.4" }, "require-dev": { - "symfony/console": "^6.4|^7.0", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-kernel": "^6.4|^7.0", - "symfony/serializer": "^6.4|^7.0", - "symfony/webpack-encore-bundle": "^1.0|^2.0" + "symfony/serializer": "^6.4|^7.0" }, "bin": [ "Resources/bin/patch-type-declarations" @@ -6465,7 +6460,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.3.6" + "source": "https://github.com/symfony/error-handler/tree/v7.2.5" }, "funding": [ { @@ -6476,29 +6471,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-10-31T19:12:50+00:00" + "time": "2025-03-03T07:12:39+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.3.3", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", "shasum": "" }, "require": { @@ -6549,7 +6540,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0" }, "funding": [ { @@ -6560,16 +6551,12 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-08-13T11:49:31+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6649,16 +6636,16 @@ }, { "name": "symfony/finder", - "version": "v7.3.5", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f" + "reference": "87a71856f2f56e4100373e92529eed3171695cfb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f", - "reference": "9f696d2f1e340484b4683f7853b273abff94421f", + "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb", + "reference": "87a71856f2f56e4100373e92529eed3171695cfb", "shasum": "" }, "require": { @@ -6693,7 +6680,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.3.5" + "source": "https://github.com/symfony/finder/tree/v7.2.2" }, "funding": [ { @@ -6704,29 +6691,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-10-15T18:45:57+00:00" + "time": "2024-12-30T19:00:17+00:00" }, { "name": "symfony/http-client", - "version": "v7.3.6", + "version": "v7.2.4", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "3c0a55a2c8e21e30a37022801c11c7ab5a6cb2de" + "reference": "78981a2ffef6437ed92d4d7e2a86a82f256c6dc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/3c0a55a2c8e21e30a37022801c11c7ab5a6cb2de", - "reference": "3c0a55a2c8e21e30a37022801c11c7ab5a6cb2de", + "url": "https://api.github.com/repos/symfony/http-client/zipball/78981a2ffef6437ed92d4d7e2a86a82f256c6dc6", + "reference": "78981a2ffef6437ed92d4d7e2a86a82f256c6dc6", "shasum": "" }, "require": { @@ -6734,12 +6717,10 @@ "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", "symfony/http-client-contracts": "~3.4.4|^3.5.2", - "symfony/polyfill-php83": "^1.29", "symfony/service-contracts": "^2.5|^3" }, "conflict": { "amphp/amp": "<2.5", - "amphp/socket": "<1.1", "php-http/discovery": "<1.15", "symfony/http-foundation": "<6.4" }, @@ -6752,6 +6733,7 @@ "require-dev": { "amphp/http-client": "^4.2.1|^5.0", "amphp/http-tunnel": "^1.0|^2.0", + "amphp/socket": "^1.1", "guzzlehttp/promises": "^1.4|^2.0", "nyholm/psr7": "^1.0", "php-http/httplug": "^1.0|^2.0", @@ -6793,7 +6775,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.3.6" + "source": "https://github.com/symfony/http-client/tree/v7.2.4" }, "funding": [ { @@ -6804,16 +6786,12 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-11-05T17:41:46+00:00" + "time": "2025-02-13T10:27:23+00:00" }, { "name": "symfony/http-client-contracts", @@ -6895,16 +6873,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.3.6", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c" + "reference": "6023ec7607254c87c5e69fb3558255aca440d72b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6379e490d6ecfc5c4224ff3a754b90495ecd135c", - "reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6023ec7607254c87c5e69fb3558255aca440d72b", + "reference": "6023ec7607254c87c5e69fb3558255aca440d72b", "shasum": "" }, "require": { @@ -6921,7 +6899,6 @@ "doctrine/dbal": "^3.6|^4", "predis/predis": "^1.1|^2.0", "symfony/cache": "^6.4.12|^7.1.5", - "symfony/clock": "^6.4|^7.0", "symfony/dependency-injection": "^6.4|^7.0", "symfony/expression-language": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", @@ -6954,7 +6931,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.3.6" + "source": "https://github.com/symfony/http-foundation/tree/v7.2.6" }, "funding": [ { @@ -6965,29 +6942,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-11-06T11:05:57+00:00" + "time": "2025-04-09T08:14:01+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.3.6", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "f9a34dc0196677250e3609c2fac9de9e1551a262" + "reference": "f9dec01e6094a063e738f8945ef69c0cfcf792ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9a34dc0196677250e3609c2fac9de9e1551a262", - "reference": "f9a34dc0196677250e3609c2fac9de9e1551a262", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9dec01e6094a063e738f8945ef69c0cfcf792ec", + "reference": "f9dec01e6094a063e738f8945ef69c0cfcf792ec", "shasum": "" }, "require": { @@ -6995,8 +6968,8 @@ "psr/log": "^1|^2|^3", "symfony/deprecation-contracts": "^2.5|^3", "symfony/error-handler": "^6.4|^7.0", - "symfony/event-dispatcher": "^7.3", - "symfony/http-foundation": "^7.3", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { @@ -7072,7 +7045,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.3.6" + "source": "https://github.com/symfony/http-kernel/tree/v7.2.6" }, "funding": [ { @@ -7083,29 +7056,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-11-06T20:58:12+00:00" + "time": "2025-05-02T09:04:03+00:00" }, { "name": "symfony/intl", - "version": "v7.3.5", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "9eccaaa94ac6f9deb3620c9d47a057d965baeabf" + "reference": "f8a603f978b035d3a1dc23977fc8ae57558177ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/9eccaaa94ac6f9deb3620c9d47a057d965baeabf", - "reference": "9eccaaa94ac6f9deb3620c9d47a057d965baeabf", + "url": "https://api.github.com/repos/symfony/intl/zipball/f8a603f978b035d3a1dc23977fc8ae57558177ad", + "reference": "f8a603f978b035d3a1dc23977fc8ae57558177ad", "shasum": "" }, "require": { @@ -7162,7 +7131,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v7.3.5" + "source": "https://github.com/symfony/intl/tree/v7.2.6" }, "funding": [ { @@ -7173,29 +7142,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-10-01T06:11:17+00:00" + "time": "2025-04-07T19:09:28+00:00" }, { "name": "symfony/mailer", - "version": "v7.3.5", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba" + "reference": "998692469d6e698c6eadc7ef37a6530a9eabb356" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/fd497c45ba9c10c37864e19466b090dcb60a50ba", - "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba", + "url": "https://api.github.com/repos/symfony/mailer/zipball/998692469d6e698c6eadc7ef37a6530a9eabb356", + "reference": "998692469d6e698c6eadc7ef37a6530a9eabb356", "shasum": "" }, "require": { @@ -7246,7 +7211,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.3.5" + "source": "https://github.com/symfony/mailer/tree/v7.2.6" }, "funding": [ { @@ -7257,29 +7222,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-10-24T14:27:20+00:00" + "time": "2025-04-04T09:50:51+00:00" }, { "name": "symfony/mailgun-mailer", - "version": "v7.3.1", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/mailgun-mailer.git", - "reference": "8c18f2bff4e70ed5669ab8228302edd2fecd689b" + "reference": "3c1dfd9ff0a487a4116baec42d11ae21a061e3f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/8c18f2bff4e70ed5669ab8228302edd2fecd689b", - "reference": "8c18f2bff4e70ed5669ab8228302edd2fecd689b", + "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/3c1dfd9ff0a487a4116baec42d11ae21a061e3f1", + "reference": "3c1dfd9ff0a487a4116baec42d11ae21a061e3f1", "shasum": "" }, "require": { @@ -7319,7 +7280,7 @@ "description": "Symfony Mailgun Mailer Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailgun-mailer/tree/v7.3.1" + "source": "https://github.com/symfony/mailgun-mailer/tree/v7.2.0" }, "funding": [ { @@ -7335,20 +7296,20 @@ "type": "tidelift" } ], - "time": "2025-06-20T16:15:52+00:00" + "time": "2024-09-28T08:24:38+00:00" }, { "name": "symfony/mime", - "version": "v7.3.4", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35" + "reference": "706e65c72d402539a072d0d6ad105fff6c161ef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35", - "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35", + "url": "https://api.github.com/repos/symfony/mime/zipball/706e65c72d402539a072d0d6ad105fff6c161ef1", + "reference": "706e65c72d402539a072d0d6ad105fff6c161ef1", "shasum": "" }, "require": { @@ -7403,7 +7364,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.3.4" + "source": "https://github.com/symfony/mime/tree/v7.2.6" }, "funding": [ { @@ -7414,20 +7375,16 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-09-16T08:38:17+00:00" + "time": "2025-04-27T13:34:41+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.33.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -7486,7 +7443,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" }, "funding": [ { @@ -7497,10 +7454,6 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -7510,16 +7463,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.33.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", - "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { @@ -7568,7 +7521,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" }, "funding": [ { @@ -7579,20 +7532,16 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-06-27T09:58:17+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.33.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", @@ -7655,7 +7604,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.32.0" }, "funding": [ { @@ -7666,10 +7615,6 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -7679,7 +7624,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.33.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -7740,7 +7685,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" }, "funding": [ { @@ -7751,10 +7696,6 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -7764,7 +7705,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.33.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -7825,7 +7766,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" }, "funding": [ { @@ -7836,10 +7777,6 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -7849,7 +7786,7 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.33.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", @@ -7909,7 +7846,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" }, "funding": [ { @@ -7920,10 +7857,6 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -7933,16 +7866,16 @@ }, { "name": "symfony/polyfill-php83", - "version": "v1.33.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", - "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", "shasum": "" }, "require": { @@ -7989,7 +7922,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" }, "funding": [ { @@ -8000,20 +7933,16 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-07-08T02:45:35+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.33.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", @@ -8072,7 +8001,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.32.0" }, "funding": [ { @@ -8083,10 +8012,6 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -8096,16 +8021,16 @@ }, { "name": "symfony/process", - "version": "v7.3.4", + "version": "v7.2.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" + "reference": "87b7c93e57df9d8e39a093d32587702380ff045d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", - "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", + "url": "https://api.github.com/repos/symfony/process/zipball/87b7c93e57df9d8e39a093d32587702380ff045d", + "reference": "87b7c93e57df9d8e39a093d32587702380ff045d", "shasum": "" }, "require": { @@ -8137,7 +8062,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.3.4" + "source": "https://github.com/symfony/process/tree/v7.2.5" }, "funding": [ { @@ -8148,29 +8073,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-03-13T12:21:46+00:00" }, { "name": "symfony/routing", - "version": "v7.3.6", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091" + "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/c97abe725f2a1a858deca629a6488c8fc20c3091", - "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091", + "url": "https://api.github.com/repos/symfony/routing/zipball/ee9a67edc6baa33e5fae662f94f91fd262930996", + "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996", "shasum": "" }, "require": { @@ -8222,7 +8143,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.3.6" + "source": "https://github.com/symfony/routing/tree/v7.2.3" }, "funding": [ { @@ -8233,29 +8154,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-11-05T07:57:47+00:00" + "time": "2025-01-17T10:56:55+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.6.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", - "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", "shasum": "" }, "require": { @@ -8309,7 +8226,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" }, "funding": [ { @@ -8320,29 +8237,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-07-15T11:30:57+00:00" + "time": "2025-04-25T09:37:31+00:00" }, { "name": "symfony/string", - "version": "v7.3.4", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f96476035142921000338bad71e5247fbc138872" + "reference": "a214fe7d62bd4df2a76447c67c6b26e1d5e74931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", - "reference": "f96476035142921000338bad71e5247fbc138872", + "url": "https://api.github.com/repos/symfony/string/zipball/a214fe7d62bd4df2a76447c67c6b26e1d5e74931", + "reference": "a214fe7d62bd4df2a76447c67c6b26e1d5e74931", "shasum": "" }, "require": { @@ -8357,6 +8270,7 @@ }, "require-dev": { "symfony/emoji": "^7.1", + "symfony/error-handler": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", @@ -8399,7 +8313,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.4" + "source": "https://github.com/symfony/string/tree/v7.2.6" }, "funding": [ { @@ -8410,29 +8324,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-09-11T14:36:48+00:00" + "time": "2025-04-20T20:18:16+00:00" }, { "name": "symfony/translation", - "version": "v7.3.4", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "ec25870502d0c7072d086e8ffba1420c85965174" + "reference": "e7fd8e2a4239b79a0fd9fb1fef3e0e7f969c6dc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/ec25870502d0c7072d086e8ffba1420c85965174", - "reference": "ec25870502d0c7072d086e8ffba1420c85965174", + "url": "https://api.github.com/repos/symfony/translation/zipball/e7fd8e2a4239b79a0fd9fb1fef3e0e7f969c6dc6", + "reference": "e7fd8e2a4239b79a0fd9fb1fef3e0e7f969c6dc6", "shasum": "" }, "require": { @@ -8442,7 +8352,6 @@ "symfony/translation-contracts": "^2.5|^3.0" }, "conflict": { - "nikic/php-parser": "<5.0", "symfony/config": "<6.4", "symfony/console": "<6.4", "symfony/dependency-injection": "<6.4", @@ -8456,7 +8365,7 @@ "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "nikic/php-parser": "^5.0", + "nikic/php-parser": "^4.18|^5.0", "psr/log": "^1|^2|^3", "symfony/config": "^6.4|^7.0", "symfony/console": "^6.4|^7.0", @@ -8499,7 +8408,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.3.4" + "source": "https://github.com/symfony/translation/tree/v7.2.6" }, "funding": [ { @@ -8510,29 +8419,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-09-07T11:39:36+00:00" + "time": "2025-04-07T19:09:28+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.6.1", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "65a8bc82080447fae78373aa10f8d13b38338977" + "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", - "reference": "65a8bc82080447fae78373aa10f8d13b38338977", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d", "shasum": "" }, "require": { @@ -8581,7 +8486,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0" }, "funding": [ { @@ -8592,29 +8497,25 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-07-15T13:41:35+00:00" + "time": "2024-09-27T08:32:26+00:00" }, { "name": "symfony/uid", - "version": "v7.3.1", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb" + "reference": "2d294d0c48df244c71c105a169d0190bfb080426" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/a69f69f3159b852651a6bf45a9fdd149520525bb", - "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb", + "url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426", + "reference": "2d294d0c48df244c71c105a169d0190bfb080426", "shasum": "" }, "require": { @@ -8659,7 +8560,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.3.1" + "source": "https://github.com/symfony/uid/tree/v7.2.0" }, "funding": [ { @@ -8675,31 +8576,31 @@ "type": "tidelift" } ], - "time": "2025-06-27T19:55:54+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.3.5", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d" + "reference": "9c46038cd4ed68952166cf7001b54eb539184ccb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/476c4ae17f43a9a36650c69879dcf5b1e6ae724d", - "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9c46038cd4ed68952166cf7001b54eb539184ccb", + "reference": "9c46038cd4ed68952166cf7001b54eb539184ccb", "shasum": "" }, "require": { "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { "symfony/console": "<6.4" }, "require-dev": { + "ext-iconv": "*", "symfony/console": "^6.4|^7.0", "symfony/http-kernel": "^6.4|^7.0", "symfony/process": "^6.4|^7.0", @@ -8742,7 +8643,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.3.5" + "source": "https://github.com/symfony/var-dumper/tree/v7.2.6" }, "funding": [ { @@ -8753,16 +8654,12 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-09-27T09:00:46+00:00" + "time": "2025-04-09T08:14:01+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -8977,6 +8874,64 @@ ], "time": "2024-11-21T01:49:47+00:00" }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + }, { "name": "yajra/laravel-datatables-oracle", "version": "v11.1.6", @@ -9070,16 +9025,16 @@ "packages-dev": [ { "name": "barryvdh/laravel-debugbar", - "version": "v3.16.0", + "version": "v3.15.4", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "f265cf5e38577d42311f1a90d619bcd3740bea23" + "reference": "c0667ea91f7185f1e074402c5788195e96bf8106" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/f265cf5e38577d42311f1a90d619bcd3740bea23", - "reference": "f265cf5e38577d42311f1a90d619bcd3740bea23", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/c0667ea91f7185f1e074402c5788195e96bf8106", + "reference": "c0667ea91f7185f1e074402c5788195e96bf8106", "shasum": "" }, "require": { @@ -9087,7 +9042,7 @@ "illuminate/session": "^9|^10|^11|^12", "illuminate/support": "^9|^10|^11|^12", "php": "^8.1", - "php-debugbar/php-debugbar": "~2.2.0", + "php-debugbar/php-debugbar": "~2.1.1", "symfony/finder": "^6|^7" }, "require-dev": { @@ -9107,7 +9062,7 @@ ] }, "branch-alias": { - "dev-master": "3.16-dev" + "dev-master": "3.15-dev" } }, "autoload": { @@ -9139,7 +9094,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.16.0" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.15.4" }, "funding": [ { @@ -9151,7 +9106,7 @@ "type": "github" } ], - "time": "2025-07-14T11:56:43+00:00" + "time": "2025-04-16T06:32:06+00:00" }, { "name": "fakerphp/faker", @@ -9218,16 +9173,16 @@ }, { "name": "filp/whoops", - "version": "2.18.4", + "version": "2.18.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d" + "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d", - "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "url": "https://api.github.com/repos/filp/whoops/zipball/a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", + "reference": "a7de6c3c6c3c022f5cfc337f8ede6a14460cf77e", "shasum": "" }, "require": { @@ -9277,7 +9232,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.18.4" + "source": "https://github.com/filp/whoops/tree/2.18.0" }, "funding": [ { @@ -9285,7 +9240,7 @@ "type": "github" } ], - "time": "2025-08-08T12:00:00+00:00" + "time": "2025-03-15T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -9340,16 +9295,16 @@ }, { "name": "laravel/sail", - "version": "v1.47.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "9a11e822238167ad8b791e4ea51155d25cf4d8f2" + "reference": "71a509b14b2621ce58574274a74290f933c687f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/9a11e822238167ad8b791e4ea51155d25cf4d8f2", - "reference": "9a11e822238167ad8b791e4ea51155d25cf4d8f2", + "url": "https://api.github.com/repos/laravel/sail/zipball/71a509b14b2621ce58574274a74290f933c687f7", + "reference": "71a509b14b2621ce58574274a74290f933c687f7", "shasum": "" }, "require": { @@ -9362,7 +9317,7 @@ }, "require-dev": { "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", - "phpstan/phpstan": "^2.0" + "phpstan/phpstan": "^1.10" }, "bin": [ "bin/sail" @@ -9399,7 +9354,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2025-10-28T13:55:29+00:00" + "time": "2025-05-13T13:34:34+00:00" }, { "name": "mockery/mockery", @@ -9486,16 +9441,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.4", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c", + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c", "shasum": "" }, "require": { @@ -9534,7 +9489,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1" }, "funding": [ { @@ -9542,27 +9497,27 @@ "type": "tidelift" } ], - "time": "2025-08-01T08:46:24+00:00" + "time": "2025-04-29T12:36:36+00:00" }, { "name": "nunomaduro/collision", - "version": "v8.8.2", + "version": "v8.8.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "60207965f9b7b7a4ce15a0f75d57f9dadb105bdb" + "reference": "4cf9f3b47afff38b139fb79ce54fc71799022ce8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/60207965f9b7b7a4ce15a0f75d57f9dadb105bdb", - "reference": "60207965f9b7b7a4ce15a0f75d57f9dadb105bdb", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/4cf9f3b47afff38b139fb79ce54fc71799022ce8", + "reference": "4cf9f3b47afff38b139fb79ce54fc71799022ce8", "shasum": "" }, "require": { - "filp/whoops": "^2.18.1", - "nunomaduro/termwind": "^2.3.1", + "filp/whoops": "^2.18.0", + "nunomaduro/termwind": "^2.3.0", "php": "^8.2.0", - "symfony/console": "^7.3.0" + "symfony/console": "^7.2.5" }, "conflict": { "laravel/framework": "<11.44.2 || >=13.0.0", @@ -9570,15 +9525,15 @@ }, "require-dev": { "brianium/paratest": "^7.8.3", - "larastan/larastan": "^3.4.2", - "laravel/framework": "^11.44.2 || ^12.18", - "laravel/pint": "^1.22.1", - "laravel/sail": "^1.43.1", - "laravel/sanctum": "^4.1.1", + "larastan/larastan": "^3.2", + "laravel/framework": "^11.44.2 || ^12.6", + "laravel/pint": "^1.21.2", + "laravel/sail": "^1.41.0", + "laravel/sanctum": "^4.0.8", "laravel/tinker": "^2.10.1", - "orchestra/testbench-core": "^9.12.0 || ^10.4", - "pestphp/pest": "^3.8.2", - "sebastian/environment": "^7.2.1 || ^8.0" + "orchestra/testbench-core": "^9.12.0 || ^10.1", + "pestphp/pest": "^3.8.0", + "sebastian/environment": "^7.2.0 || ^8.0" }, "type": "library", "extra": { @@ -9641,7 +9596,7 @@ "type": "patreon" } ], - "time": "2025-06-25T02:12:12+00:00" + "time": "2025-04-03T14:33:09+00:00" }, { "name": "phar-io/manifest", @@ -9763,16 +9718,16 @@ }, { "name": "php-debugbar/php-debugbar", - "version": "v2.2.4", + "version": "v2.1.6", "source": { "type": "git", "url": "https://github.com/php-debugbar/php-debugbar.git", - "reference": "3146d04671f51f69ffec2a4207ac3bdcf13a9f35" + "reference": "16fa68da5617220594aa5e33fa9de415f94784a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/3146d04671f51f69ffec2a4207ac3bdcf13a9f35", - "reference": "3146d04671f51f69ffec2a4207ac3bdcf13a9f35", + "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/16fa68da5617220594aa5e33fa9de415f94784a0", + "reference": "16fa68da5617220594aa5e33fa9de415f94784a0", "shasum": "" }, "require": { @@ -9780,9 +9735,6 @@ "psr/log": "^1|^2|^3", "symfony/var-dumper": "^4|^5|^6|^7" }, - "replace": { - "maximebf/debugbar": "self.version" - }, "require-dev": { "dbrekelmans/bdi": "^1", "phpunit/phpunit": "^8|^9", @@ -9797,7 +9749,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -9830,22 +9782,22 @@ ], "support": { "issues": "https://github.com/php-debugbar/php-debugbar/issues", - "source": "https://github.com/php-debugbar/php-debugbar/tree/v2.2.4" + "source": "https://github.com/php-debugbar/php-debugbar/tree/v2.1.6" }, - "time": "2025-07-22T14:01:30+00:00" + "time": "2025-02-21T17:47:03+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "11.0.11", + "version": "11.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4" + "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", - "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/14d63fbcca18457e49c6f8bebaa91a87e8e188d7", + "reference": "14d63fbcca18457e49c6f8bebaa91a87e8e188d7", "shasum": "" }, "require": { @@ -9902,27 +9854,15 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.9" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", - "type": "tidelift" } ], - "time": "2025-08-27T14:37:49+00:00" + "time": "2025-02-25T13:26:39+00:00" }, { "name": "phpunit/php-file-iterator", @@ -10171,16 +10111,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.43", + "version": "11.5.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c6b89b6cf4324a8b4cb86e1f5dfdd6c9e0371924" + "reference": "d565e2cdc21a7db9dc6c399c1fc2083b8010f289" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c6b89b6cf4324a8b4cb86e1f5dfdd6c9e0371924", - "reference": "c6b89b6cf4324a8b4cb86e1f5dfdd6c9e0371924", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d565e2cdc21a7db9dc6c399c1fc2083b8010f289", + "reference": "d565e2cdc21a7db9dc6c399c1fc2083b8010f289", "shasum": "" }, "require": { @@ -10190,24 +10130,24 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", + "myclabs/deep-copy": "^1.13.1", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.11", + "phpunit/php-code-coverage": "^11.0.9", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-invoker": "^5.0.1", "phpunit/php-text-template": "^4.0.1", "phpunit/php-timer": "^7.0.1", "sebastian/cli-parser": "^3.0.2", "sebastian/code-unit": "^3.0.3", - "sebastian/comparator": "^6.3.2", + "sebastian/comparator": "^6.3.1", "sebastian/diff": "^6.0.2", "sebastian/environment": "^7.2.1", - "sebastian/exporter": "^6.3.2", + "sebastian/exporter": "^6.3.0", "sebastian/global-state": "^7.0.2", "sebastian/object-enumerator": "^6.0.1", - "sebastian/type": "^5.1.3", + "sebastian/type": "^5.1.2", "sebastian/version": "^5.0.2", "staabm/side-effects-detector": "^1.0.5" }, @@ -10252,7 +10192,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.43" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.21" }, "funding": [ { @@ -10276,7 +10216,7 @@ "type": "tidelift" } ], - "time": "2025-10-30T08:39:39+00:00" + "time": "2025-05-21T12:35:00+00:00" }, { "name": "sebastian/cli-parser", @@ -10450,16 +10390,16 @@ }, { "name": "sebastian/comparator", - "version": "6.3.2", + "version": "6.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8" + "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8", - "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/24b8fbc2c8e201bb1308e7b05148d6ab393b6959", + "reference": "24b8fbc2c8e201bb1308e7b05148d6ab393b6959", "shasum": "" }, "require": { @@ -10518,27 +10458,15 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", - "type": "tidelift" } ], - "time": "2025-08-10T08:07:46+00:00" + "time": "2025-03-07T06:57:01+00:00" }, { "name": "sebastian/complexity", @@ -10743,16 +10671,16 @@ }, { "name": "sebastian/exporter", - "version": "6.3.2", + "version": "6.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", - "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3", + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3", "shasum": "" }, "require": { @@ -10766,7 +10694,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.3-dev" + "dev-main": "6.1-dev" } }, "autoload": { @@ -10809,27 +10737,15 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", - "type": "tidelift" } ], - "time": "2025-09-24T06:12:51+00:00" + "time": "2024-12-05T09:17:50+00:00" }, { "name": "sebastian/global-state", @@ -11067,23 +10983,23 @@ }, { "name": "sebastian/recursion-context", - "version": "6.0.3", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", - "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16", + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { @@ -11119,40 +11035,28 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", - "type": "tidelift" } ], - "time": "2025-08-13T04:42:22+00:00" + "time": "2024-07-03T05:10:34+00:00" }, { "name": "sebastian/type", - "version": "5.1.3", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", - "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", + "reference": "a8a7e30534b0eb0c77cd9d07e82de1a114389f5e", "shasum": "" }, "require": { @@ -11188,27 +11092,15 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/type/tree/5.1.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://liberapay.com/sebastianbergmann", - "type": "liberapay" - }, - { - "url": "https://thanks.dev/u/gh/sebastianbergmann", - "type": "thanks_dev" - }, - { - "url": "https://tidelift.com/funding/github/packagist/sebastian/type", - "type": "tidelift" } ], - "time": "2025-08-09T06:55:48+00:00" + "time": "2025-03-18T13:35:50+00:00" }, { "name": "sebastian/version", @@ -11266,16 +11158,16 @@ }, { "name": "spatie/backtrace", - "version": "1.8.1", + "version": "1.7.4", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "8c0f16a59ae35ec8c62d85c3c17585158f430110" + "reference": "cd37a49fce7137359ac30ecc44ef3e16404cccbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/8c0f16a59ae35ec8c62d85c3c17585158f430110", - "reference": "8c0f16a59ae35ec8c62d85c3c17585158f430110", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/cd37a49fce7137359ac30ecc44ef3e16404cccbe", + "reference": "cd37a49fce7137359ac30ecc44ef3e16404cccbe", "shasum": "" }, "require": { @@ -11313,8 +11205,7 @@ "spatie" ], "support": { - "issues": "https://github.com/spatie/backtrace/issues", - "source": "https://github.com/spatie/backtrace/tree/1.8.1" + "source": "https://github.com/spatie/backtrace/tree/1.7.4" }, "funding": [ { @@ -11326,7 +11217,7 @@ "type": "other" } ], - "time": "2025-08-26T08:22:30+00:00" + "time": "2025-05-08T15:41:09+00:00" }, { "name": "spatie/error-solutions", @@ -11699,16 +11590,16 @@ }, { "name": "symfony/yaml", - "version": "v7.3.5", + "version": "v7.2.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc" + "reference": "0feafffb843860624ddfd13478f481f4c3cd8b23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/90208e2fc6f68f613eae7ca25a2458a931b1bacc", - "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0feafffb843860624ddfd13478f481f4c3cd8b23", + "reference": "0feafffb843860624ddfd13478f481f4c3cd8b23", "shasum": "" }, "require": { @@ -11751,7 +11642,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.3.5" + "source": "https://github.com/symfony/yaml/tree/v7.2.6" }, "funding": [ { @@ -11762,16 +11653,12 @@ "url": "https://github.com/fabpot", "type": "github" }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-09-27T09:00:46+00:00" + "time": "2025-04-04T10:10:11+00:00" }, { "name": "theseer/tokenizer", diff --git a/database/migrations/2025_10_30_054037_add_deleted_user_id_to_user_referrals.php b/database/migrations/2025_10_30_054037_add_deleted_user_id_to_user_referrals.php deleted file mode 100644 index 8c895e343..000000000 --- a/database/migrations/2025_10_30_054037_add_deleted_user_id_to_user_referrals.php +++ /dev/null @@ -1,33 +0,0 @@ -timestamp('deleted_at')->nullable(); - $table->string('deleted_username')->nullable(); - $table->unsignedBigInteger('deleted_user_id')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('user_referrals', function (Blueprint $table) { - $table->dropColumn(['deleted_at', 'deleted_username', 'deleted_user_id']); - }); - } -}; diff --git a/database/migrations/2025_10_30_054110_update_user_referrals_foreign_keys.php b/database/migrations/2025_10_30_054110_update_user_referrals_foreign_keys.php deleted file mode 100644 index c63abfc1e..000000000 --- a/database/migrations/2025_10_30_054110_update_user_referrals_foreign_keys.php +++ /dev/null @@ -1,49 +0,0 @@ -dropForeign(['referral_id']); - $table->dropForeign(['registered_user_id']); - - $table->unsignedBigInteger('referral_id')->nullable()->change(); - $table->unsignedBigInteger('registered_user_id')->nullable()->change(); - - //add back fks leaving the values of user id and referral id intact for referral abuse tracking - $table->foreign('referral_id')->references('id')->on('users')->onDelete('set null'); - $table->foreign('registered_user_id')->references('id')->on('users')->onDelete('set null'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('user_referrals', function (Blueprint $table) { - $table->dropForeign(['referral_id']); - $table->dropForeign(['registered_user_id']); - - // Clean up any NULL values that may exist due to set null on delete - DB::table('user_referrals')->whereNull('referral_id')->orWhereNull('registered_user_id')->delete(); - - $table->unsignedBigInteger('referral_id')->nullable(false)->change(); - $table->unsignedBigInteger('registered_user_id')->nullable(false)->change(); - $table->foreign('referral_id')->references('id')->on('users')->onDelete('cascade'); - $table->foreign('registered_user_id')->references('id')->on('users')->onDelete('cascade'); - }); - } -}; diff --git a/database/migrations/2025_11_01_144100_add_suspension_warning_sent_at_to_servers_table.php b/database/migrations/2025_11_01_144100_add_suspension_warning_sent_at_to_servers_table.php deleted file mode 100644 index dea92dff9..000000000 --- a/database/migrations/2025_11_01_144100_add_suspension_warning_sent_at_to_servers_table.php +++ /dev/null @@ -1,32 +0,0 @@ -datetime('suspension_warning_sent_at')->nullable()->after('suspended'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table('servers', function (Blueprint $table) { - $table->dropColumn('suspension_warning_sent_at'); - }); - } -} diff --git a/database/settings/2025_10_29_102720_add_currency_format_override_to_general_settings.php b/database/settings/2025_10_29_102720_add_currency_format_override_to_general_settings.php deleted file mode 100644 index ae5a346e1..000000000 --- a/database/settings/2025_10_29_102720_add_currency_format_override_to_general_settings.php +++ /dev/null @@ -1,16 +0,0 @@ -migrator->add('general.currency_format_override', ''); - } - - public function down(): void - { - $this->migrator->delete('general.currency_format_override'); - } -}; diff --git a/package-lock.json b/package-lock.json index 64b28563c..337438197 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,13 @@ { - "name": "relock-npm-lock-v2-xdPl3e", + "name": "relock-npm-lock-v2-ishl8Q", "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { "laravel-vite-plugin": "^0.7.3", - "tinymce": "^7.9.1", - "vite": "^6.4.1" + "tinymce": "^7.0.0", + "vite": "^6.1.0" }, "devDependencies": { "axios": "^0.25", @@ -22,9 +22,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", - "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], @@ -38,9 +38,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", - "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], @@ -54,9 +54,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", - "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], @@ -70,9 +70,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", - "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], @@ -86,9 +86,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", - "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -102,9 +102,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", - "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], @@ -118,9 +118,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", - "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], @@ -134,9 +134,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", - "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], @@ -150,9 +150,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", - "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], @@ -166,9 +166,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", - "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], @@ -182,9 +182,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", - "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], @@ -198,9 +198,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", - "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], @@ -214,9 +214,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", - "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], @@ -230,9 +230,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", - "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], @@ -246,9 +246,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", - "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], @@ -262,9 +262,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", - "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], @@ -278,9 +278,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", - "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], @@ -294,9 +294,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", - "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", "cpu": [ "arm64" ], @@ -310,9 +310,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", - "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], @@ -326,9 +326,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", - "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "cpu": [ "arm64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", - "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], @@ -357,26 +357,10 @@ "node": ">=18" } }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", - "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", - "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], @@ -390,9 +374,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", - "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], @@ -406,9 +390,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", - "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], @@ -422,9 +406,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", - "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], @@ -502,9 +486,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", - "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", + "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", "cpu": [ "arm" ], @@ -515,9 +499,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", - "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", + "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", "cpu": [ "arm64" ], @@ -528,9 +512,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", - "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", + "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", "cpu": [ "arm64" ], @@ -541,9 +525,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", - "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", + "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", "cpu": [ "x64" ], @@ -554,9 +538,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", - "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", + "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", "cpu": [ "arm64" ], @@ -567,9 +551,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", - "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", + "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", "cpu": [ "x64" ], @@ -580,9 +564,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", - "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", + "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", "cpu": [ "arm" ], @@ -593,9 +577,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", - "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", + "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", "cpu": [ "arm" ], @@ -606,9 +590,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", - "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", + "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", "cpu": [ "arm64" ], @@ -619,9 +603,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", - "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", + "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", "cpu": [ "arm64" ], @@ -631,10 +615,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", - "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", + "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", "cpu": [ "loong64" ], @@ -644,10 +628,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", - "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", + "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", "cpu": [ "ppc64" ], @@ -658,22 +642,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", - "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", - "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", + "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", "cpu": [ "riscv64" ], @@ -684,9 +655,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", - "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", + "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", "cpu": [ "s390x" ], @@ -697,9 +668,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", - "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", + "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", "cpu": [ "x64" ], @@ -710,9 +681,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", - "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", + "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", "cpu": [ "x64" ], @@ -722,23 +693,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", - "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", - "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", + "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", "cpu": [ "arm64" ], @@ -749,9 +707,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", - "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", + "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", "cpu": [ "ia32" ], @@ -761,23 +719,10 @@ "win32" ] }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", - "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", - "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", + "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", "cpu": [ "x64" ], @@ -1472,9 +1417,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", - "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "hasInstallScript": true, "license": "MIT", "bin": { @@ -1484,32 +1429,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.11", - "@esbuild/android-arm": "0.25.11", - "@esbuild/android-arm64": "0.25.11", - "@esbuild/android-x64": "0.25.11", - "@esbuild/darwin-arm64": "0.25.11", - "@esbuild/darwin-x64": "0.25.11", - "@esbuild/freebsd-arm64": "0.25.11", - "@esbuild/freebsd-x64": "0.25.11", - "@esbuild/linux-arm": "0.25.11", - "@esbuild/linux-arm64": "0.25.11", - "@esbuild/linux-ia32": "0.25.11", - "@esbuild/linux-loong64": "0.25.11", - "@esbuild/linux-mips64el": "0.25.11", - "@esbuild/linux-ppc64": "0.25.11", - "@esbuild/linux-riscv64": "0.25.11", - "@esbuild/linux-s390x": "0.25.11", - "@esbuild/linux-x64": "0.25.11", - "@esbuild/netbsd-arm64": "0.25.11", - "@esbuild/netbsd-x64": "0.25.11", - "@esbuild/openbsd-arm64": "0.25.11", - "@esbuild/openbsd-x64": "0.25.11", - "@esbuild/openharmony-arm64": "0.25.11", - "@esbuild/sunos-x64": "0.25.11", - "@esbuild/win32-arm64": "0.25.11", - "@esbuild/win32-ia32": "0.25.11", - "@esbuild/win32-x64": "0.25.11" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/escalade": { @@ -1903,9 +1847,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -1977,9 +1921,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "funding": [ { "type": "opencollective", @@ -1996,7 +1940,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -2131,12 +2075,12 @@ "dev": true }, "node_modules/rollup": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", - "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", "license": "MIT", "dependencies": { - "@types/estree": "1.0.8" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -2146,35 +2090,32 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.5", - "@rollup/rollup-android-arm64": "4.52.5", - "@rollup/rollup-darwin-arm64": "4.52.5", - "@rollup/rollup-darwin-x64": "4.52.5", - "@rollup/rollup-freebsd-arm64": "4.52.5", - "@rollup/rollup-freebsd-x64": "4.52.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", - "@rollup/rollup-linux-arm-musleabihf": "4.52.5", - "@rollup/rollup-linux-arm64-gnu": "4.52.5", - "@rollup/rollup-linux-arm64-musl": "4.52.5", - "@rollup/rollup-linux-loong64-gnu": "4.52.5", - "@rollup/rollup-linux-ppc64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-musl": "4.52.5", - "@rollup/rollup-linux-s390x-gnu": "4.52.5", - "@rollup/rollup-linux-x64-gnu": "4.52.5", - "@rollup/rollup-linux-x64-musl": "4.52.5", - "@rollup/rollup-openharmony-arm64": "4.52.5", - "@rollup/rollup-win32-arm64-msvc": "4.52.5", - "@rollup/rollup-win32-ia32-msvc": "4.52.5", - "@rollup/rollup-win32-x64-gnu": "4.52.5", - "@rollup/rollup-win32-x64-msvc": "4.52.5", + "@rollup/rollup-android-arm-eabi": "4.34.8", + "@rollup/rollup-android-arm64": "4.34.8", + "@rollup/rollup-darwin-arm64": "4.34.8", + "@rollup/rollup-darwin-x64": "4.34.8", + "@rollup/rollup-freebsd-arm64": "4.34.8", + "@rollup/rollup-freebsd-x64": "4.34.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", + "@rollup/rollup-linux-arm64-gnu": "4.34.8", + "@rollup/rollup-linux-arm64-musl": "4.34.8", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", + "@rollup/rollup-linux-s390x-gnu": "4.34.8", + "@rollup/rollup-linux-x64-gnu": "4.34.8", + "@rollup/rollup-linux-x64-musl": "4.34.8", + "@rollup/rollup-win32-arm64-msvc": "4.34.8", + "@rollup/rollup-win32-ia32-msvc": "4.34.8", + "@rollup/rollup-win32-x64-msvc": "4.34.8", "fsevents": "~2.3.2" } }, "node_modules/rollup/node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "license": "MIT" }, "node_modules/safe-buffer": { @@ -2436,55 +2377,10 @@ } } }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tinymce": { - "version": "7.9.1", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-7.9.1.tgz", - "integrity": "sha512-zaOHwmiP1EqTeLRXAvVriDb00JYnfEjWGPdKEuac7MiZJ5aiDMZ4Unc98Gmajn+PBljOmO1GKV6G0KwWn3+k8A==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-7.0.0.tgz", + "integrity": "sha512-ggXLfTRrUALAcjeJSRrZcJDOl6MgC2tPXe/zNOEkQXvTDgcKqFypPRoPpfpK5wejexjyaI/7dwETOntJ5MPBFg==", "license": "GPL-2.0-or-later" }, "node_modules/to-regex-range": { @@ -2549,17 +2445,14 @@ "dev": true }, "node_modules/vite": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", - "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.0.tgz", + "integrity": "sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==", "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" + "esbuild": "^0.24.2", + "postcss": "^8.5.1", + "rollup": "^4.30.1" }, "bin": { "vite": "bin/vite.js" @@ -2632,35 +2525,6 @@ "picomatch": "^2.3.1" } }, - "node_modules/vite/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -2742,159 +2606,153 @@ }, "dependencies": { "@esbuild/aix-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", - "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "optional": true }, "@esbuild/android-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", - "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "optional": true }, "@esbuild/android-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", - "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "optional": true }, "@esbuild/android-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", - "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", - "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "optional": true }, "@esbuild/darwin-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", - "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", - "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", - "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "optional": true }, "@esbuild/linux-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", - "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "optional": true }, "@esbuild/linux-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", - "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "optional": true }, "@esbuild/linux-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", - "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "optional": true }, "@esbuild/linux-loong64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", - "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", - "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", - "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", - "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "optional": true }, "@esbuild/linux-s390x": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", - "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "optional": true }, "@esbuild/linux-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", - "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "optional": true }, "@esbuild/netbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", - "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", - "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "optional": true }, "@esbuild/openbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", - "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", - "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", - "optional": true - }, - "@esbuild/openharmony-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", - "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "optional": true }, "@esbuild/sunos-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", - "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "optional": true }, "@esbuild/win32-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", - "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "optional": true }, "@esbuild/win32-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", - "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "optional": true }, "@esbuild/win32-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", - "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "optional": true }, "@jridgewell/gen-mapping": { @@ -2953,135 +2811,117 @@ } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", - "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", + "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", - "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", + "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", - "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", + "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", - "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", + "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", "optional": true }, "@rollup/rollup-freebsd-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", - "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", + "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", "optional": true }, "@rollup/rollup-freebsd-x64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", - "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", + "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", - "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", + "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", - "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", + "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", - "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", + "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", - "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", + "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", "optional": true }, - "@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", - "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", + "@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", + "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", "optional": true }, - "@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", - "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", + "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", - "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", - "optional": true - }, - "@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", - "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", + "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", - "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", + "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", - "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", + "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", - "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", - "optional": true - }, - "@rollup/rollup-openharmony-arm64": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", - "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", + "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", - "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", + "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", - "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", - "optional": true - }, - "@rollup/rollup-win32-x64-gnu": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", - "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", + "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", - "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", + "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", "optional": true }, "@types/eslint": { @@ -3648,36 +3488,35 @@ } }, "esbuild": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", - "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "requires": { - "@esbuild/aix-ppc64": "0.25.11", - "@esbuild/android-arm": "0.25.11", - "@esbuild/android-arm64": "0.25.11", - "@esbuild/android-x64": "0.25.11", - "@esbuild/darwin-arm64": "0.25.11", - "@esbuild/darwin-x64": "0.25.11", - "@esbuild/freebsd-arm64": "0.25.11", - "@esbuild/freebsd-x64": "0.25.11", - "@esbuild/linux-arm": "0.25.11", - "@esbuild/linux-arm64": "0.25.11", - "@esbuild/linux-ia32": "0.25.11", - "@esbuild/linux-loong64": "0.25.11", - "@esbuild/linux-mips64el": "0.25.11", - "@esbuild/linux-ppc64": "0.25.11", - "@esbuild/linux-riscv64": "0.25.11", - "@esbuild/linux-s390x": "0.25.11", - "@esbuild/linux-x64": "0.25.11", - "@esbuild/netbsd-arm64": "0.25.11", - "@esbuild/netbsd-x64": "0.25.11", - "@esbuild/openbsd-arm64": "0.25.11", - "@esbuild/openbsd-x64": "0.25.11", - "@esbuild/openharmony-arm64": "0.25.11", - "@esbuild/sunos-x64": "0.25.11", - "@esbuild/win32-arm64": "0.25.11", - "@esbuild/win32-ia32": "0.25.11", - "@esbuild/win32-x64": "0.25.11" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "escalade": { @@ -3978,9 +3817,9 @@ "dev": true }, "nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==" }, "neo-async": { "version": "2.6.2", @@ -4024,11 +3863,11 @@ "dev": true }, "postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", + "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", "requires": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } @@ -4141,40 +3980,37 @@ "dev": true }, "rollup": { - "version": "4.52.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", - "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", + "version": "4.34.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", + "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", "requires": { - "@rollup/rollup-android-arm-eabi": "4.52.5", - "@rollup/rollup-android-arm64": "4.52.5", - "@rollup/rollup-darwin-arm64": "4.52.5", - "@rollup/rollup-darwin-x64": "4.52.5", - "@rollup/rollup-freebsd-arm64": "4.52.5", - "@rollup/rollup-freebsd-x64": "4.52.5", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", - "@rollup/rollup-linux-arm-musleabihf": "4.52.5", - "@rollup/rollup-linux-arm64-gnu": "4.52.5", - "@rollup/rollup-linux-arm64-musl": "4.52.5", - "@rollup/rollup-linux-loong64-gnu": "4.52.5", - "@rollup/rollup-linux-ppc64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-gnu": "4.52.5", - "@rollup/rollup-linux-riscv64-musl": "4.52.5", - "@rollup/rollup-linux-s390x-gnu": "4.52.5", - "@rollup/rollup-linux-x64-gnu": "4.52.5", - "@rollup/rollup-linux-x64-musl": "4.52.5", - "@rollup/rollup-openharmony-arm64": "4.52.5", - "@rollup/rollup-win32-arm64-msvc": "4.52.5", - "@rollup/rollup-win32-ia32-msvc": "4.52.5", - "@rollup/rollup-win32-x64-gnu": "4.52.5", - "@rollup/rollup-win32-x64-msvc": "4.52.5", - "@types/estree": "1.0.8", + "@rollup/rollup-android-arm-eabi": "4.34.8", + "@rollup/rollup-android-arm64": "4.34.8", + "@rollup/rollup-darwin-arm64": "4.34.8", + "@rollup/rollup-darwin-x64": "4.34.8", + "@rollup/rollup-freebsd-arm64": "4.34.8", + "@rollup/rollup-freebsd-x64": "4.34.8", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", + "@rollup/rollup-linux-arm-musleabihf": "4.34.8", + "@rollup/rollup-linux-arm64-gnu": "4.34.8", + "@rollup/rollup-linux-arm64-musl": "4.34.8", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", + "@rollup/rollup-linux-riscv64-gnu": "4.34.8", + "@rollup/rollup-linux-s390x-gnu": "4.34.8", + "@rollup/rollup-linux-x64-gnu": "4.34.8", + "@rollup/rollup-linux-x64-musl": "4.34.8", + "@rollup/rollup-win32-arm64-msvc": "4.34.8", + "@rollup/rollup-win32-ia32-msvc": "4.34.8", + "@rollup/rollup-win32-x64-msvc": "4.34.8", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" }, "dependencies": { "@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" } } }, @@ -4342,32 +4178,10 @@ "terser": "^5.14.1" } }, - "tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "requires": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "dependencies": { - "fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "requires": {} - }, - "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" - } - } - }, "tinymce": { - "version": "7.9.1", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-7.9.1.tgz", - "integrity": "sha512-zaOHwmiP1EqTeLRXAvVriDb00JYnfEjWGPdKEuac7MiZJ5aiDMZ4Unc98Gmajn+PBljOmO1GKV6G0KwWn3+k8A==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-7.0.0.tgz", + "integrity": "sha512-ggXLfTRrUALAcjeJSRrZcJDOl6MgC2tPXe/zNOEkQXvTDgcKqFypPRoPpfpK5wejexjyaI/7dwETOntJ5MPBFg==" }, "to-regex-range": { "version": "5.0.1", @@ -4411,30 +4225,14 @@ "dev": true }, "vite": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", - "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.0.tgz", + "integrity": "sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==", "requires": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", + "esbuild": "^0.24.2", "fsevents": "~2.3.3", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "dependencies": { - "fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "requires": {} - }, - "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" - } + "postcss": "^8.5.1", + "rollup": "^4.30.1" } }, "vite-plugin-full-reload": { diff --git a/package.json b/package.json index fe6cc01a3..d5b1565f7 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,8 @@ "sass-loader": "^10.1.1" }, "dependencies": { - "tinymce": "^7.9.1", - "vite": "^6.4.1", - + "tinymce": "^7.0.0", + "vite": "^6.1.0", "laravel-vite-plugin": "^0.7.3" } } diff --git a/public/installer/index.php b/public/installer/index.php index 5ab13af76..f2c4465b7 100644 --- a/public/installer/index.php +++ b/public/installer/index.php @@ -67,13 +67,13 @@ if (strtolower($stepValue) === 'next' && $currentStep < $_SESSION['last_installation_step']) { $_SESSION['current_installation_step']++; // Redirect to clean URL after processing - header("Location: {$protocol}://{$host}/installer/index.php"); + header('Location: /installer/index.php'); exit; } elseif (strtolower($stepValue) === 'previous' && $currentStep > 1) { if ($stepConfig[$currentStep - 1]['is_revertable']) { $_SESSION['current_installation_step']--; - header("Location: {$protocol}://{$host}/installer/index.php"); + header('Location: /installer/index.php'); exit; } } @@ -82,7 +82,7 @@ if ($stepValue <= $currentStep && $stepValue >= 1 && $stepValue <= $_SESSION['last_installation_step']) { $_SESSION['current_installation_step'] = $stepValue; } - header("Location: {$protocol}://{$host}/installer/index.php"); + header('Location: /installer/index.php'); exit; } } diff --git a/public/installer/src/forms/admin.php b/public/installer/src/forms/admin.php index 7a5388a5e..d822cf110 100644 --- a/public/installer/src/forms/admin.php +++ b/public/installer/src/forms/admin.php @@ -24,7 +24,7 @@ $adminToken = run_console("php artisan settings:get 'PterodactylSettings' 'admin_token' --sameline"); } catch (Throwable $th) { wh_log("Getting Pterodactyl information failed.", 'error'); - send_error_message($th->getMessage() . "
    Please check the installer.log file in " . dirname(__DIR__, 4) . '/storage/logs' . "!"); + send_error_message($th->getMessage() . "
    Please check the installer.log file in " . dirname(__DIR__,4) . '/storage/logs' . "!"); exit(); } @@ -80,8 +80,7 @@ $random = substr(str_shuffle('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), 0, 8); // random referal - $initialCredits = (int) run_console("php artisan settings:get 'UserSettings' 'initial_credits' --sameline") ?: 250000; - $query1 = 'INSERT INTO `' . getenv('DB_DATABASE') . "`.`users` (`name`, `credits`, `server_limit`, `pterodactyl_id`, `email`, `password`, `created_at`, `referral_code`) VALUES ('$name', '" . $initialCredits . "', '1', '$pteroID', '$mail', '$pass', CURRENT_TIMESTAMP, '$random')"; + $query1 = 'INSERT INTO `' . getenv('DB_DATABASE') . "`.`users` (`name`, `credits`, `server_limit`, `pterodactyl_id`, `email`, `password`, `created_at`, `referral_code`) VALUES ('$name', '250', '1', '$pteroID', '$mail', '$pass', CURRENT_TIMESTAMP, '$random')"; $query2 = "INSERT INTO `" . getenv('DB_DATABASE') . "`.`model_has_roles` (`role_id`, `model_type`, `model_id`) VALUES ('1', 'App\\\Models\\\User', '1')"; try { $db->query($query1); @@ -100,4 +99,4 @@ } } -?> \ No newline at end of file +?> diff --git a/public/installer/src/forms/database.php b/public/installer/src/forms/database.php index 9714240bc..2bb121d38 100644 --- a/public/installer/src/forms/database.php +++ b/public/installer/src/forms/database.php @@ -4,9 +4,6 @@ (new DotEnv(dirname(__FILE__, 5) . '/.env'))->load(); -// Include installer functions to get $host variable and helper functions -require_once dirname(__FILE__, 2) . '/functions/installer.php'; - mysqli_report(MYSQLI_REPORT_STRICT | MYSQLI_REPORT_ALL); if (isset($_POST['checkDB'])) { @@ -48,7 +45,7 @@ } } catch (Throwable $th) { wh_log('Creating APP_KEY failed', 'error'); - header("LOCATION: {$protocol}://{$host}/installer/index.php?step=3&message=" . $th->getMessage() . "
    Please check the installer.log file in " . dirname(__DIR__,4) . '/storage/logs' . "!"); + header("LOCATION: index.php?step=3&message=" . $th->getMessage() . "
    Please check the installer.log file in " . dirname(__DIR__,4) . '/storage/logs' . "!"); exit(); } diff --git a/public/installer/src/functions/installer.php b/public/installer/src/functions/installer.php index 3fb1e8b0b..b9732eff0 100644 --- a/public/installer/src/functions/installer.php +++ b/public/installer/src/functions/installer.php @@ -1,33 +1,16 @@ name('servers.cancel'); Route::post('/servers/validateDeploymentVariables', [ServerController::class, 'validateDeploymentVariables'])->name('servers.validateDeploymentVariables'); Route::patch('/servers/{server}/billing_priority', [ServerController::class, 'updateBillingPriority'])->name('servers.updateBillingPriority'); - Route::resource('servers', ServerController::class)->except('update'); + Route::delete('/servers/{server}', [ServerController::class, 'destroy'])->name('servers.destroy'); + Route::patch('/servers/{server}', [ServerController::class, 'update'])->name('servers.update'); + Route::resource('servers', ServerController::class); try { $serverSettings = app(App\Settings\ServerSettings::class); diff --git a/themes/default/views/admin/coupons/create.blade.php b/themes/default/views/admin/coupons/create.blade.php index 7e5aa595e..765a4b4f4 100644 --- a/themes/default/views/admin/coupons/create.blade.php +++ b/themes/default/views/admin/coupons/create.blade.php @@ -1,24 +1,24 @@ @extends('layouts.main') @section('content') - -
    + +
    -
    -
    -

    {{__('Coupon')}}

    -
    -
    @@ -41,10 +41,17 @@
    - +
    - + + @endsection diff --git a/themes/default/views/admin/coupons/index.blade.php b/themes/default/views/admin/coupons/index.blade.php index e394bc99d..cad2aa4e4 100644 --- a/themes/default/views/admin/coupons/index.blade.php +++ b/themes/default/views/admin/coupons/index.blade.php @@ -4,18 +4,18 @@
    -
    -
    -

    {{__('Coupons')}}

    +
    +
    +

    {{__('Coupons')}}

    +
    +
    - -
    @@ -23,74 +23,74 @@
    -
    -
    -
    -
    - - {{__('Coupons')}} -
    - - - {{__('Create new')}} - -
    -
    +
    +
    +
    +
    + + {{__('Coupons')}} +
    + + + {{__('Create new')}} + +
    +
    -
    +
    - - - - - - - - - - - - - - -
    {{__('Status')}}{{__('Code')}}{{__('Value')}}{{__('Used / Max Uses')}}{{__('Expires')}}{{__('Created At')}}{{__('Actions')}}
    + + + + + + + + + + + + + + +
    {{__('Status')}}{{__('Code')}}{{__('Value')}}{{__('Used / Max Uses')}}{{__('Expires')}}{{__('Created At')}}{{__('Actions')}}
    +
    -
    -
    - - + $(document).ready(function() { + $('#datatable').DataTable({ + language: { + url: '//cdn.datatables.net/plug-ins/1.11.3/i18n/{{ $locale_datatables }}.json' + }, + processing: true, + serverSide: true, + stateSave: true, + ajax: "{{route('admin.coupons.datatable')}}", + columns: [ + {data: 'status'}, + {data: 'code'}, + {data: 'value'}, + {data: 'uses', sortable: false}, + {data: 'expires_at'}, + {data: 'created_at'}, + {data: 'actions', sortable: false}, + ], + fnDrawCallback: function( oSettings ) { + $('[data-toggle="popover"]').popover(); + } + }); + }) + @endsection diff --git a/themes/default/views/admin/overview/index.blade.php b/themes/default/views/admin/overview/index.blade.php index e96125a17..467603268 100644 --- a/themes/default/views/admin/overview/index.blade.php +++ b/themes/default/views/admin/overview/index.blade.php @@ -18,20 +18,12 @@ - @if (!empty($headFileMissing) && $headFileMissing && Auth::user()->hasRole('Admin')) - - @endif @if(Storage::get('latestVersion') && config("app.version") < Storage::get('latestVersion')) @endif @@ -43,7 +35,7 @@
    @@ -51,7 +43,7 @@ class="mr-2 fas fa-link"> {{__('Documentation')}} class="mr-2 fab fa-github"> {{__('Github')}}
    diff --git a/themes/default/views/admin/products/create.blade.php b/themes/default/views/admin/products/create.blade.php index f5ec271a2..a91d0416f 100644 --- a/themes/default/views/admin/products/create.blade.php +++ b/themes/default/views/admin/products/create.blade.php @@ -1,425 +1,454 @@ @extends('layouts.main') @section('content') - -
    -
    -
    -
    -

    {{ __('Products') }}

    -
    - -
    -
    -
    - - - -
    -
    - - @csrf -
    -
    -
    -
    -
    {{ __('Product Details') }}
    -
    -
    - -
    -
    - - -
    -
    - -
    -
    -
    - - - @error('name') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    - - - @error('description') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    -
    -
    - - - @error('billing_period') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    - - - @error('default_billing_priority') -
    - {{ $message }} -
    - @enderror -
    -
    + +
    +
    +
    +
    +

    {{ __('Products') }}

    -
    -
    -
    - - - @error('price') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    - - - @error('minimum_credits') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    -
    -
    - - -
    {{ __('Set to 0 for Unlimited') }}
    - @error('cpu') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    - - -
    {{ __('Set to 0 for Unlimited') }}
    - @error('disk') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    -
    -
    - - -
    {{ __('Set to 0 for Unlimited') }}
    - @error('memory') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    - - - @error('io') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    -
    -
    - - -
    - {{ __('Set to -1 for Unlimited, 0 for Disabled, or any positive number.') }} -
    - @error('swap') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    - - - - - @error('serverlimit') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    -
    -
    - - - @error('allocations') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    - - - @error('databases') -
    - {{ $message }} -
    - @enderror -
    -
    -
    -
    - - - @error('backups') -
    - {{ $message }} -
    - @enderror -
    -
    + +
    +
    +
    + + +
    +
    + + @csrf
    -
    -
    - - -
    -
    -
    +
    +
    +
    +
    {{ __('Product Details') }}
    +
    +
    -
    - -
    +
    +
    + + +
    +
    -
    -
    -
    +
    +
    +
    + + + @error('name') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    + + + @error('description') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    +
    +
    + + + @error('billing_period') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    + + + @error('default_billing_priority') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    +
    +
    + + + @error('price') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    + + + @error('minimum_credits') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    +
    +
    + + + @error('cpu') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    + + + @error('disk') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    +
    +
    + + + @error('memory') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    + + + @error('io') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    +
    +
    + + + @error('swap') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    + + + + + @error('serverlimit') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    +
    +
    + + + @error('allocations') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    + + + @error('databases') +
    + {{ $message }} +
    + @enderror +
    +
    +
    +
    + + + @error('backups') +
    + {{ $message }} +
    + @enderror +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    -
    -
    -
    -
    {{ __('Product Linking') }} - -
    -
    -
    +
    + +
    -
    - - - @error('nodes') -
    - {{ $message }} +
    +
    - @enderror -
    - {{ __('This product will only be available for these nodes') }} -
    -
    +
    +
    +
    +
    {{ __('Product Linking') }} + +
    +
    +
    -
    -
    - -
    - - -
    -
    - - @error('eggs') -
    - {{ $message }} +
    + + + @error('nodes') +
    + {{ $message }} +
    + @enderror +
    + {{ __('This product will only be available for these nodes') }} +
    +
    + + +
    +
    + +
    + + +
    +
    + + @error('eggs') +
    + {{ $message }} +
    + @enderror +
    + {{ __('This product will only be available for these eggs') }} +
    +
    +
    + {{ __('No Eggs or Nodes shown?') }} {{ __('Sync now') }} +
    +
    +
    - @enderror -
    - {{ __('This product will only be available for these eggs') }} -
    -
    -
    - {{ __('No Eggs or Nodes shown?') }} {{ __('Sync now') }} -
    -
    -
    -
    -
    +
    - - + + -
    -
    - + + + - + document.getElementById('deselect-all-eggs').addEventListener('click', function() { + $('#eggs option').prop('selected', false); + $('#eggs').trigger('change'); + }); + }); + @endsection diff --git a/themes/default/views/admin/products/edit.blade.php b/themes/default/views/admin/products/edit.blade.php index 4f1bce688..9463f8caa 100644 --- a/themes/default/views/admin/products/edit.blade.php +++ b/themes/default/views/admin/products/edit.blade.php @@ -58,7 +58,7 @@ class="fas fa-info-circle">
    - +
    @@ -96,7 +96,7 @@ class="form-control @error('description') is-invalid @enderror" required="requir data-toggle="popover" data-trigger="hover" data-content="{{ __('Period when the user will be charged for the given price') }}" class="fas fa-info-circle"> - + -
    {{ __('Set to 0 for Unlimited') }}
    @error('cpu')
    {{ $message }} @@ -208,9 +207,8 @@ class="form-control @error('cpu') is-invalid @enderror" required="required">
    -
    {{ __('Set to 0 for Unlimited') }}
    @error('disk')
    {{ $message }} @@ -224,9 +222,8 @@ class="form-control @error('cpu') is-invalid @enderror" required="required">
    -
    {{ __('Set to 0 for Unlimited') }}
    @error('memory')
    {{ $message }} @@ -255,7 +252,6 @@ class="form-control @error('cpu') is-invalid @enderror" required="required"> -
    {{ __('Set to -1 for Unlimited') }}
    @error('swap')
    {{ $message }} @@ -328,7 +324,7 @@ class="form-control @error('backups') is-invalid @enderror"
    - oom_killer) checked @endif> +
    @foreach ($user->roles as $role) - {{ $role->name }} + {{$role->name}} @endforeach
    @@ -195,8 +194,7 @@ class='badge'>{{ $role->name }}
    - {{ Currency::formatForDisplay($user->creditUsage()) }} + {{ $user->CreditUsage() }}
    @@ -208,7 +206,7 @@ class="mr-2 fas fa-coins">{{ Currency::formatForDisplay($user->creditUsage()
    - {{ $user->referredBy() != null ? $user->referredBy()->name : 'None' }} + {{ $user->referredBy() != Null ? $user->referredBy()->name : "None" }}
    @@ -270,29 +268,22 @@ class="mr-2 fas fa-coins">
    {{ Currency::formatForDisplay($user->creditUsage() @foreach ($referrals as $referral) -
    -
    - @if ($referral->deleted ?? false) - - @else - - @endif -
    -
    - - - @if ($referral->deleted ?? false) - {{ $referral->name }} - @else - +
    +
    + +
    +
    -
    - - {{ $referral->created_at->diffForHumans() }} - + +
    +
    + + {{ $referral->created_at->diffForHumans() }} + +
    @endforeach diff --git a/themes/default/views/layouts/main.blade.php b/themes/default/views/layouts/main.blade.php index 8e8a8633d..1d2521496 100644 --- a/themes/default/views/layouts/main.blade.php +++ b/themes/default/views/layouts/main.blade.php @@ -223,6 +223,7 @@ class="nav-link @if (Request::routeIs('ticket.*')) active @endif"> @endif @canany(array_merge( + PermissionGroups::TICKET_PERMISSIONS, PermissionGroups::OVERVIEW_PERMISSIONS, PermissionGroups::TICKET_ADMIN_PERMISSIONS, PermissionGroups::TICKET_BLACKLIST_PERMISSIONS, @@ -455,34 +456,28 @@ class="nav-link @if (Request::routeIs('admin.activitylogs.*')) active @endif"> @include('modals.redeem_voucher_modal')
    -