diff --git a/.env b/.env index d4d3fb6e5..23ba5e558 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ APP_NAME=Virtnet.bond APP_ENV=production APP_KEY=base64:+cQPcLVv62SHfVXP2ZARswRh5voT74qiCb36Pgvunqo= -APP_DEBUG=false +APP_DEBUG=true APP_TIMEZONE=UTC APP_URL=https://billing.virtnet.bond APP_LOCALE=en diff --git a/composer.lock b/composer.lock index cb60c5400..174a70556 100644 --- a/composer.lock +++ b/composer.lock @@ -77,16 +77,16 @@ }, { "name": "andreiio/blade-remix-icon", - "version": "3.8.0", + "version": "3.9.1", "source": { "type": "git", "url": "https://github.com/andreiio/blade-remix-icon.git", - "reference": "ae93ab98fc912a9ad718b8102f55090653a69930" + "reference": "622f77d25bae5d9de6aed31e70dfea92bb0cbe8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/andreiio/blade-remix-icon/zipball/ae93ab98fc912a9ad718b8102f55090653a69930", - "reference": "ae93ab98fc912a9ad718b8102f55090653a69930", + "url": "https://api.github.com/repos/andreiio/blade-remix-icon/zipball/622f77d25bae5d9de6aed31e70dfea92bb0cbe8f", + "reference": "622f77d25bae5d9de6aed31e70dfea92bb0cbe8f", "shasum": "" }, "require": { @@ -123,7 +123,7 @@ "description": "A package to easily make use of Remix Icon in your Laravel Blade views.", "support": { "issues": "https://github.com/andreiio/blade-remix-icon/issues", - "source": "https://github.com/andreiio/blade-remix-icon/tree/3.8.0" + "source": "https://github.com/andreiio/blade-remix-icon/tree/3.9.1" }, "funding": [ { @@ -131,7 +131,7 @@ "type": "github" } ], - "time": "2025-12-29T12:31:33+00:00" + "time": "2026-01-29T12:19:49+00:00" }, { "name": "anourvalar/eloquent-serialize", @@ -526,16 +526,16 @@ }, { "name": "brick/math", - "version": "0.14.1", + "version": "0.14.8", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "f05858549e5f9d7bb45875a75583240a38a281d0" + "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/f05858549e5f9d7bb45875a75583240a38a281d0", - "reference": "f05858549e5f9d7bb45875a75583240a38a281d0", + "url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629", + "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629", "shasum": "" }, "require": { @@ -574,7 +574,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.14.1" + "source": "https://github.com/brick/math/tree/0.14.8" }, "funding": [ { @@ -582,7 +582,7 @@ "type": "github" } ], - "time": "2025-11-24T14:40:29+00:00" + "time": "2026-02-10T14:33:43+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -1344,29 +1344,29 @@ }, { "name": "doctrine/deprecations", - "version": "1.1.5", + "version": "1.1.6", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", - "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", + "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "conflict": { - "phpunit/phpunit": "<=7.5 || >=13" + "phpunit/phpunit": "<=7.5 || >=14" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12 || ^13", - "phpstan/phpstan": "1.4.10 || 2.1.11", + "doctrine/coding-standard": "^9 || ^12 || ^14", + "phpstan/phpstan": "1.4.10 || 2.1.30", "phpstan/phpstan-phpunit": "^1.0 || ^2", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0", "psr/log": "^1 || ^2 || ^3" }, "suggest": { @@ -1386,9 +1386,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.5" + "source": "https://github.com/doctrine/deprecations/tree/1.1.6" }, - "time": "2025-04-07T20:06:18+00:00" + "time": "2026-02-07T07:09:04+00:00" }, { "name": "doctrine/inflector", @@ -2036,16 +2036,16 @@ }, { "name": "filament/actions", - "version": "v3.3.47", + "version": "v3.3.49", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "f8ea2b015b12c00522f1d6a7bcb9453b5f08beb1" + "reference": "3cb3e1f9094ed3b4bc102616966c365138c908bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/f8ea2b015b12c00522f1d6a7bcb9453b5f08beb1", - "reference": "f8ea2b015b12c00522f1d6a7bcb9453b5f08beb1", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/3cb3e1f9094ed3b4bc102616966c365138c908bc", + "reference": "3cb3e1f9094ed3b4bc102616966c365138c908bc", "shasum": "" }, "require": { @@ -2085,20 +2085,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-01-01T16:29:27+00:00" + "time": "2026-02-07T21:52:11+00:00" }, { "name": "filament/filament", - "version": "v3.3.47", + "version": "v3.3.49", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "790e3c163e93f5746beea88b93d38673424984b6" + "reference": "6098e568b4257dc438ff68aced0a260f06ba6d52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/790e3c163e93f5746beea88b93d38673424984b6", - "reference": "790e3c163e93f5746beea88b93d38673424984b6", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/6098e568b4257dc438ff68aced0a260f06ba6d52", + "reference": "6098e568b4257dc438ff68aced0a260f06ba6d52", "shasum": "" }, "require": { @@ -2150,20 +2150,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-01-01T16:29:34+00:00" + "time": "2026-02-07T21:52:21+00:00" }, { "name": "filament/forms", - "version": "v3.3.47", + "version": "v3.3.49", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "f708ce490cff3770071d18e9ea678eb4b7c65c58" + "reference": "c64bf142f808d292b0c6c21fdd3c75cbef9e9d30" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/f708ce490cff3770071d18e9ea678eb4b7c65c58", - "reference": "f708ce490cff3770071d18e9ea678eb4b7c65c58", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/c64bf142f808d292b0c6c21fdd3c75cbef9e9d30", + "reference": "c64bf142f808d292b0c6c21fdd3c75cbef9e9d30", "shasum": "" }, "require": { @@ -2206,20 +2206,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-01-01T16:29:33+00:00" + "time": "2026-02-19T23:07:33+00:00" }, { "name": "filament/infolists", - "version": "v3.3.47", + "version": "v3.3.49", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "ac7fc1c8acc651c6c793696f0772747791c91155" + "reference": "9cef7bf9f46756a8adf762ced62952e8c239b840" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/ac7fc1c8acc651c6c793696f0772747791c91155", - "reference": "ac7fc1c8acc651c6c793696f0772747791c91155", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/9cef7bf9f46756a8adf762ced62952e8c239b840", + "reference": "9cef7bf9f46756a8adf762ced62952e8c239b840", "shasum": "" }, "require": { @@ -2257,11 +2257,11 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-01-01T16:28:31+00:00" + "time": "2026-02-07T21:51:54+00:00" }, { "name": "filament/notifications", - "version": "v3.3.47", + "version": "v3.3.49", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", @@ -2313,16 +2313,16 @@ }, { "name": "filament/support", - "version": "v3.3.47", + "version": "v3.3.49", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "c37f4b9045a7c514974e12562b5a41813860b505" + "reference": "493bd79d4f4ae7b9256c317af742354318a6f4e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/c37f4b9045a7c514974e12562b5a41813860b505", - "reference": "c37f4b9045a7c514974e12562b5a41813860b505", + "url": "https://api.github.com/repos/filamentphp/support/zipball/493bd79d4f4ae7b9256c317af742354318a6f4e0", + "reference": "493bd79d4f4ae7b9256c317af742354318a6f4e0", "shasum": "" }, "require": { @@ -2368,20 +2368,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-01-09T09:01:14+00:00" + "time": "2026-02-07T21:51:58+00:00" }, { "name": "filament/tables", - "version": "v3.3.47", + "version": "v3.3.49", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "c88d17248827b3fbca09db53d563498d29c6b180" + "reference": "fb0ab986950dc8129725f676bdb310851b18403f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/c88d17248827b3fbca09db53d563498d29c6b180", - "reference": "c88d17248827b3fbca09db53d563498d29c6b180", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/fb0ab986950dc8129725f676bdb310851b18403f", + "reference": "fb0ab986950dc8129725f676bdb310851b18403f", "shasum": "" }, "require": { @@ -2420,20 +2420,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-01-01T16:29:37+00:00" + "time": "2026-02-07T21:52:06+00:00" }, { "name": "filament/widgets", - "version": "v3.3.47", + "version": "v3.3.49", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "2bf59fd94007b69c22c161f7a4749ea19560e03e" + "reference": "f58ff26e81ca2557205e3111e1d9d05c258cc206" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/2bf59fd94007b69c22c161f7a4749ea19560e03e", - "reference": "2bf59fd94007b69c22c161f7a4749ea19560e03e", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/f58ff26e81ca2557205e3111e1d9d05c258cc206", + "reference": "f58ff26e81ca2557205e3111e1d9d05c258cc206", "shasum": "" }, "require": { @@ -2464,7 +2464,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-01-01T16:29:32+00:00" + "time": "2026-02-07T21:51:58+00:00" }, { "name": "firebase/php-jwt", @@ -3300,16 +3300,16 @@ }, { "name": "laravel/framework", - "version": "v12.48.1", + "version": "v12.52.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "0f0974a9769378ccd9c9935c09b9927f3a606830" + "reference": "d5511fa74f4608dbb99864198b1954042aa8d5a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/0f0974a9769378ccd9c9935c09b9927f3a606830", - "reference": "0f0974a9769378ccd9c9935c09b9927f3a606830", + "url": "https://api.github.com/repos/laravel/framework/zipball/d5511fa74f4608dbb99864198b1954042aa8d5a7", + "reference": "d5511fa74f4608dbb99864198b1954042aa8d5a7", "shasum": "" }, "require": { @@ -3518,20 +3518,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-01-20T16:12:36+00:00" + "time": "2026-02-17T17:07:04+00:00" }, { "name": "laravel/octane", - "version": "v2.13.4", + "version": "v2.13.5", "source": { "type": "git", "url": "https://github.com/laravel/octane.git", - "reference": "ae618600cb54826a21f67d130a39446f68be1a9a" + "reference": "c343716659c280a7613a0c10d3241215512355ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/octane/zipball/ae618600cb54826a21f67d130a39446f68be1a9a", - "reference": "ae618600cb54826a21f67d130a39446f68be1a9a", + "url": "https://api.github.com/repos/laravel/octane/zipball/c343716659c280a7613a0c10d3241215512355ee", + "reference": "c343716659c280a7613a0c10d3241215512355ee", "shasum": "" }, "require": { @@ -3608,7 +3608,7 @@ "issues": "https://github.com/laravel/octane/issues", "source": "https://github.com/laravel/octane" }, - "time": "2025-12-21T23:59:50+00:00" + "time": "2026-01-22T17:24:46+00:00" }, { "name": "laravel/passport", @@ -3688,30 +3688,30 @@ }, { "name": "laravel/prompts", - "version": "v0.3.10", + "version": "v0.3.13", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "360ba095ef9f51017473505191fbd4ab73e1cab3" + "reference": "ed8c466571b37e977532fb2fd3c272c784d7050d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/360ba095ef9f51017473505191fbd4ab73e1cab3", - "reference": "360ba095ef9f51017473505191fbd4ab73e1cab3", + "url": "https://api.github.com/repos/laravel/prompts/zipball/ed8c466571b37e977532fb2fd3c272c784d7050d", + "reference": "ed8c466571b37e977532fb2fd3c272c784d7050d", "shasum": "" }, "require": { "composer-runtime-api": "^2.2", "ext-mbstring": "*", "php": "^8.1", - "symfony/console": "^6.2|^7.0" + "symfony/console": "^6.2|^7.0|^8.0" }, "conflict": { "illuminate/console": ">=10.17.0 <10.25.0", "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { - "illuminate/collections": "^10.0|^11.0|^12.0", + "illuminate/collections": "^10.0|^11.0|^12.0|^13.0", "mockery/mockery": "^1.5", "pestphp/pest": "^2.3|^3.4|^4.0", "phpstan/phpstan": "^1.12.28", @@ -3741,33 +3741,33 @@ "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.10" + "source": "https://github.com/laravel/prompts/tree/v0.3.13" }, - "time": "2026-01-13T20:29:29+00:00" + "time": "2026-02-06T12:17:10+00:00" }, { "name": "laravel/serializable-closure", - "version": "v2.0.8", + "version": "v2.0.9", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "7581a4407012f5f53365e11bafc520fd7f36bc9b" + "reference": "8f631589ab07b7b52fead814965f5a800459cb3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/7581a4407012f5f53365e11bafc520fd7f36bc9b", - "reference": "7581a4407012f5f53365e11bafc520fd7f36bc9b", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/8f631589ab07b7b52fead814965f5a800459cb3e", + "reference": "8f631589ab07b7b52fead814965f5a800459cb3e", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", "nesbot/carbon": "^2.67|^3.0", "pestphp/pest": "^2.36|^3.0|^4.0", "phpstan/phpstan": "^2.0", - "symfony/var-dumper": "^6.2.0|^7.0.0" + "symfony/var-dumper": "^6.2.0|^7.0.0|^8.0.0" }, "type": "library", "extra": { @@ -3804,7 +3804,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2026-01-08T16:22:46+00:00" + "time": "2026-02-03T06:55:34+00:00" }, { "name": "laravel/socialite", @@ -3880,16 +3880,16 @@ }, { "name": "laravel/tinker", - "version": "v2.11.0", + "version": "v2.11.1", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "3d34b97c9a1747a81a3fde90482c092bd8b66468" + "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/3d34b97c9a1747a81a3fde90482c092bd8b66468", - "reference": "3d34b97c9a1747a81a3fde90482c092bd8b66468", + "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741", + "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741", "shasum": "" }, "require": { @@ -3940,9 +3940,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.11.0" + "source": "https://github.com/laravel/tinker/tree/v2.11.1" }, - "time": "2025-12-19T19:16:45+00:00" + "time": "2026-02-06T14:12:35+00:00" }, { "name": "lcobucci/clock", @@ -4951,16 +4951,16 @@ }, { "name": "livewire/livewire", - "version": "v3.7.6", + "version": "v3.7.10", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "276ac156f6ae414990784854a2673e3d23c68b24" + "reference": "0dc679eb4c8b4470cb12522b5927ef08ca2358bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/276ac156f6ae414990784854a2673e3d23c68b24", - "reference": "276ac156f6ae414990784854a2673e3d23c68b24", + "url": "https://api.github.com/repos/livewire/livewire/zipball/0dc679eb4c8b4470cb12522b5927ef08ca2358bb", + "reference": "0dc679eb4c8b4470cb12522b5927ef08ca2358bb", "shasum": "" }, "require": { @@ -5015,7 +5015,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v3.7.6" + "source": "https://github.com/livewire/livewire/tree/v3.7.10" }, "funding": [ { @@ -5023,7 +5023,7 @@ "type": "github" } ], - "time": "2026-01-23T05:41:38+00:00" + "time": "2026-02-09T22:49:33+00:00" }, { "name": "masterminds/html5", @@ -5197,16 +5197,16 @@ }, { "name": "nesbot/carbon", - "version": "3.11.0", + "version": "3.11.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "bdb375400dcd162624531666db4799b36b64e4a1" + "reference": "f438fcc98f92babee98381d399c65336f3a3827f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/bdb375400dcd162624531666db4799b36b64e4a1", - "reference": "bdb375400dcd162624531666db4799b36b64e4a1", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/f438fcc98f92babee98381d399c65336f3a3827f", + "reference": "f438fcc98f92babee98381d399c65336f3a3827f", "shasum": "" }, "require": { @@ -5230,7 +5230,7 @@ "phpstan/extension-installer": "^1.4.3", "phpstan/phpstan": "^2.1.22", "phpunit/phpunit": "^10.5.53", - "squizlabs/php_codesniffer": "^3.13.4" + "squizlabs/php_codesniffer": "^3.13.4 || ^4.0.0" }, "bin": [ "bin/carbon" @@ -5273,14 +5273,14 @@ } ], "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", + "homepage": "https://carbonphp.github.io/carbon/", "keywords": [ "date", "datetime", "time" ], "support": { - "docs": "https://carbon.nesbot.com/docs", + "docs": "https://carbonphp.github.io/carbon/guide/getting-started/introduction.html", "issues": "https://github.com/CarbonPHP/carbon/issues", "source": "https://github.com/CarbonPHP/carbon" }, @@ -5298,20 +5298,20 @@ "type": "tidelift" } ], - "time": "2025-12-02T21:04:28+00:00" + "time": "2026-01-29T09:26:29+00:00" }, { "name": "nette/schema", - "version": "v1.3.3", + "version": "v1.3.4", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004" + "reference": "086497a2f34b82fede9b5a41cc8e131d087cd8f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004", - "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004", + "url": "https://api.github.com/repos/nette/schema/zipball/086497a2f34b82fede9b5a41cc8e131d087cd8f7", + "reference": "086497a2f34b82fede9b5a41cc8e131d087cd8f7", "shasum": "" }, "require": { @@ -5319,8 +5319,8 @@ "php": "8.1 - 8.5" }, "require-dev": { - "nette/tester": "^2.5.2", - "phpstan/phpstan-nette": "^2.0@stable", + "nette/tester": "^2.6", + "phpstan/phpstan": "^2.0@stable", "tracy/tracy": "^2.8" }, "type": "library", @@ -5361,22 +5361,22 @@ ], "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.4" }, - "time": "2025-10-30T22:57:59+00:00" + "time": "2026-02-08T02:54:00+00:00" }, { "name": "nette/utils", - "version": "v4.1.1", + "version": "v4.1.3", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "c99059c0315591f1a0db7ad6002000288ab8dc72" + "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/c99059c0315591f1a0db7ad6002000288ab8dc72", - "reference": "c99059c0315591f1a0db7ad6002000288ab8dc72", + "url": "https://api.github.com/repos/nette/utils/zipball/bb3ea637e3d131d72acc033cfc2746ee893349fe", + "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe", "shasum": "" }, "require": { @@ -5388,8 +5388,10 @@ }, "require-dev": { "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", "nette/tester": "^2.5", - "phpstan/phpstan-nette": "^2.0@stable", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1@stable", "tracy/tracy": "^2.9" }, "suggest": { @@ -5450,9 +5452,9 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.1.1" + "source": "https://github.com/nette/utils/tree/v4.1.3" }, - "time": "2025-12-22T12:14:32+00:00" + "time": "2026-02-13T03:05:33+00:00" }, { "name": "nikic/php-parser", @@ -5514,31 +5516,31 @@ }, { "name": "nunomaduro/termwind", - "version": "v2.3.3", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017" + "reference": "712a31b768f5daea284c2169a7d227031001b9a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/6fb2a640ff502caace8e05fd7be3b503a7e1c017", - "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/712a31b768f5daea284c2169a7d227031001b9a8", + "reference": "712a31b768f5daea284c2169a7d227031001b9a8", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.3.6" + "symfony/console": "^7.4.4 || ^8.0.4" }, "require-dev": { - "illuminate/console": "^11.46.1", - "laravel/pint": "^1.25.1", + "illuminate/console": "^11.47.0", + "laravel/pint": "^1.27.1", "mockery/mockery": "^1.6.12", - "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.1.3", + "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.3.2", "phpstan/phpstan": "^1.12.32", "phpstan/phpstan-strict-rules": "^1.6.2", - "symfony/var-dumper": "^7.3.5", + "symfony/var-dumper": "^7.3.5 || ^8.0.4", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -5570,7 +5572,7 @@ "email": "enunomaduro@gmail.com" } ], - "description": "Its like Tailwind CSS, but for the console.", + "description": "It's like Tailwind CSS, but for the console.", "keywords": [ "cli", "console", @@ -5581,7 +5583,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.3.3" + "source": "https://github.com/nunomaduro/termwind/tree/v2.4.0" }, "funding": [ { @@ -5597,7 +5599,7 @@ "type": "github" } ], - "time": "2025-11-20T02:34:59+00:00" + "time": "2026-02-16T23:10:27+00:00" }, { "name": "nyholm/psr7", @@ -5966,16 +5968,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.48", + "version": "3.0.49", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "64065a5679c50acb886e82c07aa139b0f757bb89" + "reference": "6233a1e12584754e6b5daa69fe1289b47775c1b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/64065a5679c50acb886e82c07aa139b0f757bb89", - "reference": "64065a5679c50acb886e82c07aa139b0f757bb89", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/6233a1e12584754e6b5daa69fe1289b47775c1b9", + "reference": "6233a1e12584754e6b5daa69fe1289b47775c1b9", "shasum": "" }, "require": { @@ -6056,7 +6058,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.48" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.49" }, "funding": [ { @@ -6072,7 +6074,7 @@ "type": "tidelift" } ], - "time": "2025-12-15T11:51:42+00:00" + "time": "2026-01-27T09:17:28+00:00" }, { "name": "postare/blade-mdi", @@ -6608,16 +6610,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.18", + "version": "v0.12.20", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "ddff0ac01beddc251786fe70367cd8bbdb258196" + "reference": "19678eb6b952a03b8a1d96ecee9edba518bb0373" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ddff0ac01beddc251786fe70367cd8bbdb258196", - "reference": "ddff0ac01beddc251786fe70367cd8bbdb258196", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/19678eb6b952a03b8a1d96ecee9edba518bb0373", + "reference": "19678eb6b952a03b8a1d96ecee9edba518bb0373", "shasum": "" }, "require": { @@ -6681,9 +6683,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.18" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.20" }, - "time": "2025-12-17T14:35:46+00:00" + "time": "2026-02-11T15:05:28+00:00" }, { "name": "qirolab/laravel-themer", @@ -7569,16 +7571,16 @@ }, { "name": "spatie/laravel-query-builder", - "version": "6.4.0", + "version": "6.4.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-query-builder.git", - "reference": "f73627028538bfa58d5437f79344fa93ae254a36" + "reference": "3d86f49fffa39d542753d15b741b83ca33087fc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/f73627028538bfa58d5437f79344fa93ae254a36", - "reference": "f73627028538bfa58d5437f79344fa93ae254a36", + "url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/3d86f49fffa39d542753d15b741b83ca33087fc1", + "reference": "3d86f49fffa39d542753d15b741b83ca33087fc1", "shasum": "" }, "require": { @@ -7639,7 +7641,7 @@ "type": "custom" } ], - "time": "2026-01-09T13:35:54+00:00" + "time": "2026-02-18T09:22:31+00:00" }, { "name": "symfony/clock", @@ -8198,16 +8200,16 @@ }, { "name": "symfony/finder", - "version": "v7.4.4", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "01b24a145bbeaa7141e75887ec904c34a6728a5f" + "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/01b24a145bbeaa7141e75887ec904c34a6728a5f", - "reference": "01b24a145bbeaa7141e75887ec904c34a6728a5f", + "url": "https://api.github.com/repos/symfony/finder/zipball/ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", + "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", "shasum": "" }, "require": { @@ -8242,7 +8244,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.4" + "source": "https://github.com/symfony/finder/tree/v7.4.5" }, "funding": [ { @@ -8262,7 +8264,7 @@ "type": "tidelift" } ], - "time": "2026-01-12T12:19:02+00:00" + "time": "2026-01-26T15:07:59+00:00" }, { "name": "symfony/html-sanitizer", @@ -8340,16 +8342,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.4.4", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "977a554a34cf8edc95ca351fbecb1bb1ad05cc94" + "reference": "446d0db2b1f21575f1284b74533e425096abdfb6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/977a554a34cf8edc95ca351fbecb1bb1ad05cc94", - "reference": "977a554a34cf8edc95ca351fbecb1bb1ad05cc94", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/446d0db2b1f21575f1284b74533e425096abdfb6", + "reference": "446d0db2b1f21575f1284b74533e425096abdfb6", "shasum": "" }, "require": { @@ -8398,7 +8400,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.4.4" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.5" }, "funding": [ { @@ -8418,20 +8420,20 @@ "type": "tidelift" } ], - "time": "2026-01-09T12:14:21+00:00" + "time": "2026-01-27T16:16:02+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.4", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "48b067768859f7b68acf41dfb857a5a4be00acdd" + "reference": "229eda477017f92bd2ce7615d06222ec0c19e82a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/48b067768859f7b68acf41dfb857a5a4be00acdd", - "reference": "48b067768859f7b68acf41dfb857a5a4be00acdd", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/229eda477017f92bd2ce7615d06222ec0c19e82a", + "reference": "229eda477017f92bd2ce7615d06222ec0c19e82a", "shasum": "" }, "require": { @@ -8517,7 +8519,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.4.4" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.5" }, "funding": [ { @@ -8537,7 +8539,7 @@ "type": "tidelift" } ], - "time": "2026-01-24T22:13:01+00:00" + "time": "2026-01-28T10:33:42+00:00" }, { "name": "symfony/mailer", @@ -8625,16 +8627,16 @@ }, { "name": "symfony/mime", - "version": "v7.4.4", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "40945014c0a9471ccfe19673c54738fa19367a3c" + "reference": "b18c7e6e9eee1e19958138df10412f3c4c316148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/40945014c0a9471ccfe19673c54738fa19367a3c", - "reference": "40945014c0a9471ccfe19673c54738fa19367a3c", + "url": "https://api.github.com/repos/symfony/mime/zipball/b18c7e6e9eee1e19958138df10412f3c4c316148", + "reference": "b18c7e6e9eee1e19958138df10412f3c4c316148", "shasum": "" }, "require": { @@ -8645,15 +8647,15 @@ }, "conflict": { "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", + "phpdocumentor/reflection-docblock": "<5.2|>=6", + "phpdocumentor/type-resolver": "<1.5.1", "symfony/mailer": "<6.4", "symfony/serializer": "<6.4.3|>7.0,<7.0.3" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1|^4", "league/html-to-markdown": "^5.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpdocumentor/reflection-docblock": "^5.2", "symfony/dependency-injection": "^6.4|^7.0|^8.0", "symfony/process": "^6.4|^7.0|^8.0", "symfony/property-access": "^6.4|^7.0|^8.0", @@ -8690,7 +8692,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.4.4" + "source": "https://github.com/symfony/mime/tree/v7.4.5" }, "funding": [ { @@ -8710,7 +8712,7 @@ "type": "tidelift" } ], - "time": "2026-01-08T16:12:55+00:00" + "time": "2026-01-27T08:59:58+00:00" }, { "name": "symfony/polyfill-ctype", @@ -9543,16 +9545,16 @@ }, { "name": "symfony/process", - "version": "v7.4.4", + "version": "v7.4.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "626f07a53f4b4e2f00e11824cc29f928d797783b" + "reference": "608476f4604102976d687c483ac63a79ba18cc97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/626f07a53f4b4e2f00e11824cc29f928d797783b", - "reference": "626f07a53f4b4e2f00e11824cc29f928d797783b", + "url": "https://api.github.com/repos/symfony/process/zipball/608476f4604102976d687c483ac63a79ba18cc97", + "reference": "608476f4604102976d687c483ac63a79ba18cc97", "shasum": "" }, "require": { @@ -9584,7 +9586,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.4" + "source": "https://github.com/symfony/process/tree/v7.4.5" }, "funding": [ { @@ -9604,7 +9606,7 @@ "type": "tidelift" } ], - "time": "2026-01-20T09:23:51+00:00" + "time": "2026-01-26T15:07:59+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -10306,16 +10308,16 @@ }, { "name": "thecodingmachine/safe", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/thecodingmachine/safe.git", - "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236" + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/2cdd579eeaa2e78e51c7509b50cc9fb89a956236", - "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/705683a25bacf0d4860c7dea4d7947bfd09eea19", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19", "shasum": "" }, "require": { @@ -10425,7 +10427,7 @@ "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/v3.3.0" + "source": "https://github.com/thecodingmachine/safe/tree/v3.4.0" }, "funding": [ { @@ -10436,12 +10438,16 @@ "url": "https://github.com/shish", "type": "github" }, + { + "url": "https://github.com/silasjoisten", + "type": "github" + }, { "url": "https://github.com/staabm", "type": "github" } ], - "time": "2025-05-14T06:15:44+00:00" + "time": "2026-02-04T18:08:13+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -11145,16 +11151,16 @@ }, { "name": "iamcal/sql-parser", - "version": "v0.6", + "version": "v0.7", "source": { "type": "git", "url": "https://github.com/iamcal/SQLParser.git", - "reference": "947083e2dca211a6f12fb1beb67a01e387de9b62" + "reference": "610392f38de49a44dab08dc1659960a29874c4b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/iamcal/SQLParser/zipball/947083e2dca211a6f12fb1beb67a01e387de9b62", - "reference": "947083e2dca211a6f12fb1beb67a01e387de9b62", + "url": "https://api.github.com/repos/iamcal/SQLParser/zipball/610392f38de49a44dab08dc1659960a29874c4b8", + "reference": "610392f38de49a44dab08dc1659960a29874c4b8", "shasum": "" }, "require-dev": { @@ -11180,27 +11186,27 @@ "description": "MySQL schema parser", "support": { "issues": "https://github.com/iamcal/SQLParser/issues", - "source": "https://github.com/iamcal/SQLParser/tree/v0.6" + "source": "https://github.com/iamcal/SQLParser/tree/v0.7" }, - "time": "2025-03-17T16:59:46+00:00" + "time": "2026-01-28T22:20:33+00:00" }, { "name": "larastan/larastan", - "version": "v3.9.1", + "version": "v3.9.2", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "4b92d9627f779fd32bdc16f53f8ce88c50446ff5" + "reference": "2e9ed291bdc1969e7f270fb33c9cdf3c912daeb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/4b92d9627f779fd32bdc16f53f8ce88c50446ff5", - "reference": "4b92d9627f779fd32bdc16f53f8ce88c50446ff5", + "url": "https://api.github.com/repos/larastan/larastan/zipball/2e9ed291bdc1969e7f270fb33c9cdf3c912daeb2", + "reference": "2e9ed291bdc1969e7f270fb33c9cdf3c912daeb2", "shasum": "" }, "require": { "ext-json": "*", - "iamcal/sql-parser": "^0.6.0", + "iamcal/sql-parser": "^0.7.0", "illuminate/console": "^11.44.2 || ^12.4.1", "illuminate/container": "^11.44.2 || ^12.4.1", "illuminate/contracts": "^11.44.2 || ^12.4.1", @@ -11264,7 +11270,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v3.9.1" + "source": "https://github.com/larastan/larastan/tree/v3.9.2" }, "funding": [ { @@ -11272,20 +11278,20 @@ "type": "github" } ], - "time": "2026-01-21T09:15:17+00:00" + "time": "2026-01-30T15:16:32+00:00" }, { "name": "laravel/pint", - "version": "v1.27.0", + "version": "v1.27.1", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "c67b4195b75491e4dfc6b00b1c78b68d86f54c90" + "reference": "54cca2de13790570c7b6f0f94f37896bee4abcb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/c67b4195b75491e4dfc6b00b1c78b68d86f54c90", - "reference": "c67b4195b75491e4dfc6b00b1c78b68d86f54c90", + "url": "https://api.github.com/repos/laravel/pint/zipball/54cca2de13790570c7b6f0f94f37896bee4abcb5", + "reference": "54cca2de13790570c7b6f0f94f37896bee4abcb5", "shasum": "" }, "require": { @@ -11296,13 +11302,13 @@ "php": "^8.2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.92.4", - "illuminate/view": "^12.44.0", - "larastan/larastan": "^3.8.1", - "laravel-zero/framework": "^12.0.4", + "friendsofphp/php-cs-fixer": "^3.93.1", + "illuminate/view": "^12.51.0", + "larastan/larastan": "^3.9.2", + "laravel-zero/framework": "^12.0.5", "mockery/mockery": "^1.6.12", "nunomaduro/termwind": "^2.3.3", - "pestphp/pest": "^3.8.4" + "pestphp/pest": "^3.8.5" }, "bin": [ "builds/pint" @@ -11339,32 +11345,32 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2026-01-05T16:49:17+00:00" + "time": "2026-02-10T20:00:20+00:00" }, { "name": "laravel/sail", - "version": "v1.52.0", + "version": "v1.53.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "64ac7d8abb2dbcf2b76e61289451bae79066b0b3" + "reference": "e340eaa2bea9b99192570c48ed837155dbf24fbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/64ac7d8abb2dbcf2b76e61289451bae79066b0b3", - "reference": "64ac7d8abb2dbcf2b76e61289451bae79066b0b3", + "url": "https://api.github.com/repos/laravel/sail/zipball/e340eaa2bea9b99192570c48ed837155dbf24fbb", + "reference": "e340eaa2bea9b99192570c48ed837155dbf24fbb", "shasum": "" }, "require": { - "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0", - "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0", - "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0|^13.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0|^13.0", "php": "^8.0", - "symfony/console": "^6.0|^7.0", - "symfony/yaml": "^6.0|^7.0" + "symfony/console": "^6.0|^7.0|^8.0", + "symfony/yaml": "^6.0|^7.0|^8.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0", "phpstan/phpstan": "^2.0" }, "bin": [ @@ -11402,7 +11408,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2026-01-01T02:46:03+00:00" + "time": "2026-02-06T12:16:02+00:00" }, { "name": "mockery/mockery", @@ -11549,39 +11555,36 @@ }, { "name": "nunomaduro/collision", - "version": "v8.8.3", + "version": "v8.9.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4" + "reference": "a1ed3fa530fd60bc515f9303e8520fcb7d4bd935" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/1dc9e88d105699d0fee8bb18890f41b274f6b4c4", - "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/a1ed3fa530fd60bc515f9303e8520fcb7d4bd935", + "reference": "a1ed3fa530fd60bc515f9303e8520fcb7d4bd935", "shasum": "" }, "require": { - "filp/whoops": "^2.18.1", - "nunomaduro/termwind": "^2.3.1", + "filp/whoops": "^2.18.4", + "nunomaduro/termwind": "^2.4.0", "php": "^8.2.0", - "symfony/console": "^7.3.0" + "symfony/console": "^7.4.4 || ^8.0.4" }, "conflict": { - "laravel/framework": "<11.44.2 || >=13.0.0", - "phpunit/phpunit": "<11.5.15 || >=13.0.0" + "laravel/framework": "<11.48.0 || >=14.0.0", + "phpunit/phpunit": "<11.5.50 || >=14.0.0" }, "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", - "laravel/tinker": "^2.10.1", - "orchestra/testbench-core": "^9.12.0 || ^10.4", - "pestphp/pest": "^3.8.2 || ^4.0.0", - "sebastian/environment": "^7.2.1 || ^8.0" + "brianium/paratest": "^7.8.5", + "larastan/larastan": "^3.9.2", + "laravel/framework": "^11.48.0 || ^12.52.0", + "laravel/pint": "^1.27.1", + "orchestra/testbench-core": "^9.12.0 || ^10.9.0", + "pestphp/pest": "^3.8.5 || ^4.4.1 || ^5.0.0", + "sebastian/environment": "^7.2.1 || ^8.0.3 || ^9.0.0" }, "type": "library", "extra": { @@ -11644,7 +11647,7 @@ "type": "patreon" } ], - "time": "2025-11-20T02:55:25+00:00" + "time": "2026-02-17T17:33:08+00:00" }, { "name": "phar-io/manifest", @@ -11887,11 +11890,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.37", + "version": "2.1.39", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/28cd424c5ea984128c95cfa7ea658808e8954e49", - "reference": "28cd424c5ea984128c95cfa7ea658808e8954e49", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c6f73a2af4cbcd99c931d0fb8f08548cc0fa8224", + "reference": "c6f73a2af4cbcd99c931d0fb8f08548cc0fa8224", "shasum": "" }, "require": { @@ -11936,7 +11939,7 @@ "type": "github" } ], - "time": "2026-01-24T08:21:55+00:00" + "time": "2026-02-11T14:48:56+00:00" }, { "name": "phpunit/php-code-coverage", @@ -12030,28 +12033,28 @@ }, { "name": "phpunit/php-file-iterator", - "version": "5.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", - "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903", + "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903", "shasum": "" }, "require": { "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -12079,15 +12082,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.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/phpunit/php-file-iterator", + "type": "tidelift" } ], - "time": "2024-08-27T05:02:59+00:00" + "time": "2026-02-02T13:52:54+00:00" }, { "name": "phpunit/php-invoker", @@ -12275,16 +12290,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.5.49", + "version": "11.5.55", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4f1750675ba411dd6c2d5fa8a3cca07f6742020e" + "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4f1750675ba411dd6c2d5fa8a3cca07f6742020e", - "reference": "4f1750675ba411dd6c2d5fa8a3cca07f6742020e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/adc7262fccc12de2b30f12a8aa0b33775d814f00", + "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00", "shasum": "" }, "require": { @@ -12299,7 +12314,7 @@ "phar-io/version": "^3.2.1", "php": ">=8.2", "phpunit/php-code-coverage": "^11.0.12", - "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-file-iterator": "^5.1.1", "phpunit/php-invoker": "^5.0.1", "phpunit/php-text-template": "^4.0.1", "phpunit/php-timer": "^7.0.1", @@ -12311,6 +12326,7 @@ "sebastian/exporter": "^6.3.2", "sebastian/global-state": "^7.0.2", "sebastian/object-enumerator": "^6.0.1", + "sebastian/recursion-context": "^6.0.3", "sebastian/type": "^5.1.3", "sebastian/version": "^5.0.2", "staabm/side-effects-detector": "^1.0.5" @@ -12356,7 +12372,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.49" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.55" }, "funding": [ { @@ -12380,7 +12396,7 @@ "type": "tidelift" } ], - "time": "2026-01-24T16:09:28+00:00" + "time": "2026-02-18T12:37:06+00:00" }, { "name": "sebastian/cli-parser", diff --git a/extensions/Others/CustomPages/resources/views/show.blade.php b/extensions/Others/CustomPages/resources/views/show.blade.php index cdeaa97aa..32c438895 100644 --- a/extensions/Others/CustomPages/resources/views/show.blade.php +++ b/extensions/Others/CustomPages/resources/views/show.blade.php @@ -1,137 +1,139 @@ -
Add up to 3 tags to organize and identify your server.
- - -Select color:
-- @php - $message = $statuses[$server->status]['message'] ?? "This server is currently inactive. Please view the Services tab in the Dashboard to see more information about the current state of this server. If more information is required, please contact support via the support portal under Tickets. This message can be displayed after a service is suspended, cancelled, revoked, or potentially in error. If you believe this message has been displayed in error, please contact us via a ticket and be sure to include the following information: VM{$server->vm_id}-ID{$server->id}-{$server->status}."; -@endphp - - {{ $message }} -
-Add up to 3 tags to organize and identify your server.
+ + +Select color:
++ @php + $message = $statuses[$server->status]['message'] ?? "This server is currently inactive. Please view the Services tab in the Dashboard to see more information about the current state of this server. If more information is required, please contact support via the support portal under Tickets. This message can be displayed after a service is suspended, cancelled, revoked, or potentially in error. If you believe this message has been displayed in error, please contact us via a ticket and be sure to include the following information: VM{$server->vm_id}-ID{$server->id}-{$server->status}."; +@endphp + + {{ $message }} +
+- Hostname, password, and networking settings are configured automatically via cloud-init. - This applies to standard operating system installations that support cloud-init. However, if you are: -
-- You will need to manually configure networking, security settings, and hostname within the operating system, as cloud-init will not be available in these scenarios. -
-Instantly compare what this service is entitled to with how much it is consuming right now.
-Values refresh alongside the live status poll.
-{{ $resource['label'] }}
-{{ $resource['usage_summary'] }}
-{{ $resource['entitlement_label'] }}
-{{ $resource['description'] }}
-Configuration and access information
-Real-time bandwidth monitoring • Updates every 30 seconds
-Loading live network statistics…
-IPv6 DNS records for your server
-IPv6-based DNS records for {{ $server->primaryIpv6->ip }}
- -
- @ points the root domain directly to the server IP ({{ $server->primaryIpv6->ip }})
- *.@ points all subdomains (wildcard) to the same IP ({{ $server->primaryIpv6->ip }})
-
- @ — Represents the root domain (also called the apex domain).
- This means the base domain name (e.g. example.com) will point directly to the server IP.
-
- *.@ — Represents a wildcard record.
- This ensures that any subdomain also points to the same server IP.
-
-
- Together, using both @ and *.@ ensures that your server will respond to requests for the root domain and all possible subdomains.
-
- rDNS PTR Records: Please make note that at no time will PTR records be generated for any IP address via the RIR systems. No exceptions will be made other than for direct contract business customers due to the security risks involved with allowing arbitrary PTR records to be set and the potential for abuse.
-
-
Store notes about this server, Markdown is supported. (These do not persist reinstalls)
-No notes stored. Click Edit to add notes.
- @endif -Installation and configuration notes
-- Windows Server Networking (IPv4/IPv6 Setup): -
-- Cloud-init does not automatically configure IPv4 or IPv6 networking on Windows Server installations. Please configure the addresses manually as assigned in the control panel of your installation. -
-- Windows Server Activation (Licensing): -
-- No Windows Server license key is provided by Virtnet.bond. It is the responsibility of the account holder - to provide and maintain active and compliant licensing with all Windows Server products. -
-- Periodic Licensing Audits and User Compliance: -
-- Virtnet.bond reserves the right to perform periodic audits of Windows Server installations to ensure compliance with Microsoft's licensing terms. Non-compliant installations may be subject to suspension or termination. If you have any questions regarding licensing compliance, please contact our support team. -
-+ Hostname, password, and networking settings are configured automatically via cloud-init. + This applies to standard operating system installations that support cloud-init. However, if you are: +
++ You will need to manually configure networking, security settings, and hostname within the operating system, as cloud-init will not be available in these scenarios. +
+Instantly compare what this service is entitled to with how much it is consuming right now.
+Values refresh alongside the live status poll.
+{{ $resource['label'] }}
+{{ $resource['usage_summary'] }}
+{{ $resource['entitlement_label'] }}
+{{ $resource['description'] }}
+Configuration and access information
+Real-time bandwidth monitoring • Updates every 30 seconds
+Loading live network statistics…
+IPv6 DNS records for your server
+IPv6-based DNS records for {{ $server->primaryIpv6->ip }}
+ +
+ @ points the root domain directly to the server IP ({{ $server->primaryIpv6->ip }})
+ *.@ points all subdomains (wildcard) to the same IP ({{ $server->primaryIpv6->ip }})
+
+ @ — Represents the root domain (also called the apex domain).
+ This means the base domain name (e.g. example.com) will point directly to the server IP.
+
+ *.@ — Represents a wildcard record.
+ This ensures that any subdomain also points to the same server IP.
+
+
+ Together, using both @ and *.@ ensures that your server will respond to requests for the root domain and all possible subdomains.
+
+ rDNS PTR Records: Please make note that at no time will PTR records be generated for any IP address via the RIR systems. No exceptions will be made other than for direct contract business customers due to the security risks involved with allowing arbitrary PTR records to be set and the potential for abuse.
+
+
Store notes about this server, Markdown is supported. (These do not persist reinstalls)
+No notes stored. Click Edit to add notes.
+ @endif +Installation and configuration notes
++ Windows Server Networking (IPv4/IPv6 Setup): +
++ Cloud-init does not automatically configure IPv4 or IPv6 networking on Windows Server installations. Please configure the addresses manually as assigned in the control panel of your installation. +
++ Windows Server Activation (Licensing): +
++ No Windows Server license key is provided by Virtnet.bond. It is the responsibility of the account holder + to provide and maintain active and compliant licensing with all Windows Server products. +
++ Periodic Licensing Audits and User Compliance: +
++ Virtnet.bond reserves the right to perform periodic audits of Windows Server installations to ensure compliance with Microsoft's licensing terms. Non-compliant installations may be subject to suspension or termination. If you have any questions regarding licensing compliance, please contact our support team. +
+- Monitor your server's performance metrics and resource utilization over time. -
-|
-
- Date & Time
-
- |
-
-
- Status
-
- |
-
-
- CPU
-
- |
-
-
- Memory
-
- |
-
-
- Disk
-
- |
-
-
- Network In
-
- |
-
-
- Network Out
-
- |
-
-
- Disk I/O
-
- |
-
-
- Uptime
-
- |
- Actions | -
|---|---|---|---|---|---|---|---|---|---|
|
- {{ $stat->DateTime?->format('M d, Y') ?? '-' }}
- {{ $stat->DateTime?->format('H:i:s') ?? '' }}
- |
- - @if($stat->vmstatus) - - {{ ucfirst($stat->vmstatus) }} - - @else - - - @endif - | -
-
-
-
-
-
- {{ number_format($cpuPercent, 1) }}%
- |
-
-
-
-
-
-
- {{ number_format($memPercent, 1) }}%
- |
-
- @if(($stat->diskmax ?? 0) > 0 && ($stat->diskused ?? 0) > 0)
-
-
- @else
- N/A
- @endif
-
-
-
- {{ number_format($diskPercent, 1) }}%
- |
-
-
-
- @if($networkStats['netin_rate'] > 0)
- {{ Illuminate\Support\Number::fileSize(bytes: (int)$networkStats['netin_rate']) }}/s
- @endif
- |
-
-
-
- @if($networkStats['netout_rate'] > 0)
- {{ Illuminate\Support\Number::fileSize(bytes: (int)$networkStats['netout_rate']) }}/s
- @endif
- |
-
-
-
-
-
-
-
- |
- - @if($stat->uptime > 0) - {{ $this->formatUptime($stat->uptime) }} - @else - - - @endif - | -- - | -
|
-
-
-
-
-
-
- No statistics available -Statistics are collected every 5 minutes automatically. - |
- |||||||||
| - |
-
- Type
-
- |
-
-
- Status
-
- |
-
-
- Start Time
-
- |
-
-
- End Time
-
- |
-
-
- Duration
-
- |
-
|---|---|---|---|---|---|
| - - | -- {{ $task['type'] ?? 'N/A' }} - | -- @if(isset($task['status'])) - @if($task['status'] === 'OK') - - Success - - @else - - Failure - - @endif - @else - - - @endif - | -
- @if($startTime)
- {{ $startTime->format('M d, Y') }}
- {{ $startTime->format('H:i:s') }}
- @else
- -
- @endif
- |
-
- @if($endTime)
- {{ $endTime->format('M d, Y') }}
- {{ $endTime->format('H:i:s') }}
- @else
- -
- @endif
- |
- - @if($duration !== null) - {{ $this->formatUptime($duration) }} - @else - - - @endif - | -
|
-
-
-
-
-
-
- |
- |||||
|
-
-
-
-
-
-
- No task history available -Task history will appear here as tasks are executed on the server. - |
- |||||
| - |
-
- Type
-
- |
-
-
- Status
-
- |
-
-
- Start Time
-
- |
-
-
- End Time
-
- |
-
-
- Duration
-
- |
-
|---|---|---|---|---|---|
| - - | -- {{ $event['label'] ?? 'N/A' }} - | -- @if(isset($event['status'])) - @if(strtolower($event['status']) === 'ok') - - Success - - @elseif(strtolower($event['status']) === 'running') - - Running - - @else - - Failure - - @endif - @else - - - @endif - | -
- @if($startTime)
- {{ $startTime->format('M d, Y') }}
- {{ $startTime->format('H:i:s') }}
- @else
- -
- @endif
- |
-
- @if($endTime)
- {{ $endTime->format('M d, Y') }}
- {{ $endTime->format('H:i:s') }}
- @else
- -
- @endif
- |
- - @if($duration !== null) - {{ $this->formatUptime($duration) }} - @else - - - @endif - | -
|
-
-
-
-
-
- |
- |||||
|
-
-
-
-
-
-
- No lifecycle events available -Lifecycle events will appear here as operations are performed on the server. - |
- |||||
| Metric | -
-
-
- |
-
-
-
- |
- Change | -
|---|---|---|---|
|
-
-
- |
- - {{ number_format($diff['cpu']['historical_percent'], 1) }}% - | -- {{ number_format($diff['cpu']['current_percent'], 1) }}% - | -- - {{ $diff['cpu']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['cpu']['percent_change'], 1) }}% - - | -
|
-
-
- |
- - {{ number_format($diff['memory']['historical_percent'], 1) }}% - | -- {{ number_format($diff['memory']['current_percent'], 1) }}% - | -- - {{ $diff['memory']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['memory']['percent_change'], 1) }}% - - | -
|
-
-
- |
- - {{ $this->formatBytes($diff['disk_read']['historical_rate']) }}/s - | -- {{ $this->formatBytes($diff['disk_read']['current_rate']) }}/s - | -- - {{ $diff['disk_read']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['disk_read']['percent_change'], 1) }}% - - | -
|
-
-
- |
- - {{ $this->formatBytes($diff['disk_write']['historical_rate']) }}/s - | -- {{ $this->formatBytes($diff['disk_write']['current_rate']) }}/s - | -- - {{ $diff['disk_write']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['disk_write']['percent_change'], 1) }}% - - | -
|
-
-
- |
- - {{ $this->formatBytes($diff['network_in']['historical_rate']) }}/s - | -- {{ $this->formatBytes($diff['network_in']['current_rate']) }}/s - | -- - {{ $diff['network_in']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['network_in']['percent_change'], 1) }}% - - | -
|
-
-
- |
- - {{ $this->formatBytes($diff['network_out']['historical_rate']) }}/s - | -- {{ $this->formatBytes($diff['network_out']['current_rate']) }}/s - | -- - {{ $diff['network_out']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['network_out']['percent_change'], 1) }}% - - | -
{{ $historicalComparison['message'] }}
- @if(isset($historicalComparison['total_stats'])) -- Total statistics in database: {{ $historicalComparison['total_stats'] }} - @if($historicalComparison['total_stats'] == 0) - - Statistics are collected automatically every hour. You can also create manual statistics using the "Create Statistics" button above. - @elseif($historicalComparison['total_stats'] < 2) - - At least 2 statistics are needed for comparison. Wait for more data to be collected or create a manual statistic. - @endif -
- @endif -No comparison data available
-Please select periods with available statistics data.
-- Deep visibility into firewall sessions, security threats, and top consumers of bandwidth powered by the Core Router API. -
-- Fetching data from Core Router... - reload page -
-{{ $networkAnalysis['error'] }}
-Ensure the Core Router API credentials are configured in your environment.
-|
-
- Direction
-
- |
-
-
- Protocol
-
- |
-
-
- Source
-
- |
-
-
- Destination
-
- |
-
-
- State
-
- |
-
-
- Traffic
-
- |
-
|---|---|---|---|---|---|
|
- @php
- $direction = $connection['direction'] ?? '—';
- @endphp
- @if($direction !== '—')
-
- {{ $direction }}
-
- @else
- —
- @endif
-
-
-
-
-
-
-
- |
-
- @php
- $protocol = $connection['protocol'] ?? '—';
- @endphp
- @if($protocol !== '—')
-
- {{ $protocol }}
-
- @else
- —
- @endif
-
-
-
-
-
-
-
- |
-
- @php
- $sourceIP = $connection['source'] ?? '—';
- $isSourcePublic = $sourceIP !== '—' && $this->checkIsPublicIP($sourceIP);
- @endphp
-
- {{ $sourceIP }}
- @if($isSourcePublic)
-
- @if(isset($connection['source_port']))
- {{ $connection['source_port'] }}
- @endif
-
-
-
-
-
- @endif
- |
-
- @php
- $destIP = $connection['destination'] ?? '—';
- $isDestPublic = $destIP !== '—' && $this->checkIsPublicIP($destIP);
- @endphp
-
- {{ $destIP }}
- @if($isDestPublic)
-
- @if(isset($connection['destination_port']))
- {{ $connection['destination_port'] }}
- @endif
-
-
-
-
-
- @endif
- |
-
- @php
- $state = $connection['state'] ?? '—';
- @endphp
- @if($state !== '—')
-
-
- {{ $state }}
-
-
- @else
- —
- @endif
-
-
-
-
-
-
-
- |
-
-
- {{ $connection['bytes_human'] ?? '—' }}
- @if(isset($connection['packets']))
- {{ number_format($connection['packets']) }} packets
- @endif
-
- |
-
|
-
- Endpoint
-
- |
-
-
- Port
-
- |
-
-
- Connections
-
- |
-
-
- Traffic
-
- |
-
|---|---|---|---|
|
- @php
- $isEndpointPublic = $endpointIP !== '—' && $this->checkIsPublicIP($endpointIP);
- @endphp
-
- {{ $endpointIP }}
- @if($isEndpointPublic)
-
-
-
-
-
-
- @endif
- |
-
- @if(isset($row['port']) && $row['port'] !== '—')
-
- {{ $row['port'] }}
-
- @else
- —
- @endif
-
-
-
-
-
-
-
- |
- {{ number_format($row['count']) }} | -
-
- {{ $row['bytes_human'] }}
- {{ number_format($row['packets']) }} packets
-
- |
-
|
-
- Port
-
- |
-
-
- Connections
-
- |
-
-
- Traffic
-
- |
-
|---|---|---|
|
-
- {{ $row['port'] }}
-
-
-
-
-
-
-
-
- |
- {{ number_format($row['connections']) }} | -
-
- {{ $row['bytes_human'] }}
- {{ number_format($row['packets']) }} packets
-
- |
-
- {{ $warning['threat'] }} - @if(isset($warning['quantity']) && $warning['quantity'] > 1) - ({{ $warning['quantity'] }} similar connection{{ $warning['quantity'] > 1 ? 's' : '' }} detected) - @endif -
- @php - $threatIP = $warning['ip'] ?? '—'; - $isThreatPublic = $threatIP !== '—' && $this->checkIsPublicIP($threatIP); - @endphp -+ Monitor your server's performance metrics and resource utilization over time. +
+|
+
+ Date & Time
+
+ |
+
+
+ Status
+
+ |
+
+
+ CPU
+
+ |
+
+
+ Memory
+
+ |
+
+
+ Disk
+
+ |
+
+
+ Network In
+
+ |
+
+
+ Network Out
+
+ |
+
+
+ Disk I/O
+
+ |
+
+
+ Uptime
+
+ |
+ Actions | +
|---|---|---|---|---|---|---|---|---|---|
|
+ {{ $stat->DateTime?->format('M d, Y') ?? '-' }}
+ {{ $stat->DateTime?->format('H:i:s') ?? '' }}
+ |
+ + @if($stat->vmstatus) + + {{ ucfirst($stat->vmstatus) }} + + @else + - + @endif + | +
+
+
+
+
+
+ {{ number_format($cpuPercent, 1) }}%
+ |
+
+
+
+
+
+
+ {{ number_format($memPercent, 1) }}%
+ |
+
+ @if(($stat->diskmax ?? 0) > 0 && ($stat->diskused ?? 0) > 0)
+
+
+ @else
+ N/A
+ @endif
+
+
+
+ {{ number_format($diskPercent, 1) }}%
+ |
+
+
+
+ @if($networkStats['netin_rate'] > 0)
+ {{ Illuminate\Support\Number::fileSize(bytes: (int)$networkStats['netin_rate']) }}/s
+ @endif
+ |
+
+
+
+ @if($networkStats['netout_rate'] > 0)
+ {{ Illuminate\Support\Number::fileSize(bytes: (int)$networkStats['netout_rate']) }}/s
+ @endif
+ |
+
+
+
+
+
+
+
+ |
+ + @if($stat->uptime > 0) + {{ $this->formatUptime($stat->uptime) }} + @else + - + @endif + | ++ + | +
|
+
+
+
+
+
+
+ No statistics available +Statistics are collected every 5 minutes automatically. + |
+ |||||||||
| + |
+
+ Type
+
+ |
+
+
+ Status
+
+ |
+
+
+ Start Time
+
+ |
+
+
+ End Time
+
+ |
+
+
+ Duration
+
+ |
+
|---|---|---|---|---|---|
| + + | ++ {{ $task['type'] ?? 'N/A' }} + | ++ @if(isset($task['status'])) + @if($task['status'] === 'OK') + + Success + + @else + + Failure + + @endif + @else + - + @endif + | +
+ @if($startTime)
+ {{ $startTime->format('M d, Y') }}
+ {{ $startTime->format('H:i:s') }}
+ @else
+ -
+ @endif
+ |
+
+ @if($endTime)
+ {{ $endTime->format('M d, Y') }}
+ {{ $endTime->format('H:i:s') }}
+ @else
+ -
+ @endif
+ |
+ + @if($duration !== null) + {{ $this->formatUptime($duration) }} + @else + - + @endif + | +
|
+
+
+
+
+
+
+ |
+ |||||
|
+
+
+
+
+
+
+ No task history available +Task history will appear here as tasks are executed on the server. + |
+ |||||
| + |
+
+ Type
+
+ |
+
+
+ Status
+
+ |
+
+
+ Start Time
+
+ |
+
+
+ End Time
+
+ |
+
+
+ Duration
+
+ |
+
|---|---|---|---|---|---|
| + + | ++ {{ $event['label'] ?? 'N/A' }} + | ++ @if(isset($event['status'])) + @if(strtolower($event['status']) === 'ok') + + Success + + @elseif(strtolower($event['status']) === 'running') + + Running + + @else + + Failure + + @endif + @else + - + @endif + | +
+ @if($startTime)
+ {{ $startTime->format('M d, Y') }}
+ {{ $startTime->format('H:i:s') }}
+ @else
+ -
+ @endif
+ |
+
+ @if($endTime)
+ {{ $endTime->format('M d, Y') }}
+ {{ $endTime->format('H:i:s') }}
+ @else
+ -
+ @endif
+ |
+ + @if($duration !== null) + {{ $this->formatUptime($duration) }} + @else + - + @endif + | +
|
+
+
+
+
+
+ |
+ |||||
|
+
+
+
+
+
+
+ No lifecycle events available +Lifecycle events will appear here as operations are performed on the server. + |
+ |||||
| Metric | +
+
+
+ |
+
+
+
+ |
+ Change | +
|---|---|---|---|
|
+
+
+ |
+ + {{ number_format($diff['cpu']['historical_percent'], 1) }}% + | ++ {{ number_format($diff['cpu']['current_percent'], 1) }}% + | ++ + {{ $diff['cpu']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['cpu']['percent_change'], 1) }}% + + | +
|
+
+
+ |
+ + {{ number_format($diff['memory']['historical_percent'], 1) }}% + | ++ {{ number_format($diff['memory']['current_percent'], 1) }}% + | ++ + {{ $diff['memory']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['memory']['percent_change'], 1) }}% + + | +
|
+
+
+ |
+ + {{ $this->formatBytes($diff['disk_read']['historical_rate']) }}/s + | ++ {{ $this->formatBytes($diff['disk_read']['current_rate']) }}/s + | ++ + {{ $diff['disk_read']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['disk_read']['percent_change'], 1) }}% + + | +
|
+
+
+ |
+ + {{ $this->formatBytes($diff['disk_write']['historical_rate']) }}/s + | ++ {{ $this->formatBytes($diff['disk_write']['current_rate']) }}/s + | ++ + {{ $diff['disk_write']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['disk_write']['percent_change'], 1) }}% + + | +
|
+
+
+ |
+ + {{ $this->formatBytes($diff['network_in']['historical_rate']) }}/s + | ++ {{ $this->formatBytes($diff['network_in']['current_rate']) }}/s + | ++ + {{ $diff['network_in']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['network_in']['percent_change'], 1) }}% + + | +
|
+
+
+ |
+ + {{ $this->formatBytes($diff['network_out']['historical_rate']) }}/s + | ++ {{ $this->formatBytes($diff['network_out']['current_rate']) }}/s + | ++ + {{ $diff['network_out']['percent_change'] > 0 ? '+' : '' }}{{ number_format($diff['network_out']['percent_change'], 1) }}% + + | +
{{ $historicalComparison['message'] }}
+ @if(isset($historicalComparison['total_stats'])) ++ Total statistics in database: {{ $historicalComparison['total_stats'] }} + @if($historicalComparison['total_stats'] == 0) + - Statistics are collected automatically every hour. You can also create manual statistics using the "Create Statistics" button above. + @elseif($historicalComparison['total_stats'] < 2) + - At least 2 statistics are needed for comparison. Wait for more data to be collected or create a manual statistic. + @endif +
+ @endif +No comparison data available
+Please select periods with available statistics data.
++ Deep visibility into firewall sessions, security threats, and top consumers of bandwidth powered by the Core Router API. +
++ Fetching data from Core Router... + reload page +
+{{ $networkAnalysis['error'] }}
+Ensure the Core Router API credentials are configured in your environment.
+|
+
+ Direction
+
+ |
+
+
+ Protocol
+
+ |
+
+
+ Source
+
+ |
+
+
+ Destination
+
+ |
+
+
+ State
+
+ |
+
+
+ Traffic
+
+ |
+
|---|---|---|---|---|---|
|
+ @php
+ $direction = $connection['direction'] ?? '—';
+ @endphp
+ @if($direction !== '—')
+
+ {{ $direction }}
+
+ @else
+ —
+ @endif
+
+
+
+
+
+
+
+ |
+
+ @php
+ $protocol = $connection['protocol'] ?? '—';
+ @endphp
+ @if($protocol !== '—')
+
+ {{ $protocol }}
+
+ @else
+ —
+ @endif
+
+
+
+
+
+
+
+ |
+
+ @php
+ $sourceIP = $connection['source'] ?? '—';
+ $isSourcePublic = $sourceIP !== '—' && $this->checkIsPublicIP($sourceIP);
+ @endphp
+
+ {{ $sourceIP }}
+ @if($isSourcePublic)
+
+ @if(isset($connection['source_port']))
+ {{ $connection['source_port'] }}
+ @endif
+
+
+
+
+
+ @endif
+ |
+
+ @php
+ $destIP = $connection['destination'] ?? '—';
+ $isDestPublic = $destIP !== '—' && $this->checkIsPublicIP($destIP);
+ @endphp
+
+ {{ $destIP }}
+ @if($isDestPublic)
+
+ @if(isset($connection['destination_port']))
+ {{ $connection['destination_port'] }}
+ @endif
+
+
+
+
+
+ @endif
+ |
+
+ @php
+ $state = $connection['state'] ?? '—';
+ @endphp
+ @if($state !== '—')
+
+
+ {{ $state }}
+
+
+ @else
+ —
+ @endif
+
+
+
+
+
+
+
+ |
+
+
+ {{ $connection['bytes_human'] ?? '—' }}
+ @if(isset($connection['packets']))
+ {{ number_format($connection['packets']) }} packets
+ @endif
+
+ |
+
|
+
+ Endpoint
+
+ |
+
+
+ Port
+
+ |
+
+
+ Connections
+
+ |
+
+
+ Traffic
+
+ |
+
|---|---|---|---|
|
+ @php
+ $isEndpointPublic = $endpointIP !== '—' && $this->checkIsPublicIP($endpointIP);
+ @endphp
+
+ {{ $endpointIP }}
+ @if($isEndpointPublic)
+
+
+
+
+
+
+ @endif
+ |
+
+ @if(isset($row['port']) && $row['port'] !== '—')
+
+ {{ $row['port'] }}
+
+ @else
+ —
+ @endif
+
+
+
+
+
+
+
+ |
+ {{ number_format($row['count']) }} | +
+
+ {{ $row['bytes_human'] }}
+ {{ number_format($row['packets']) }} packets
+
+ |
+
|
+
+ Port
+
+ |
+
+
+ Connections
+
+ |
+
+
+ Traffic
+
+ |
+
|---|---|---|
|
+
+ {{ $row['port'] }}
+
+
+
+
+
+
+
+
+ |
+ {{ number_format($row['connections']) }} | +
+
+ {{ $row['bytes_human'] }}
+ {{ number_format($row['packets']) }} packets
+
+ |
+
+ {{ $warning['threat'] }} + @if(isset($warning['quantity']) && $warning['quantity'] > 1) + ({{ $warning['quantity'] }} similar connection{{ $warning['quantity'] > 1 ? 's' : '' }} detected) + @endif +
+ @php + $threatIP = $warning['ip'] ?? '—'; + $isThreatPublic = $threatIP !== '—' && $this->checkIsPublicIP($threatIP); + @endphp +- {{ theme('homepage_hero_desc', 'Experience enterprise-grade virtual private servers with our powerful control panel. Real-time monitoring, advanced firewall management, automated backups, and full console access.') }} -
- - - -What We Offer
-- {{ theme('services_subtitle', 'Choose the perfect option for your needs — all with full control panel access for all services we offer to give you total control') }} -
-Control Panel
-- {{ theme('panel_subtitle', 'Take full control of your VPS with our comprehensive management dashboard. Every tool you need, right at your fingertips.') }} -
-Monitor CPU, memory, network, and disk I/O with interactive charts. Track performance over time.
-Direct web-based access to your VPS. Perfect for OS installation and recovery mode.
-Create custom rules, manage IP aliases, and monitor real-time traffic logs to protect your server.
-Automated daily snapshots with instant one-click restore. Keep your data safe with point-in-time recovery.
-Add, resize, or remove virtual disks on the fly. Expand storage without downtime.
-Full control over your server's power state. Start, stop, reboot, or force power cycle instantly.
-{{ $feat['desc'] }}
-Infrastructure
-- {{ theme('features_subtitle', 'We\'ve built a platform that is advanced enough to compete with the large players of the industry at a fraction of the cost.') }} -
-{{ $item['desc'] }}
-Get Started
-- {{ theme('cta_subtitle', 'Join thousands of users who trust our platform for reliable, high-performance virtual servers with full control panel access') }} -
- -+ {{ theme('homepage_hero_desc', 'Experience enterprise-grade virtual private servers with our powerful control panel. Real-time monitoring, advanced firewall management, automated backups, and full console access.') }} +
+ + + +What We Offer
++ {{ theme('services_subtitle', 'Choose the perfect option for your needs — all with full control panel access for all services we offer to give you total control') }} +
+Control Panel
++ {{ theme('panel_subtitle', 'Take full control of your VPS with our comprehensive management dashboard. Every tool you need, right at your fingertips.') }} +
+Monitor CPU, memory, network, and disk I/O with interactive charts. Track performance over time.
+Direct web-based access to your VPS. Perfect for OS installation and recovery mode.
+Create custom rules, manage IP aliases, and monitor real-time traffic logs to protect your server.
+Automated daily snapshots with instant one-click restore. Keep your data safe with point-in-time recovery.
+Add, resize, or remove virtual disks on the fly. Expand storage without downtime.
+Full control over your server's power state. Start, stop, reboot, or force power cycle instantly.
+{{ $feat['desc'] }}
+Infrastructure
++ {{ theme('features_subtitle', 'We\'ve built a platform that is advanced enough to compete with the large players of the industry at a fraction of the cost.') }} +
+{{ $item['desc'] }}
+Get Started
++ {{ theme('cta_subtitle', 'Join thousands of users who trust our platform for reliable, high-performance virtual servers with full control panel access') }} +
+ +