diff --git a/README.md b/README.md
index 1ebf3b22..6b83639d 100644
--- a/README.md
+++ b/README.md
@@ -4,13 +4,13 @@
- Stripe Integration
- Referral System
- Ticket System
-- Upgrade/Downgrade Server Ressources
+- Upgrade/Downgrade Server Resources
- Store (credit system with hourly billing and invoices)
- Email Verification
- Audit Log
- Admin Dashboard
- User/Server Management
-- Customizable server plans
+- Customisable server plans
- Vouchers
- and so much more!
diff --git a/app/Classes/Pterodactyl.php b/app/Classes/Pterodactyl.php
index 95893dca..89ae028c 100644
--- a/app/Classes/Pterodactyl.php
+++ b/app/Classes/Pterodactyl.php
@@ -5,8 +5,9 @@ namespace App\Classes;
use App\Models\Egg;
use App\Models\Nest;
use App\Models\Node;
-use App\Models\Server;
use App\Models\Product;
+use App\Models\Server;
+use App\Models\User;
use Exception;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Http\Client\Response;
@@ -22,136 +23,160 @@ class Pterodactyl
public static function client()
{
return Http::withHeaders([
- 'Authorization' => 'Bearer ' . config("SETTINGS::SYSTEM:PTERODACTYL:TOKEN"),
- 'Content-type' => 'application/json',
- 'Accept' => 'Application/vnd.pterodactyl.v1+json',
- ])->baseUrl(config("SETTINGS::SYSTEM:PTERODACTYL:URL") . '/api');
+ 'Authorization' => 'Bearer ' . config('SETTINGS::SYSTEM:PTERODACTYL:TOKEN'),
+ 'Content-type' => 'application/json',
+ 'Accept' => 'Application/vnd.pterodactyl.v1+json',
+ ])->baseUrl(config('SETTINGS::SYSTEM:PTERODACTYL:URL') . '/api');
}
public static function clientAdmin()
{
return Http::withHeaders([
- 'Authorization' => 'Bearer ' . config("SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN"),
- 'Content-type' => 'application/json',
- 'Accept' => 'Application/vnd.pterodactyl.v1+json',
- ])->baseUrl(config("SETTINGS::SYSTEM:PTERODACTYL:URL") . '/api');
+ 'Authorization' => 'Bearer ' . config('SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN'),
+ 'Content-type' => 'application/json',
+ 'Accept' => 'Application/vnd.pterodactyl.v1+json',
+ ])->baseUrl(config('SETTINGS::SYSTEM:PTERODACTYL:URL') . '/api');
}
+
/**
* @return Exception
*/
- private static function getException(string $message = "", int $status = 0): Exception
+ private static function getException(string $message = '', int $status = 0): Exception
{
if ($status == 404) {
- return new Exception("Ressource does not exist on pterodactyl - " . $message, 404);
+ return new Exception('Ressource does not exist on pterodactyl - ' . $message, 404);
}
if ($status == 403) {
- return new Exception("No permission on pterodactyl, check pterodactyl token and permissions - " . $message, 403);
+ return new Exception('No permission on pterodactyl, check pterodactyl token and permissions - ' . $message, 403);
}
if ($status == 401) {
- return new Exception("No pterodactyl token set - " . $message, 401);
+ return new Exception('No pterodactyl token set - ' . $message, 401);
}
if ($status == 500) {
- return new Exception("Pterodactyl server error - " . $message, 500);
+ return new Exception('Pterodactyl server error - ' . $message, 500);
}
return new Exception('Request Failed, is pterodactyl set-up correctly? - ' . $message);
}
/**
- * @param Nest $nest
+ * @param Nest $nest
* @return mixed
+ *
* @throws Exception
*/
public static function getEggs(Nest $nest)
{
try {
- $response = self::client()->get("/application/nests/{$nest->id}/eggs?include=nest,variables&per_page=" . config("SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT"));
+ $response = self::client()->get("/application/nests/{$nest->id}/eggs?include=nest,variables&per_page=" . config('SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT'));
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if ($response->failed()) throw self::getException("Failed to get eggs from pterodactyl - ", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to get eggs from pterodactyl - ', $response->status());
+ }
+
return $response->json()['data'];
}
/**
* @return mixed
+ *
* @throws Exception
*/
public static function getNodes()
{
try {
- $response = self::client()->get('/application/nodes?per_page=' . config("SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT"));
+ $response = self::client()->get('/application/nodes?per_page=' . config('SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT'));
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if ($response->failed()) throw self::getException("Failed to get nodes from pterodactyl - ", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to get nodes from pterodactyl - ', $response->status());
+ }
+
return $response->json()['data'];
}
/**
* @return mixed
+ *
* @throws Exception
* @description Returns the infos of a single node
*/
- public static function getNode($id) {
+ public static function getNode($id)
+ {
try {
$response = self::client()->get('/application/nodes/' . $id);
- } catch(Exception $e) {
- throw self::getException($e->getMessage());
- }
- if($response->failed()) throw self::getException("Failed to get node id " . $id . " - " . $response->status());
- return $response->json()['attributes'];
- }
-
-
-
- public static function getServers() {
- try {
- $response = self::client()->get('/application/servers?per_page=' . config("SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT"));
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if($response->failed()) throw self::getException("Failed to get list of servers - ", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to get node id ' . $id . ' - ' . $response->status());
+ }
+
+ return $response->json()['attributes'];
+ }
+
+ public static function getServers()
+ {
+ try {
+ $response = self::client()->get('/application/servers?per_page=' . config('SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT'));
+ } catch (Exception $e) {
+ throw self::getException($e->getMessage());
+ }
+ if ($response->failed()) {
+ throw self::getException('Failed to get list of servers - ', $response->status());
+ }
+
return $response->json()['data'];
}
/**
* @return null
+ *
* @throws Exception
*/
public static function getNests()
{
try {
- $response = self::client()->get('/application/nests?per_page=' . config("SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT"));
+ $response = self::client()->get('/application/nests?per_page=' . config('SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT'));
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if ($response->failed()) throw self::getException("Failed to get nests from pterodactyl", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to get nests from pterodactyl', $response->status());
+ }
+
return $response->json()['data'];
}
/**
* @return mixed
+ *
* @throws Exception
*/
public static function getLocations()
{
try {
- $response = self::client()->get('/application/locations?per_page=' . config("SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT"));
+ $response = self::client()->get('/application/locations?per_page=' . config('SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT'));
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if ($response->failed()) throw self::getException("Failed to get locations from pterodactyl - ", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to get locations from pterodactyl - ', $response->status());
+ }
return $response->json()['data'];
}
/**
- * @param Node $node
+ * @param Node $node
* @return mixed
+ *
* @throws Exception
*/
public static function getFreeAllocationId(Node $node)
@@ -160,8 +185,9 @@ class Pterodactyl
}
/**
- * @param Node $node
+ * @param Node $node
* @return array|mixed|null
+ *
* @throws Exception
*/
public static function getFreeAllocations(Node $node)
@@ -172,7 +198,9 @@ class Pterodactyl
if (isset($response['data'])) {
if (!empty($response['data'])) {
foreach ($response['data'] as $allocation) {
- if (!$allocation['attributes']['assigned']) array_push($freeAllocations, $allocation);
+ if (!$allocation['attributes']['assigned']) {
+ array_push($freeAllocations, $allocation);
+ }
}
}
}
@@ -181,8 +209,9 @@ class Pterodactyl
}
/**
- * @param Node $node
+ * @param Node $node
* @return array|mixed
+ *
* @throws Exception
*/
public static function getAllocations(Node $node)
@@ -193,51 +222,53 @@ class Pterodactyl
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if ($response->failed()) throw self::getException("Failed to get allocations from pterodactyl - ", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to get allocations from pterodactyl - ', $response->status());
+ }
return $response->json();
}
/**
- * @param String $route
+ * @param string $route
* @return string
*/
public static function url(string $route): string
{
- return config("SETTINGS::SYSTEM:PTERODACTYL:URL") . $route;
+ return config('SETTINGS::SYSTEM:PTERODACTYL:URL') . $route;
}
/**
- * @param Server $server
- * @param Egg $egg
- * @param int $allocationId
+ * @param Server $server
+ * @param Egg $egg
+ * @param int $allocationId
* @return Response
*/
public static function createServer(Server $server, Egg $egg, int $allocationId)
{
- return self::client()->post("/application/servers", [
- "name" => $server->name,
- "external_id" => $server->id,
- "user" => $server->user->pterodactyl_id,
- "egg" => $egg->id,
- "docker_image" => $egg->docker_image,
- "startup" => $egg->startup,
- "environment" => $egg->getEnvironmentVariables(),
- "limits" => [
- "memory" => $server->product->memory,
- "swap" => $server->product->swap,
- "disk" => $server->product->disk,
- "io" => $server->product->io,
- "cpu" => $server->product->cpu
+ return self::client()->post('/application/servers', [
+ 'name' => $server->name,
+ 'external_id' => $server->id,
+ 'user' => $server->user->pterodactyl_id,
+ 'egg' => $egg->id,
+ 'docker_image' => $egg->docker_image,
+ 'startup' => $egg->startup,
+ 'environment' => $egg->getEnvironmentVariables(),
+ 'limits' => [
+ 'memory' => $server->product->memory,
+ 'swap' => $server->product->swap,
+ 'disk' => $server->product->disk,
+ 'io' => $server->product->io,
+ 'cpu' => $server->product->cpu,
],
- "feature_limits" => [
- "databases" => $server->product->databases,
- "backups" => $server->product->backups,
- "allocations" => $server->product->allocations,
+ 'feature_limits' => [
+ 'databases' => $server->product->databases,
+ 'backups' => $server->product->backups,
+ 'allocations' => $server->product->allocations,
+ ],
+ 'allocation' => [
+ 'default' => $allocationId,
],
- "allocation" => [
- "default" => $allocationId
- ]
]);
}
@@ -248,7 +279,9 @@ class Pterodactyl
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if ($response->failed()) throw self::getException("Failed to suspend server from pterodactyl - ", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to suspend server from pterodactyl - ', $response->status());
+ }
return $response;
}
@@ -260,14 +293,17 @@ class Pterodactyl
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if ($response->failed()) throw self::getException("Failed to unsuspend server from pterodactyl - ", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to unsuspend server from pterodactyl - ', $response->status());
+ }
return $response;
}
/**
* Get user by pterodactyl id
- * @param int $pterodactylId
+ *
+ * @param int $pterodactylId
* @return mixed
*/
public function getUser(int $pterodactylId)
@@ -277,14 +313,17 @@ class Pterodactyl
} catch (Exception $e) {
throw self::getException($e->getMessage());
}
- if ($response->failed()) throw self::getException("Failed to get user from pterodactyl - ", $response->status());
+ if ($response->failed()) {
+ throw self::getException('Failed to get user from pterodactyl - ', $response->status());
+ }
return $response->json()['attributes'];
}
/**
* Get serverAttributes by pterodactyl id
- * @param int $pterodactylId
+ *
+ * @param int $pterodactylId
* @return mixed
*/
public static function getServerAttributes(int $pterodactylId, bool $deleteOn404 = false)
@@ -297,51 +336,70 @@ class Pterodactyl
//print response body
-
-
- if ($response->failed()){
- if($deleteOn404){ //Delete the server if it does not exist (server deleted on pterodactyl)
+ if ($response->failed()) {
+ if ($deleteOn404) { //Delete the server if it does not exist (server deleted on pterodactyl)
Server::where('pterodactyl_id', $pterodactylId)->first()->delete();
+
return;
+ } else {
+ throw self::getException('Failed to get server attributes from pterodactyl - ', $response->status());
}
- else throw self::getException("Failed to get server attributes from pterodactyl - ", $response->status());
}
+
return $response->json()['attributes'];
}
/**
* Update Server Resources
- * @param Server $server
- * @param Product $product
+ *
+ * @param Server $server
+ * @param Product $product
* @return Response
*/
public static function updateServer(Server $server, Product $product)
{
return self::client()->patch("/application/servers/{$server->pterodactyl_id}/build", [
- "allocation" => $server->allocation,
- "memory" => $product->memory,
- "swap" => $product->swap,
- "disk" => $product->disk,
- "io" => $product->io,
- "cpu" => $product->cpu,
- "threads" => null,
- "feature_limits" => [
- "databases" => $product->databases,
- "backups" => $product->backups,
- "allocations" => $product->allocations,
- ]
+ 'allocation' => $server->allocation,
+ 'memory' => $product->memory,
+ 'swap' => $product->swap,
+ 'disk' => $product->disk,
+ 'io' => $product->io,
+ 'cpu' => $product->cpu,
+ 'threads' => null,
+ 'feature_limits' => [
+ 'databases' => $product->databases,
+ 'backups' => $product->backups,
+ 'allocations' => $product->allocations,
+ ],
]);
}
+
+ /**
+ * Update the owner of a server
+ *
+ * @param int $userId
+ * @param Server $server
+ * @return mixed
+ */
+ public static function updateServerOwner(Server $server, int $userId)
+ {
+ return self::client()->patch("/application/servers/{$server->pterodactyl_id}/details", [
+ 'name' => $server->name,
+ 'user' => $userId,
+ ]);
+ }
+
/**
* Power Action Specific Server
- * @param Server $server
- * @param string $action
+ *
+ * @param Server $server
+ * @param string $action
* @return Response
*/
public static function powerAction(Server $server, $action)
{
return self::clientAdmin()->post("/client/servers/{$server->identifier}/power", [
- "signal" => $action
+ 'signal' => $action,
]);
}
@@ -350,16 +408,16 @@ class Pterodactyl
*/
public static function getClientUser()
{
- return self::clientAdmin()->get("/client/account");
+ return self::clientAdmin()->get('/client/account');
}
-
/**
* Check if node has enough free resources to allocate the given resources
- * @param Node $node
- * @param int $requireMemory
- * @param int $requireDisk
- * @return boolean
+ *
+ * @param Node $node
+ * @param int $requireMemory
+ * @param int $requireDisk
+ * @return bool
*/
public static function checkNodeResources(Node $node, int $requireMemory, int $requireDisk)
{
@@ -369,14 +427,15 @@ class Pterodactyl
throw self::getException($e->getMessage());
}
$node = $response['attributes'];
- $freeMemory = ($node['memory']*($node['memory_overallocate']+100)/100) - $node['allocated_resources']['memory'];
- $freeDisk = ($node['disk']*($node['disk_overallocate']+100)/100) - $node['allocated_resources']['disk'];
+ $freeMemory = ($node['memory'] * ($node['memory_overallocate'] + 100) / 100) - $node['allocated_resources']['memory'];
+ $freeDisk = ($node['disk'] * ($node['disk_overallocate'] + 100) / 100) - $node['allocated_resources']['disk'];
if ($freeMemory < $requireMemory) {
return false;
- }
- if ($freeDisk < $requireDisk) {
+ }
+ if ($freeDisk < $requireDisk) {
return false;
- }
- return true;
+ }
+
+ return true;
}
}
diff --git a/app/Classes/Settings/Invoices.php b/app/Classes/Settings/Invoices.php
index 425af60c..72a809da 100644
--- a/app/Classes/Settings/Invoices.php
+++ b/app/Classes/Settings/Invoices.php
@@ -10,9 +10,8 @@ class Invoices
{
public function __construct()
{
- return;
- }
+ }
public function updateSettings(Request $request)
{
@@ -22,29 +21,27 @@ class Invoices
$values = [
//SETTINGS::VALUE => REQUEST-VALUE (coming from the html-form)
- "SETTINGS::INVOICE:COMPANY_NAME" => "company-name",
- "SETTINGS::INVOICE:COMPANY_ADDRESS" => "company-address",
- "SETTINGS::INVOICE:COMPANY_PHONE" => "company-phone",
- "SETTINGS::INVOICE:COMPANY_MAIL" => "company-mail",
- "SETTINGS::INVOICE:COMPANY_VAT" => "company-vat",
- "SETTINGS::INVOICE:COMPANY_WEBSITE" => "company-web",
- "SETTINGS::INVOICE:PREFIX" => "invoice-prefix",
- "SETTINGS::INVOICE:ENABLED" => "enable-invoices",
+ 'SETTINGS::INVOICE:COMPANY_NAME' => 'company-name',
+ 'SETTINGS::INVOICE:COMPANY_ADDRESS' => 'company-address',
+ 'SETTINGS::INVOICE:COMPANY_PHONE' => 'company-phone',
+ 'SETTINGS::INVOICE:COMPANY_MAIL' => 'company-mail',
+ 'SETTINGS::INVOICE:COMPANY_VAT' => 'company-vat',
+ 'SETTINGS::INVOICE:COMPANY_WEBSITE' => 'company-web',
+ 'SETTINGS::INVOICE:PREFIX' => 'invoice-prefix',
+ 'SETTINGS::INVOICE:ENABLED' => 'enable-invoices',
];
foreach ($values as $key => $value) {
$param = $request->get($value);
Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]);
- Cache::forget("setting" . ':' . $key);
+ Cache::forget('setting'.':'.$key);
}
-
if ($request->hasFile('logo')) {
$request->file('logo')->storeAs('public', 'logo.png');
}
-
- return redirect(route('admin.settings.index') . '#invoices')->with('success', __('Invoice settings updated!'));
+ return redirect(route('admin.settings.index').'#invoices')->with('success', __('Invoice settings updated!'));
}
}
diff --git a/app/Classes/Settings/Language.php b/app/Classes/Settings/Language.php
index 5f9b87fe..4e2bc3c2 100644
--- a/app/Classes/Settings/Language.php
+++ b/app/Classes/Settings/Language.php
@@ -8,14 +8,12 @@ use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
-
class Language
{
public function __construct()
{
- return;
- }
+ }
public function updateSettings(Request $request)
{
@@ -28,34 +26,31 @@ class Language
'datatable-language' => 'required|string',
]);
-
if ($validator->fails()) {
- return redirect(route('admin.settings.index') . '#language')->with('error', __('Language settings have not been updated!'))->withErrors($validator);
+ return redirect(route('admin.settings.index').'#language')->with('error', __('Language settings have not been updated!'))->withErrors($validator);
}
$values = [
//SETTINGS::VALUE => REQUEST-VALUE (coming from the html-form)
- "SETTINGS::LOCALE:DEFAULT" => "defaultLanguage",
- "SETTINGS::LOCALE:DYNAMIC" => "autotranslate",
- "SETTINGS::LOCALE:CLIENTS_CAN_CHANGE" => "canClientChangeLanguage",
- "SETTINGS::LOCALE:AVAILABLE" => "languages",
- "SETTINGS::LOCALE:DATATABLES" => "datatable-language"
+ 'SETTINGS::LOCALE:DEFAULT' => 'defaultLanguage',
+ 'SETTINGS::LOCALE:DYNAMIC' => 'autotranslate',
+ 'SETTINGS::LOCALE:CLIENTS_CAN_CHANGE' => 'canClientChangeLanguage',
+ 'SETTINGS::LOCALE:AVAILABLE' => 'languages',
+ 'SETTINGS::LOCALE:DATATABLES' => 'datatable-language',
];
-
foreach ($values as $key => $value) {
$param = $request->get($value);
if (is_array($param)) {
- $param = implode(",", $param);
+ $param = implode(',', $param);
}
Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]);
- Cache::forget("setting" . ':' . $key);
- Session::remove("locale");
+ Cache::forget('setting'.':'.$key);
+ Session::remove('locale');
}
-
- return redirect(route('admin.settings.index') . '#language')->with('success', __('Language settings updated!'));
+ return redirect(route('admin.settings.index').'#language')->with('success', __('Language settings updated!'));
}
}
diff --git a/app/Classes/Settings/Misc.php b/app/Classes/Settings/Misc.php
index 1b67b562..d7563a90 100644
--- a/app/Classes/Settings/Misc.php
+++ b/app/Classes/Settings/Misc.php
@@ -7,12 +7,11 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Validator;
-
class Misc
{
public function __construct()
{
- return;
+
}
public function updateSettings(Request $request)
@@ -40,21 +39,23 @@ class Misc
'enable_referral' => 'nullable|string',
'referral_reward' => 'nullable|numeric',
'referral_allowed' => 'nullable|string',
+ 'always_give_commission' => 'nullable|string',
'referral_percentage' => 'nullable|numeric',
'referral_mode' => 'nullable|string',
'ticket_enabled' => 'nullable|string',
+ 'ticket_notify' => 'string',
]);
$validator->after(function ($validator) use ($request) {
// if enable-recaptcha is true then recaptcha-site-key and recaptcha-secret-key must be set
- if ($request->get('enable-recaptcha') == 'true' && (!$request->get('recaptcha-site-key') || !$request->get('recaptcha-secret-key'))) {
+ if ($request->get('enable-recaptcha') == 'true' && (! $request->get('recaptcha-site-key') || ! $request->get('recaptcha-secret-key'))) {
$validator->errors()->add('recaptcha-site-key', 'The site key is required if recaptcha is enabled.');
$validator->errors()->add('recaptcha-secret-key', 'The secret key is required if recaptcha is enabled.');
}
});
if ($validator->fails()) {
- return redirect(route('admin.settings.index') . '#misc')->with('error', __('Misc settings have not been updated!'))->withErrors($validator)
+ return redirect(route('admin.settings.index').'#misc')->with('error', __('Misc settings have not been updated!'))->withErrors($validator)
->withInput();
}
@@ -66,30 +67,31 @@ class Misc
}
$values = [
- "SETTINGS::DISCORD:BOT_TOKEN" => "discord-bot-token",
- "SETTINGS::DISCORD:CLIENT_ID" => "discord-client-id",
- "SETTINGS::DISCORD:CLIENT_SECRET" => "discord-client-secret",
- "SETTINGS::DISCORD:GUILD_ID" => "discord-guild-id",
- "SETTINGS::DISCORD:INVITE_URL" => "discord-invite-url",
- "SETTINGS::DISCORD:ROLE_ID" => "discord-role-id",
- "SETTINGS::RECAPTCHA:SITE_KEY" => "recaptcha-site-key",
- "SETTINGS::RECAPTCHA:SECRET_KEY" => "recaptcha-secret-key",
- "SETTINGS::RECAPTCHA:ENABLED" => "enable-recaptcha",
- "SETTINGS::MAIL:MAILER" => "mailservice",
- "SETTINGS::MAIL:HOST" => "mailhost",
- "SETTINGS::MAIL:PORT" => "mailport",
- "SETTINGS::MAIL:USERNAME" => "mailusername",
- "SETTINGS::MAIL:PASSWORD" => "mailpassword",
- "SETTINGS::MAIL:ENCRYPTION" => "mailencryption",
- "SETTINGS::MAIL:FROM_ADDRESS" => "mailfromadress",
- "SETTINGS::MAIL:FROM_NAME" => "mailfromname",
- "SETTINGS::REFERRAL::ENABLED" => "enable_referral",
- "SETTINGS::REFERRAL::REWARD" => "referral_reward",
- "SETTINGS::REFERRAL::ALLOWED" => "referral_allowed",
- "SETTINGS::REFERRAL:MODE" => "referral_mode",
- "SETTINGS::REFERRAL:PERCENTAGE" => "referral_percentage",
- "SETTINGS::TICKET:ENABLED" => "ticket_enabled"
-
+ 'SETTINGS::DISCORD:BOT_TOKEN' => 'discord-bot-token',
+ 'SETTINGS::DISCORD:CLIENT_ID' => 'discord-client-id',
+ 'SETTINGS::DISCORD:CLIENT_SECRET' => 'discord-client-secret',
+ 'SETTINGS::DISCORD:GUILD_ID' => 'discord-guild-id',
+ 'SETTINGS::DISCORD:INVITE_URL' => 'discord-invite-url',
+ 'SETTINGS::DISCORD:ROLE_ID' => 'discord-role-id',
+ 'SETTINGS::RECAPTCHA:SITE_KEY' => 'recaptcha-site-key',
+ 'SETTINGS::RECAPTCHA:SECRET_KEY' => 'recaptcha-secret-key',
+ 'SETTINGS::RECAPTCHA:ENABLED' => 'enable-recaptcha',
+ 'SETTINGS::MAIL:MAILER' => 'mailservice',
+ 'SETTINGS::MAIL:HOST' => 'mailhost',
+ 'SETTINGS::MAIL:PORT' => 'mailport',
+ 'SETTINGS::MAIL:USERNAME' => 'mailusername',
+ 'SETTINGS::MAIL:PASSWORD' => 'mailpassword',
+ 'SETTINGS::MAIL:ENCRYPTION' => 'mailencryption',
+ 'SETTINGS::MAIL:FROM_ADDRESS' => 'mailfromadress',
+ 'SETTINGS::MAIL:FROM_NAME' => 'mailfromname',
+ 'SETTINGS::REFERRAL::ENABLED' => 'enable_referral',
+ 'SETTINGS::REFERRAL::REWARD' => 'referral_reward',
+ 'SETTINGS::REFERRAL::ALLOWED' => 'referral_allowed',
+ 'SETTINGS::REFERRAL:MODE' => 'referral_mode',
+ 'SETTINGS::REFERRAL::ALWAYS_GIVE_COMMISSION' => 'always_give_commission',
+ 'SETTINGS::REFERRAL:PERCENTAGE' => 'referral_percentage',
+ 'SETTINGS::TICKET:ENABLED' => 'ticket_enabled',
+ 'SETTINGS::TICKET:NOTIFY' => 'ticket_notify',
];
@@ -97,10 +99,9 @@ class Misc
$param = $request->get($value);
Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]);
- Cache::forget("setting" . ':' . $key);
+ Cache::forget('setting'.':'.$key);
}
-
- return redirect(route('admin.settings.index') . '#misc')->with('success', __('Misc settings updated!'));
+ return redirect(route('admin.settings.index').'#misc')->with('success', __('Misc settings updated!'));
}
}
diff --git a/app/Classes/Settings/Payments.php b/app/Classes/Settings/Payments.php
index 262e2886..0139abc6 100644
--- a/app/Classes/Settings/Payments.php
+++ b/app/Classes/Settings/Payments.php
@@ -7,55 +7,52 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Validator;
-
class Payments
{
public function __construct()
{
- return;
- }
+ }
public function updateSettings(Request $request)
{
$validator = Validator::make($request->all(), [
- "paypal-client_id" => "nullable|string",
- "paypal-client-secret" => "nullable|string",
- "paypal-sandbox-secret" => "nullable|string",
- "stripe-secret-key" => "nullable|string",
- "stripe-endpoint-secret" => "nullable|string",
- "stripe-test-secret-key" => "nullable|string",
- "stripe-test-endpoint-secret" => "nullable|string",
- "stripe-methods" => "nullable|string",
- "sales-tax" => "nullable|numeric",
+ 'paypal-client_id' => 'nullable|string',
+ 'paypal-client-secret' => 'nullable|string',
+ 'paypal-sandbox-secret' => 'nullable|string',
+ 'stripe-secret-key' => 'nullable|string',
+ 'stripe-endpoint-secret' => 'nullable|string',
+ 'stripe-test-secret-key' => 'nullable|string',
+ 'stripe-test-endpoint-secret' => 'nullable|string',
+ 'stripe-methods' => 'nullable|string',
+ 'sales-tax' => 'nullable|numeric',
]);
if ($validator->fails()) {
- return redirect(route('admin.settings.index') . '#payment')->with('error', __('Payment settings have not been updated!'))->withErrors($validator)
+ return redirect(route('admin.settings.index').'#payment')->with('error', __('Payment settings have not been updated!'))->withErrors($validator)
->withInput();
}
$values = [
//SETTINGS::VALUE => REQUEST-VALUE (coming from the html-form)
- "SETTINGS::PAYMENTS:PAYPAL:SECRET" => "paypal-client-secret",
- "SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID" => "paypal-client-id",
- "SETTINGS::PAYMENTS:PAYPAL:SANDBOX_SECRET" => "paypal-sandbox-secret",
- "SETTINGS::PAYMENTS:PAYPAL:SANDBOX_CLIENT_ID" => "paypal-sandbox-id",
- "SETTINGS::PAYMENTS:STRIPE:SECRET" => "stripe-secret",
- "SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET" => "stripe-endpoint-secret",
- "SETTINGS::PAYMENTS:STRIPE:TEST_SECRET" => "stripe-test-secret",
- "SETTINGS::PAYMENTS:STRIPE:ENDPOINT_TEST_SECRET" => "stripe-endpoint-test-secret",
- "SETTINGS::PAYMENTS:STRIPE:METHODS" => "stripe-methods",
- "SETTINGS::PAYMENTS:SALES_TAX" => "sales-tax"
+ 'SETTINGS::PAYMENTS:PAYPAL:SECRET' => 'paypal-client-secret',
+ 'SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID' => 'paypal-client-id',
+ 'SETTINGS::PAYMENTS:PAYPAL:SANDBOX_SECRET' => 'paypal-sandbox-secret',
+ 'SETTINGS::PAYMENTS:PAYPAL:SANDBOX_CLIENT_ID' => 'paypal-sandbox-id',
+ 'SETTINGS::PAYMENTS:STRIPE:SECRET' => 'stripe-secret',
+ 'SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET' => 'stripe-endpoint-secret',
+ 'SETTINGS::PAYMENTS:STRIPE:TEST_SECRET' => 'stripe-test-secret',
+ 'SETTINGS::PAYMENTS:STRIPE:ENDPOINT_TEST_SECRET' => 'stripe-endpoint-test-secret',
+ 'SETTINGS::PAYMENTS:STRIPE:METHODS' => 'stripe-methods',
+ 'SETTINGS::PAYMENTS:SALES_TAX' => 'sales-tax',
];
-
foreach ($values as $key => $value) {
$param = $request->get($value);
Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]);
- Cache::forget("setting" . ':' . $key);
+ Cache::forget('setting'.':'.$key);
}
- return redirect(route('admin.settings.index') . '#payment')->with('success', __('Payment settings updated!'));
+ return redirect(route('admin.settings.index').'#payment')->with('success', __('Payment settings updated!'));
}
}
diff --git a/app/Classes/Settings/System.php b/app/Classes/Settings/System.php
index ed85b3b8..e278bac4 100644
--- a/app/Classes/Settings/System.php
+++ b/app/Classes/Settings/System.php
@@ -7,68 +7,84 @@ use App\Models\Settings;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Validator;
+use Qirolab\Theme\Theme;
+
class System
{
-
-
public function __construct()
{
- return;
+
}
-public function checkPteroClientkey(){
- $response = Pterodactyl::getClientUser();
+ public function checkPteroClientkey()
+ {
+ $response = Pterodactyl::getClientUser();
- if ($response->failed()){ return redirect()->back()->with('error', __('Your Key or URL is not correct')); }
- return redirect()->back()->with('success', __('Everything is good!'));
-}
+ if ($response->failed()) {
+ return redirect()->back()->with('error', __('Your Key or URL is not correct'));
+ }
+
+ return redirect()->back()->with('success', __('Everything is good!'));
+ }
public function updateSettings(Request $request)
{
$validator = Validator::make($request->all(), [
- "register-ip-check" => "string",
- "server-create-charge-first-hour" => "string",
- "credits-display-name" => "required|string",
- "allocation-limit" => "required|min:0|integer",
- "force-email-verification" => "string",
- "force-discord-verification" => "string",
- "initial-credits" => "required|min:0|integer",
- "initial-server-limit" => "required|min:0|integer",
- "credits-reward-amount-discord" => "required|min:0|integer",
- "credits-reward-amount-email" => "required|min:0|integer",
- "server-limit-discord" => "required|min:0|integer",
- "server-limit-email" => "required|min:0|integer",
- "server-limit-purchase" => "required|min:0|integer",
- "pterodactyl-api-key" => "required|string",
- "pterodactyl-url" => "required|string",
- "per-page-limit" => "required|min:0|integer",
- "pterodactyl-admin-api-key" => "required|string",
- "enable-upgrades" => "string",
- "enable-disable-servers" => "string",
+ 'register-ip-check' => 'string',
+ 'server-create-charge-first-hour' => 'string',
+ 'credits-display-name' => 'required|string',
+ 'allocation-limit' => 'required|min:0|integer',
+ 'force-email-verification' => 'string',
+ 'force-discord-verification' => 'string',
+ 'initial-credits' => 'required|min:0|integer',
+ 'initial-server-limit' => 'required|min:0|integer',
+ 'credits-reward-amount-discord' => 'required|min:0|integer',
+ 'credits-reward-amount-email' => 'required|min:0|integer',
+ 'server-limit-discord' => 'required|min:0|integer',
+ 'server-limit-email' => 'required|min:0|integer',
+ 'server-limit-purchase' => 'required|min:0|integer',
+ 'pterodactyl-api-key' => 'required|string',
+ 'pterodactyl-url' => 'required|string',
+ 'per-page-limit' => 'required|min:0|integer',
+ 'pterodactyl-admin-api-key' => 'required|string',
+ 'enable-upgrades' => 'string',
+ 'enable-disable-servers' => 'string',
+ 'show-imprint' => 'string',
+ 'show-privacy' => 'string',
+ 'show-tos' => 'string',
+ 'alert-enabled' => 'string',
+ 'alter-type' => 'string',
+ 'alert-message' => 'string|nullable',
+ 'motd-enabled' => 'string',
+ 'usefullinks-enabled' => 'string',
+ 'motd-message' => 'string|nullable',
+ 'seo-title' => 'string|nullable',
+ 'seo-description' => 'string|nullable',
]);
$validator->after(function ($validator) use ($request) {
// if enable-recaptcha is true then recaptcha-site-key and recaptcha-secret-key must be set
- if ($request->get('enable-upgrades') == 'true' && (!$request->get('pterodactyl-admin-api-key'))) {
+ if ($request->get('enable-upgrades') == 'true' && (! $request->get('pterodactyl-admin-api-key'))) {
$validator->errors()->add('pterodactyl-admin-api-key', 'The admin api key is required when upgrades are enabled.');
}
});
if ($validator->fails()) {
- return redirect(route('admin.settings.index') . '#system')->with('error', __('System settings have not been updated!'))->withErrors($validator)
+ return redirect(route('admin.settings.index').'#system')->with('error', __('System settings have not been updated!'))->withErrors($validator)
->withInput();
}
// update Icons from request
$this->updateIcons($request);
-
$values = [
+
"SETTINGS::SYSTEM:REGISTER_IP_CHECK" => "register-ip-check",
"SETTINGS::SYSTEM:SERVER_CREATE_CHARGE_FIRST_HOUR" => "server-create-charge-first-hour",
"SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME" => "credits-display-name",
"SETTINGS::SERVER:ALLOCATION_LIMIT" => "allocation-limit",
+ "SETTINGS::USER:MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER" => "minimum-credits",
"SETTINGS::USER:FORCE_DISCORD_VERIFICATION" => "force-discord-verification",
"SETTINGS::USER:FORCE_EMAIL_VERIFICATION" => "force-email-verification",
"SETTINGS::USER:INITIAL_CREDITS" => "initial-credits",
@@ -87,18 +103,34 @@ public function checkPteroClientkey(){
"SETTINGS::SYSTEM:ENABLE_UPGRADE" => "enable-upgrade",
"SETTINGS::SYSTEM:CREATION_OF_NEW_SERVERS" => "enable-disable-servers",
"SETTINGS::SYSTEM:CREATION_OF_NEW_USERS" => "enable-disable-new-users",
+ "SETTINGS::SYSTEM:SHOW_IMPRINT" => "show-imprint",
+ "SETTINGS::SYSTEM:SHOW_PRIVACY" => "show-privacy",
+ "SETTINGS::SYSTEM:SHOW_TOS" => "show-tos",
+ "SETTINGS::SYSTEM:ALERT_ENABLED" => "alert-enabled",
+ "SETTINGS::SYSTEM:ALERT_TYPE" => "alert-type",
+ "SETTINGS::SYSTEM:ALERT_MESSAGE" => "alert-message",
+ "SETTINGS::SYSTEM:THEME" => "theme",
+ "SETTINGS::SYSTEM:MOTD_ENABLED" => "motd-enabled",
+ "SETTINGS::SYSTEM:MOTD_MESSAGE" => "motd-message",
+ "SETTINGS::SYSTEM:USEFULLINKS_ENABLED" => "usefullinks-enabled",
+ "SETTINGS::SYSTEM:SEO_TITLE" => "seo-title",
+ "SETTINGS::SYSTEM:SEO_DESCRIPTION" => "seo-description",
];
-
foreach ($values as $key => $value) {
$param = $request->get($value);
Settings::where('key', $key)->updateOrCreate(['key' => $key], ['value' => $param]);
- Cache::forget("setting" . ':' . $key);
+ Cache::forget('setting'.':'.$key);
}
- return redirect(route('admin.settings.index') . '#system')->with('success', __('System settings updated!'));
- }
+ //SET THEME
+ $theme = $request->get('theme');
+ Theme::set($theme);
+
+
+ return redirect(route('admin.settings.index').'#system')->with('success', __('System settings updated!'));
+ }
private function updateIcons(Request $request)
{
diff --git a/app/Console/Commands/ChargeCreditsCommand.php b/app/Console/Commands/ChargeCreditsCommand.php
index 35bfad0a..e51bfdf9 100644
--- a/app/Console/Commands/ChargeCreditsCommand.php
+++ b/app/Console/Commands/ChargeCreditsCommand.php
@@ -24,9 +24,9 @@ class ChargeCreditsCommand extends Command
*/
protected $description = 'Charge all users with active servers';
-
/**
* A list of users that have to be notified
+ *
* @var array
*/
protected $usersToNotify = [];
@@ -56,24 +56,23 @@ class ChargeCreditsCommand extends Command
/** @var User $user */
$user = $server->user;
- #charge credits / suspend server
+ //charge credits / suspend server
if ($user->credits >= $product->getHourlyPrice()) {
$this->line(" You received ".config('SETTINGS::REFERRAL::REWARD')." ".config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME')." because ".$this->ref_user->name." registered with your Referral-Code! You received '.config('SETTINGS::REFERRAL::REWARD').' '.config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME').' because '.$this->ref_user->name.' registered with your Referral-Code! Thank you very much for supporting us!. ".config('app.name', 'Laravel')." '.config('app.name', 'Laravel').' Hello {$this->server->User->name}, An unexpected error has occurred... There was a problem creating your server on our pterodactyl panel. There are likely no allocations or rooms left on the selected node. Please contact one of our support members through our discord server to get this resolved asap! We thank you for your patience and our deepest apologies for this inconvenience. ".config('app.name', 'Laravel')." ".config('app.name', 'Laravel').' ". __("To automatically re-enable your server/s, you need to purchase more credits.")." ". __('If you have any questions please let us know.')." ". __('Regards').", '.__('To automatically re-enable your server/s, you need to purchase more credits.').' '.__('If you have any questions please let us know.').' '.__('Regards').', Ticket With ID : {$this->ticket->ticket_id} has had a new reply posted by {$this->user->name} Ticket With ID : {$this->ticket->ticket_id} A response has been added to your ticket. Please see below for our response! ".__("Hello")." {$this->user->name}, ".__("Welcome to our dashboard")."! ".__("You can verify your e-mail address and link/verify your Discord account.")." '.__('Hello')." {$this->user->name}, ".__('Welcome to our dashboard').'! '.__('You can verify your e-mail address and link/verify your Discord account.').'
- " . $this->AdditionalLines() . "
+ '.$this->AdditionalLines().'
".__("This dashboard can be used to create and delete servers").". ".__("We hope you can enjoy this hosting experience and if you have any suggestions please let us know")."! ".__("Regards").", '.__('This dashboard can be used to create and delete servers').'. '.__('We hope you can enjoy this hosting experience and if you have any suggestions please let us know').'! '.__('Regards').', Thank you for using our Software If you have any questions, make sure to join our Discord (you can change this message in the Settings ) This installer will lead you through the most crucial Steps of Controlpanel.gg`s
setup ">HTTPS is required HTTPS is required ">Write-permissions on .env-file Write-permissions on .env-file "> php
- version: (minimum required ) "> mysql
- version: (minimum required ) php
+ version: (minimum required ) "> Missing
- php-extentions: "> mysql
+ version: (minimum required ) Missing
+ php-extentions: "> Git
+ Git
version: "> Tar
+ Tar
version: Lets start with your Database ".$_GET['message'].' Lets feed your Database and generate some security keys! This process might take a while. Please do not refresh or close this page!{$apiKey->token}
";
})
- ->editColumn('last_used' , function (ApplicationApi $apiKey) {
+ ->editColumn('last_used', function (ApplicationApi $apiKey) {
return $apiKey->last_used ? $apiKey->last_used->diffForHumans() : '';
})
- ->rawColumns(['actions' , 'token'])
+ ->rawColumns(['actions', 'token'])
->make();
}
}
diff --git a/app/Http/Controllers/Admin/InvoiceController.php b/app/Http/Controllers/Admin/InvoiceController.php
index 0ed1d45d..e3fc0bca 100644
--- a/app/Http/Controllers/Admin/InvoiceController.php
+++ b/app/Http/Controllers/Admin/InvoiceController.php
@@ -10,15 +10,14 @@ use ZipArchive;
class InvoiceController extends Controller
{
-
public function downloadAllInvoices()
{
$zip = new ZipArchive;
$zip_safe_path = storage_path('invoices.zip');
$res = $zip->open($zip_safe_path, ZipArchive::CREATE | ZipArchive::OVERWRITE);
$result = $this::rglob(storage_path('app/invoice/*'));
- if ($res === TRUE) {
- $zip->addFromString("1. Info.txt", __("Created at") . " " . now()->format("d.m.Y"));
+ if ($res === true) {
+ $zip->addFromString('1. Info.txt', __('Created at').' '.now()->format('d.m.Y'));
foreach ($result as $file) {
if (file_exists($file) && is_file($file)) {
$zip->addFile($file, basename($file));
@@ -26,6 +25,7 @@ class InvoiceController extends Controller
}
$zip->close();
}
+
return response()->download($zip_safe_path);
}
@@ -37,9 +37,10 @@ class InvoiceController extends Controller
public function rglob($pattern, $flags = 0)
{
$files = glob($pattern, $flags);
- foreach (glob(dirname($pattern) . '/*', GLOB_ONLYDIR | GLOB_NOSORT) as $dir) {
- $files = array_merge($files, $this::rglob($dir . '/' . basename($pattern), $flags));
+ foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR | GLOB_NOSORT) as $dir) {
+ $files = array_merge($files, $this::rglob($dir.'/'.basename($pattern), $flags));
}
+
return $files;
}
@@ -53,16 +54,15 @@ class InvoiceController extends Controller
try {
$query = Invoice::where('payment_id', '=', $id)->firstOrFail();
} catch (Throwable $e) {
- return redirect()->back()->with("error", __("Error!"));
+ return redirect()->back()->with('error', __('Error!'));
}
- $invoice_path = storage_path('app/invoice/' . $query->invoice_user . '/' . $query->created_at->format("Y") . '/' . $query->invoice_name . '.pdf');
+ $invoice_path = storage_path('app/invoice/'.$query->invoice_user.'/'.$query->created_at->format('Y').'/'.$query->invoice_name.'.pdf');
- if (!file_exists($invoice_path)) {
- return redirect()->back()->with("error", __("Invoice does not exist on filesystem!"));
+ if (! file_exists($invoice_path)) {
+ return redirect()->back()->with('error', __('Invoice does not exist on filesystem!'));
}
-
return response()->download($invoice_path);
}
}
diff --git a/app/Http/Controllers/Admin/OverViewController.php b/app/Http/Controllers/Admin/OverViewController.php
index 20fe0c17..280b59d4 100644
--- a/app/Http/Controllers/Admin/OverViewController.php
+++ b/app/Http/Controllers/Admin/OverViewController.php
@@ -2,18 +2,17 @@
namespace App\Http\Controllers\Admin;
+use App\Classes\Pterodactyl;
use App\Http\Controllers\Controller;
use App\Models\Egg;
use App\Models\Location;
use App\Models\Nest;
use App\Models\Node;
use App\Models\Payment;
-use App\Models\Server;
-use App\Models\User;
-use Illuminate\Support\Facades\Cache;
-use App\Classes\Pterodactyl;
use App\Models\Product;
+use App\Models\Server;
use App\Models\Ticket;
+use App\Models\User;
use Carbon\Carbon;
class OverViewController extends Controller
@@ -26,7 +25,7 @@ class OverViewController extends Controller
$counters = collect();
//Set basic variables in the collection
$counters->put('users', User::query()->count());
- $counters->put('credits', number_format(User::query()->where("role","!=","admin")->sum('credits'), 2, '.', ''));
+ $counters->put('credits', number_format(User::query()->where('role', '!=', 'admin')->sum('credits'), 2, '.', ''));
$counters->put('payments', Payment::query()->count());
$counters->put('eggs', Egg::query()->count());
$counters->put('nests', Nest::query()->count());
@@ -45,55 +44,109 @@ class OverViewController extends Controller
$counters->put('payments', collect());
//Get and save payments from last 2 months for later filtering and looping
$payments = Payment::query()->where('created_at', '>=', Carbon::today()->startOfMonth()->subMonth())->where('status', 'paid')->get();
- //Prepare collections and set a few variables
+ //Prepare collections
$counters['payments']->put('thisMonth', collect());
$counters['payments']->put('lastMonth', collect());
- $counters['payments']['thisMonth']->timeStart = Carbon::today()->startOfMonth()->toDateString();
- $counters['payments']['thisMonth']->timeEnd = Carbon::today()->toDateString();
- $counters['payments']['lastMonth']->timeStart = Carbon::today()->startOfMonth()->subMonth()->toDateString();
- $counters['payments']['lastMonth']->timeEnd = Carbon::today()->endOfMonth()->subMonth()->toDateString();
-
+
+
+ //Prepare subCollection 'taxPayments'
+ $counters->put('taxPayments', collect());
+ //Get and save taxPayments from last 2 years for later filtering and looping
+ $taxPayments = Payment::query()->where('created_at', '>=', Carbon::today()->startOfYear()->subYear())->where('status', 'paid')->get();
+ //Prepare collections
+ $counters['taxPayments']->put('thisYear', collect());
+ $counters['taxPayments']->put('lastYear', collect());
+
//Fill out variables for each currency separately
- foreach($payments->where('created_at', '>=', Carbon::today()->startOfMonth()) as $payment){
+ foreach ($payments->where('created_at', '>=', Carbon::today()->startOfMonth()) as $payment) {
$paymentCurrency = $payment->currency_code;
- if(!isset($counters['payments']['thisMonth'][$paymentCurrency])){
+ if (! isset($counters['payments']['thisMonth'][$paymentCurrency])) {
$counters['payments']['thisMonth']->put($paymentCurrency, collect());
$counters['payments']['thisMonth'][$paymentCurrency]->total = 0;
$counters['payments']['thisMonth'][$paymentCurrency]->count = 0;
}
$counters['payments']['thisMonth'][$paymentCurrency]->total += $payment->total_price;
- $counters['payments']['thisMonth'][$paymentCurrency]->count ++;
+ $counters['payments']['thisMonth'][$paymentCurrency]->count++;
}
- foreach($payments->where('created_at', '<', Carbon::today()->startOfMonth()) as $payment){
+ foreach ($payments->where('created_at', '<', Carbon::today()->startOfMonth()) as $payment) {
$paymentCurrency = $payment->currency_code;
- if(!isset($counters['payments']['lastMonth'][$paymentCurrency])){
+ if (! isset($counters['payments']['lastMonth'][$paymentCurrency])) {
$counters['payments']['lastMonth']->put($paymentCurrency, collect());
$counters['payments']['lastMonth'][$paymentCurrency]->total = 0;
$counters['payments']['lastMonth'][$paymentCurrency]->count = 0;
}
$counters['payments']['lastMonth'][$paymentCurrency]->total += $payment->total_price;
- $counters['payments']['lastMonth'][$paymentCurrency]->count ++;
+ $counters['payments']['lastMonth'][$paymentCurrency]->count++;
}
+
+ //sort currencies alphabetically and set some additional variables
+ $counters['payments']['thisMonth'] = $counters['payments']['thisMonth']->sortKeys();
+ $counters['payments']['thisMonth']->timeStart = Carbon::today()->startOfMonth()->toDateString();
+ $counters['payments']['thisMonth']->timeEnd = Carbon::today()->toDateString();
+ $counters['payments']['lastMonth'] = $counters['payments']['lastMonth']->sortKeys();
+ $counters['payments']['lastMonth']->timeStart = Carbon::today()->startOfMonth()->subMonth()->toDateString();
+ $counters['payments']['lastMonth']->timeEnd = Carbon::today()->endOfMonth()->subMonth()->toDateString();
$counters['payments']->total = Payment::query()->count();
+
+ foreach($taxPayments->where('created_at', '>=', Carbon::today()->startOfYear()) as $taxPayment){
+ $paymentCurrency = $taxPayment->currency_code;
+ if(!isset($counters['taxPayments']['thisYear'][$paymentCurrency])){
+
+ $counters['taxPayments']['thisYear']->put($paymentCurrency, collect());
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->total = 0;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->count = 0;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->price = 0;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->taxes = 0;
+ }
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->total += $taxPayment->total_price;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->count++;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->price += $taxPayment->price;
+ $counters['taxPayments']['thisYear'][$paymentCurrency]->taxes += $taxPayment->tax_value;
+ }
+
+ foreach($taxPayments->where('created_at', '>=', Carbon::today()->startOfYear()->subYear())->where('created_at', '<', Carbon::today()->startOfYear()) as $taxPayment){
+ $paymentCurrency = $taxPayment->currency_code;
+ if(!isset($counters['taxPayments']['lastYear'][$paymentCurrency])){
+
+ $counters['taxPayments']['lastYear']->put($paymentCurrency, collect());
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->total = 0;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->count = 0;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->price = 0;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->taxes = 0;
+ }
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->total += $taxPayment->total_price;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->count++;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->price += $taxPayment->price;
+ $counters['taxPayments']['lastYear'][$paymentCurrency]->taxes += $taxPayment->tax_value;
+ }
+
+ //sort currencies alphabetically and set some additional variables
+ $counters['taxPayments']['thisYear'] = $counters['taxPayments']['thisYear']->sortKeys();
+ $counters['taxPayments']['thisYear']->timeStart = Carbon::today()->startOfYear()->toDateString();
+ $counters['taxPayments']['thisYear']->timeEnd = Carbon::today()->toDateString();
+ $counters['taxPayments']['lastYear'] = $counters['taxPayments']['lastYear']->sortKeys();
+ $counters['taxPayments']['lastYear']->timeStart = Carbon::today()->startOfYear()->subYear()->toDateString();
+ $counters['taxPayments']['lastYear']->timeEnd = Carbon::today()->endOfYear()->subYear()->toDateString();
+
$lastEgg = Egg::query()->latest('updated_at')->first();
$syncLastUpdate = $lastEgg ? $lastEgg->updated_at->isoFormat('LLL') : __('unknown');
-
-
//Get node information and prepare collection
$pteroNodeIds = [];
- foreach(Pterodactyl::getNodes() as $pteroNode){
+ foreach (Pterodactyl::getNodes() as $pteroNode) {
array_push($pteroNodeIds, $pteroNode['attributes']['id']);
}
$nodes = collect();
- foreach($DBnodes = Node::query()->get() as $DBnode){ //gets all node information and prepares the structure
+ foreach ($DBnodes = Node::query()->get() as $DBnode) { //gets all node information and prepares the structure
$nodeId = $DBnode['id'];
- if(!in_array($nodeId, $pteroNodeIds)) continue; //Check if node exists on pterodactyl too, if not, skip
+ if (! in_array($nodeId, $pteroNodeIds)) {
+ continue;
+ } //Check if node exists on pterodactyl too, if not, skip
$nodes->put($nodeId, collect());
$nodes[$nodeId]->name = $DBnode['name'];
$pteroNode = Pterodactyl::getNode($nodeId);
- $nodes[$nodeId]->usagePercent = round(max($pteroNode['allocated_resources']['memory']/($pteroNode['memory']*($pteroNode['memory_overallocate']+100)/100), $pteroNode['allocated_resources']['disk']/($pteroNode['disk']*($pteroNode['disk_overallocate']+100)/100))*100, 2);
+ $nodes[$nodeId]->usagePercent = round(max($pteroNode['allocated_resources']['memory'] / ($pteroNode['memory'] * ($pteroNode['memory_overallocate'] + 100) / 100), $pteroNode['allocated_resources']['disk'] / ($pteroNode['disk'] * ($pteroNode['disk_overallocate'] + 100) / 100)) * 100, 2);
$counters['totalUsagePercent'] += $nodes[$nodeId]->usagePercent;
$nodes[$nodeId]->totalServers = 0;
@@ -101,66 +154,61 @@ class OverViewController extends Controller
$nodes[$nodeId]->totalEarnings = 0;
$nodes[$nodeId]->activeEarnings = 0;
}
- $counters['totalUsagePercent'] = ($DBnodes->count())?round($counters['totalUsagePercent']/$DBnodes->count(), 2):0;
+ $counters['totalUsagePercent'] = ($DBnodes->count()) ? round($counters['totalUsagePercent'] / $DBnodes->count(), 2) : 0;
- foreach(Pterodactyl::getServers() as $server){ //gets all servers from Pterodactyl and calculates total of credit usage for each node separately + total
+ foreach (Pterodactyl::getServers() as $server) { //gets all servers from Pterodactyl and calculates total of credit usage for each node separately + total
$nodeId = $server['attributes']['node'];
-
- if($CPServer = Server::query()->where('pterodactyl_id', $server['attributes']['id'])->first()){
+
+ if ($CPServer = Server::query()->where('pterodactyl_id', $server['attributes']['id'])->first()) {
$price = Product::query()->where('id', $CPServer->product_id)->first()->price;
- if (!$CPServer->suspended){
+ if (! $CPServer->suspended) {
$counters['earnings']->active += $price;
- $counters['servers']->active ++;
+ $counters['servers']->active++;
$nodes[$nodeId]->activeEarnings += $price;
- $nodes[$nodeId]->activeServers ++;
+ $nodes[$nodeId]->activeServers++;
}
$counters['earnings']->total += $price;
- $counters['servers']->total ++;
+ $counters['servers']->total++;
$nodes[$nodeId]->totalEarnings += $price;
- $nodes[$nodeId]->totalServers ++;
+ $nodes[$nodeId]->totalServers++;
}
}
-
-
//Get latest tickets
- $tickets = Cache::remember('tickets', self::TTL, function(){
- $output = collect();
- foreach(Ticket::query()->latest()->take(3)->get() as $ticket){
- $output->put($ticket->ticket_id, collect());
- $output[$ticket->ticket_id]->title = $ticket->title;
- $user = User::query()->where('id', $ticket->user_id)->first();
- $output[$ticket->ticket_id]->user_id = $user->id;
- $output[$ticket->ticket_id]->user = $user->name;
- $output[$ticket->ticket_id]->status = $ticket->status;
- $output[$ticket->ticket_id]->last_updated = $ticket->updated_at->diffForHumans();
- switch ($ticket->status) {
- case 'Open':
- $output[$ticket->ticket_id]->statusBadgeColor = 'badge-success';
- break;
- case 'Closed':
- $output[$ticket->ticket_id]->statusBadgeColor = 'badge-danger';
- break;
- case 'Answered':
- $output[$ticket->ticket_id]->statusBadgeColor = 'badge-info';
- break;
- default:
- $output[$ticket->ticket_id]->statusBadgeColor = 'badge-warning';
- break;
- }
+ $tickets = collect();
+ foreach (Ticket::query()->latest()->take(5)->get() as $ticket) {
+ $tickets->put($ticket->ticket_id, collect());
+ $tickets[$ticket->ticket_id]->title = $ticket->title;
+ $user = User::query()->where('id', $ticket->user_id)->first();
+ $tickets[$ticket->ticket_id]->user_id = $user->id;
+ $tickets[$ticket->ticket_id]->user = $user->name;
+ $tickets[$ticket->ticket_id]->status = $ticket->status;
+ $tickets[$ticket->ticket_id]->last_updated = $ticket->updated_at->diffForHumans();
+ switch ($ticket->status) {
+ case 'Open':
+ $tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-success';
+ break;
+ case 'Closed':
+ $tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-danger';
+ break;
+ case 'Answered':
+ $tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-info';
+ break;
+ default:
+ $tickets[$ticket->ticket_id]->statusBadgeColor = 'badge-warning';
+ break;
}
- return $output;
- });
+ }
return view('admin.overview.index', [
- 'counters' => $counters,
- 'nodes' => $nodes,
+ 'counters' => $counters,
+ 'nodes' => $nodes,
'syncLastUpdate' => $syncLastUpdate,
- 'deletedNodesPresent'=> ($DBnodes->count() != count($pteroNodeIds))?true:false,
- 'perPageLimit' => ($counters['servers']->total != Server::query()->count())?true:false,
- 'tickets' => $tickets
+ 'deletedNodesPresent' => ($DBnodes->count() != count($pteroNodeIds)) ? true : false,
+ 'perPageLimit' => ($counters['servers']->total != Server::query()->count()) ? true : false,
+ 'tickets' => $tickets,
]);
- }
+ }
/**
* @description Sync locations,nodes,nests,eggs with the linked pterodactyl panel
diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php
index 8d3a0d23..bccc64e8 100644
--- a/app/Http/Controllers/Admin/PaymentController.php
+++ b/app/Http/Controllers/Admin/PaymentController.php
@@ -4,13 +4,10 @@ namespace App\Http\Controllers\Admin;
use App\Events\UserUpdateCreditsEvent;
use App\Http\Controllers\Controller;
-use App\Models\InvoiceSettings;
+use App\Models\PartnerDiscount;
use App\Models\Payment;
-use App\Models\ShopProduct;
-use App\Models\Settings;
use App\Models\User;
-use App\Notifications\InvoiceNotification;
-use App\Notifications\ConfirmPaymentNotification;
+use App\Models\ShopProduct;
use Exception;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
@@ -19,633 +16,124 @@ use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Log;
-use Illuminate\Support\Facades\Storage;
-use LaravelDaily\Invoices\Classes\Buyer;
-use LaravelDaily\Invoices\Classes\InvoiceItem;
-use LaravelDaily\Invoices\Classes\Party;
-use LaravelDaily\Invoices\Invoice;
-use PayPalCheckoutSdk\Core\PayPalHttpClient;
-use PayPalCheckoutSdk\Core\ProductionEnvironment;
-use PayPalCheckoutSdk\Core\SandboxEnvironment;
-use PayPalCheckoutSdk\Orders\OrdersCaptureRequest;
-use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
-use PayPalHttp\HttpException;
-use Stripe\Stripe;
-use Symfony\Component\Intl\Currencies;
+use App\Helpers\ExtensionHelper;
class PaymentController extends Controller
{
-
/**
* @return Application|Factory|View
*/
public function index()
{
return view('admin.payments.index')->with([
- 'payments' => Payment::paginate(15)
+ 'payments' => Payment::paginate(15),
]);
}
/**
- * @param Request $request
- * @param ShopProduct $shopProduct
+ * @param Request $request
+ * @param ShopProduct $shopProduct
* @return Application|Factory|View
*/
- public function checkOut(Request $request, ShopProduct $shopProduct)
+ public function checkOut(ShopProduct $shopProduct)
{
+ $extensions = ExtensionHelper::getAllExtensionsByNamespace('PaymentGateways');
+
+ // build a paymentgateways array that contains the routes for the payment gateways and the image path for the payment gateway which lays in public/images/Extensions/PaymentGateways with the extensionname in lowercase
+ $paymentGateways = [];
+ foreach ($extensions as $extension) {
+ $extensionName = basename($extension);
+ $payment = new \stdClass();
+ $payment->name = ExtensionHelper::getExtensionConfig($extensionName, 'name');
+ $payment->image = asset('images/Extensions/PaymentGateways/' . strtolower($extensionName) . '_logo.png');
+ $paymentGateways[] = $payment;
+ }
+
+ $discount = PartnerDiscount::getDiscount();
+
return view('store.checkout')->with([
- 'product' => $shopProduct,
- 'taxvalue' => $shopProduct->getTaxValue(),
- 'taxpercent' => $shopProduct->getTaxPercent(),
- 'total' => $shopProduct->getTotalPrice()
+ 'product' => $shopProduct,
+ 'discountpercent' => $discount,
+ 'discountvalue' => $discount * $shopProduct->price / 100,
+ 'discountedprice' => $shopProduct->getPriceAfterDiscount(),
+ 'taxvalue' => $shopProduct->getTaxValue(),
+ 'taxpercent' => $shopProduct->getTaxPercent(),
+ 'total' => $shopProduct->getTotalPrice(),
+ 'paymentGateways' => $paymentGateways,
]);
}
/**
- * @param Request $request
- * @param ShopProduct $shopProduct
+ * @param Request $request
+ * @param ShopProduct $shopProduct
* @return RedirectResponse
*/
- public function PaypalPay(Request $request, ShopProduct $shopProduct)
+ public function FreePay(ShopProduct $shopProduct)
{
- $request = new OrdersCreateRequest();
- $request->prefer('return=representation');
- $request->body = [
- "intent" => "CAPTURE",
- "purchase_units" => [
- [
- "reference_id" => uniqid(),
- "description" => $shopProduct->description,
- "amount" => [
- "value" => $shopProduct->getTotalPrice(),
- 'currency_code' => strtoupper($shopProduct->currency_code),
- 'breakdown' => [
- 'item_total' =>
- [
- 'currency_code' => strtoupper($shopProduct->currency_code),
- 'value' => $shopProduct->price,
- ],
- 'tax_total' =>
- [
- 'currency_code' => strtoupper($shopProduct->currency_code),
- 'value' => $shopProduct->getTaxValue(),
- ]
- ]
- ]
- ]
- ],
- "application_context" => [
- "cancel_url" => route('payment.Cancel'),
- "return_url" => route('payment.PaypalSuccess', ['product' => $shopProduct->id]),
- 'brand_name' => config('app.name', 'Laravel'),
- 'shipping_preference' => 'NO_SHIPPING'
- ]
-
-
- ];
-
-
- try {
- // Call API with your client and get a response for your call
- $response = $this->getPayPalClient()->execute($request);
- return redirect()->away($response->result->links[1]->href);
-
- // If call returns body in response, you can get the deserialized version from the result attribute of the response
- } catch (HttpException $ex) {
- echo $ex->statusCode;
- dd(json_decode($ex->getMessage()));
- }
- }
-
- /**
- * @return PayPalHttpClient
- */
- protected function getPayPalClient()
- {
- $environment = env('APP_ENV') == 'local'
- ? new SandboxEnvironment($this->getPaypalClientId(), $this->getPaypalClientSecret())
- : new ProductionEnvironment($this->getPaypalClientId(), $this->getPaypalClientSecret());
-
- return new PayPalHttpClient($environment);
- }
-
- /**
- * @return string
- */
- protected function getPaypalClientId()
- {
- return env('APP_ENV') == 'local' ? config("SETTINGS::PAYMENTS:PAYPAL:SANDBOX_CLIENT_ID") : config("SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID");
- }
-
- /**
- * @return string
- */
- protected function getPaypalClientSecret()
- {
- return env('APP_ENV') == 'local' ? config("SETTINGS::PAYMENTS:PAYPAL:SANDBOX_SECRET") : config("SETTINGS::PAYMENTS:PAYPAL:SECRET");
- }
-
- /**
- * @param Request $laravelRequest
- */
- public function PaypalSuccess(Request $laravelRequest)
- {
- /** @var ShopProduct $shopProduct */
- $shopProduct = ShopProduct::findOrFail($laravelRequest->input('product'));
+ //check if the product is really free or the discount is 100%
+ if ($shopProduct->getTotalPrice() > 0) return redirect()->route('home')->with('error', __('An error ocured. Please try again.'));
+ //give product
/** @var User $user */
$user = Auth::user();
- $request = new OrdersCaptureRequest($laravelRequest->input('token'));
- $request->prefer('return=representation');
- try {
- // Call API with your client and get a response for your call
- $response = $this->getPayPalClient()->execute($request);
- if ($response->statusCode == 201 || $response->statusCode == 200) {
+ //not updating server limit
- //update server limit
- if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) {
- if ($user->server_limit < config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')) {
- $user->update(['server_limit' => config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')]);
- }
- }
-
- //update User with bought item
- if ($shopProduct->type=="Credits") {
- $user->increment('credits', $shopProduct->quantity);
- }elseif ($shopProduct->type=="Server slots"){
- $user->increment('server_limit', $shopProduct->quantity);
- }
-
-
- //update role give Referral-reward
- if ($user->role == 'member') {
- $user->update(['role' => 'client']);
-
- if((config("SETTINGS::REFERRAL:MODE") == "commission" || config("SETTINGS::REFERRAL:MODE") == "both") && $shopProduct->type=="Credits"){
- if($ref_user = DB::table("user_referrals")->where('registered_user_id', '=', $user->id)->first()){
- $ref_user = User::findOrFail($ref_user->referral_id);
- $increment = number_format($shopProduct->quantity/100*config("SETTINGS::REFERRAL:PERCENTAGE"),0,"","");
- $ref_user->increment('credits', $increment);
-
- //LOGS REFERRALS IN THE ACTIVITY LOG
- activity()
- ->performedOn($user)
- ->causedBy($ref_user)
- ->log('gained '. $increment.' '.config("SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME").' for commission-referral of '.$user->name.' (ID:'.$user->id.')');
- }
-
- }
-
- }
-
- //store payment
- $payment = Payment::create([
- 'user_id' => $user->id,
- 'payment_id' => $response->result->id,
- 'payment_method' => 'paypal',
- 'type' => $shopProduct->type,
- 'status' => 'paid',
- 'amount' => $shopProduct->quantity,
- 'price' => $shopProduct->price,
- 'tax_value' => $shopProduct->getTaxValue(),
- 'tax_percent' => $shopProduct->getTaxPercent(),
- 'total_price' => $shopProduct->getTotalPrice(),
- 'currency_code' => $shopProduct->currency_code,
- 'shop_item_product_id' => $shopProduct->id,
- ]);
-
-
- event(new UserUpdateCreditsEvent($user));
-
- //only create invoice if SETTINGS::INVOICE:ENABLED is true
- if (config('SETTINGS::INVOICE:ENABLED') == 'true') {
- $this->createInvoice($user, $payment, 'paid', $shopProduct->currency_code);
- }
-
-
- //redirect back to home
- return redirect()->route('home')->with('success', __('Your credit balance has been increased!'));
- }
-
-
- // If call returns body in response, you can get the deserialized version from the result attribute of the response
- if (env('APP_ENV') == 'local') {
- dd($response);
- } else {
- abort(500);
- }
- } catch (HttpException $ex) {
- if (env('APP_ENV') == 'local') {
- echo $ex->statusCode;
- dd($ex->getMessage());
- } else {
- abort(422);
- }
+ //update User with bought item
+ if ($shopProduct->type == "Credits") {
+ $user->increment('credits', $shopProduct->quantity);
+ } elseif ($shopProduct->type == "Server slots") {
+ $user->increment('server_limit', $shopProduct->quantity);
}
+
+ //skipped the referral commission, because the user did not pay anything.
+
+ //not giving client role
+
+ //store payment
+ $payment = Payment::create([
+ 'user_id' => $user->id,
+ 'payment_id' => uniqid(),
+ 'payment_method' => 'free',
+ 'type' => $shopProduct->type,
+ 'status' => 'paid',
+ 'amount' => $shopProduct->quantity,
+ 'price' => $shopProduct->price - ($shopProduct->price * PartnerDiscount::getDiscount() / 100),
+ 'tax_value' => $shopProduct->getTaxValue(),
+ 'tax_percent' => $shopProduct->getTaxPercent(),
+ 'total_price' => $shopProduct->getTotalPrice(),
+ 'currency_code' => $shopProduct->currency_code,
+ 'shop_item_product_id' => $shopProduct->id,
+ ]);
+
+ event(new UserUpdateCreditsEvent($user));
+
+ //not sending an invoice
+
+ //redirect back to home
+ return redirect()->route('home')->with('success', __('Your credit balance has been increased!'));
}
+ public function pay(Request $request)
+ {
+ $product = ShopProduct::find($request->product_id);
+ $paymentGateway = $request->payment_method;
+
+ return redirect()->route('payment.' . $paymentGateway . 'Pay', ['shopProduct' => $product->id]);
+ }
/**
- * @param Request $request
+ * @param Request $request
*/
public function Cancel(Request $request)
{
- return redirect()->route('store.index')->with('success', 'Payment was Canceled');
- }
-
- /**
- * @param Request $request
- * @param ShopProduct $shopProduct
- * @return RedirectResponse
- */
- public function StripePay(Request $request, ShopProduct $shopProduct)
- {
- $stripeClient = $this->getStripeClient();
-
-
- $request = $stripeClient->checkout->sessions->create([
- 'line_items' => [
- [
- 'price_data' => [
- 'currency' => $shopProduct->currency_code,
- 'product_data' => [
- 'name' => $shopProduct->display,
- 'description' => $shopProduct->description,
- ],
- 'unit_amount_decimal' => round($shopProduct->price * 100, 2),
- ],
- 'quantity' => 1,
- ],
- [
- 'price_data' => [
- 'currency' => $shopProduct->currency_code,
- 'product_data' => [
- 'name' => 'Product Tax',
- 'description' => $shopProduct->getTaxPercent() . "%",
- ],
- 'unit_amount_decimal' => round($shopProduct->getTaxValue(), 2) * 100,
- ],
- 'quantity' => 1,
- ]
- ],
-
- 'mode' => 'payment',
- "payment_method_types" => str_getcsv(config("SETTINGS::PAYMENTS:STRIPE:METHODS")),
- 'success_url' => route('payment.StripeSuccess', ['product' => $shopProduct->id]) . '&session_id={CHECKOUT_SESSION_ID}',
- 'cancel_url' => route('payment.Cancel'),
- ]);
-
-
-
- return redirect($request->url, 303);
- }
-
- /**
- * @param Request $request
- */
- public function StripeSuccess(Request $request)
- {
- /** @var ShopProduct $shopProduct */
- $shopProduct = ShopProduct::findOrFail($request->input('product'));
-
- /** @var User $user */
- $user = Auth::user();
-
- $stripeClient = $this->getStripeClient();
-
- try {
- //get stripe data
- $paymentSession = $stripeClient->checkout->sessions->retrieve($request->input('session_id'));
- $paymentIntent = $stripeClient->paymentIntents->retrieve($paymentSession->payment_intent);
-
- //get DB entry of this payment ID if existing
- $paymentDbEntry = Payment::where('payment_id', $paymentSession->payment_intent)->count();
-
- // check if payment is 100% completed and payment does not exist in db already
- if ($paymentSession->status == "complete" && $paymentIntent->status == "succeeded" && $paymentDbEntry == 0) {
-
-
-
- //update server limit
- if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) {
- if ($user->server_limit < config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')) {
- $user->update(['server_limit' => config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')]);
- }
- }
-
- //update User with bought item
- if ($shopProduct->type=="Credits") {
- $user->increment('credits', $shopProduct->quantity);
- }elseif ($shopProduct->type=="Server slots"){
- $user->increment('server_limit', $shopProduct->quantity);
- }
-
- //update role give Referral-reward
- if ($user->role == 'member') {
- $user->update(['role' => 'client']);
-
- if((config("SETTINGS::REFERRAL:MODE") == "commission" || config("SETTINGS::REFERRAL:MODE") == "both") && $shopProduct->type=="Credits"){
- if($ref_user = DB::table("user_referrals")->where('registered_user_id', '=', $user->id)->first()){
- $ref_user = User::findOrFail($ref_user->referral_id);
- $increment = number_format($shopProduct->quantity/100*config("SETTINGS::REFERRAL:PERCENTAGE"),0,"","");
- $ref_user->increment('credits', $increment);
-
- //LOGS REFERRALS IN THE ACTIVITY LOG
- activity()
- ->performedOn($user)
- ->causedBy($ref_user)
- ->log('gained '. $increment.' '.config("SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME").' for commission-referral of '.$user->name.' (ID:'.$user->id.')');
- }
-
- }
-
- }
-
- //store paid payment
- $payment = Payment::create([
- 'user_id' => $user->id,
- 'payment_id' => $paymentSession->payment_intent,
- 'payment_method' => 'stripe',
- 'type' => $shopProduct->type,
- 'status' => 'paid',
- 'amount' => $shopProduct->quantity,
- 'price' => $shopProduct->price,
- 'tax_value' => $shopProduct->getTaxValue(),
- 'total_price' => $shopProduct->getTotalPrice(),
- 'tax_percent' => $shopProduct->getTaxPercent(),
- 'currency_code' => $shopProduct->currency_code,
- 'shop_item_product_id' => $shopProduct->id,
- ]);
-
- //payment notification
- $user->notify(new ConfirmPaymentNotification($payment));
-
- event(new UserUpdateCreditsEvent($user));
-
- //only create invoice if SETTINGS::INVOICE:ENABLED is true
- if (config('SETTINGS::INVOICE:ENABLED') == 'true') {
- $this->createInvoice($user, $payment, 'paid', $shopProduct->currency_code);
- }
-
- //redirect back to home
- return redirect()->route('home')->with('success', __('Your credit balance has been increased!'));
- } else {
- if ($paymentIntent->status == "processing") {
-
- //store processing payment
- $payment = Payment::create([
- 'user_id' => $user->id,
- 'payment_id' => $paymentSession->payment_intent,
- 'payment_method' => 'stripe',
- 'type' => $shopProduct->type,
- 'status' => 'processing',
- 'amount' => $shopProduct->quantity,
- 'price' => $shopProduct->price,
- 'tax_value' => $shopProduct->getTaxValue(),
- 'total_price' => $shopProduct->getTotalPrice(),
- 'tax_percent' => $shopProduct->getTaxPercent(),
- 'currency_code' => $shopProduct->currency_code,
- 'shop_item_product_id' => $shopProduct->id,
- ]);
-
- //only create invoice if SETTINGS::INVOICE:ENABLED is true
- if (config('SETTINGS::INVOICE:ENABLED') == 'true') {
- $this->createInvoice($user, $payment, 'paid', $shopProduct->currency_code);
- }
-
- //redirect back to home
- return redirect()->route('home')->with('success', __('Your payment is being processed!'));
- }
- if ($paymentDbEntry == 0 && $paymentIntent->status != "processing") {
- $stripeClient->paymentIntents->cancel($paymentIntent->id);
-
- //redirect back to home
- return redirect()->route('home')->with('success', __('Your payment has been canceled!'));
- } else {
- abort(402);
- }
- }
- } catch (HttpException $ex) {
- if (env('APP_ENV') == 'local') {
- echo $ex->statusCode;
- dd($ex->getMessage());
- } else {
- abort(422);
- }
- }
- }
-
- /**
- * @param Request $request
- */
- protected function handleStripePaymentSuccessHook($paymentIntent)
- {
- try {
- // Get payment db entry
- $payment = Payment::where('payment_id', $paymentIntent->id)->first();
- $user = User::where('id', $payment->user_id)->first();
-
- if ($paymentIntent->status == 'succeeded' && $payment->status == 'processing') {
-
-
- //update server limit
- if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) {
- if ($user->server_limit < config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')) {
- $user->update(['server_limit' => config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')]);
- }
- }
- //update User with bought item
- if ($shopProduct->type=="Credits") {
- $user->increment('credits', $shopProduct->quantity);
- }elseif ($shopProduct->type=="Server slots"){
- $user->increment('server_limit', $shopProduct->quantity);
- }
-
- //update role give Referral-reward
- if ($user->role == 'member') {
- $user->update(['role' => 'client']);
-
- if((config("SETTINGS::REFERRAL:MODE") == "commission" || config("SETTINGS::REFERRAL:MODE") == "both")&& $shopProduct->type=="Credits"){
- if($ref_user = DB::table("user_referrals")->where('registered_user_id', '=', $user->id)->first()){
- $ref_user = User::findOrFail($ref_user->referral_id);
- $increment = number_format($shopProduct->quantity/100*config("SETTINGS::REFERRAL:PERCENTAGE"),0,"","");
- $ref_user->increment('credits', $increment);
-
- //LOGS REFERRALS IN THE ACTIVITY LOG
- activity()
- ->performedOn($user)
- ->causedBy($ref_user)
- ->log('gained '. $increment.' '.config("SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME").' for commission-referral of '.$user->name.' (ID:'.$user->id.')');
- }
-
- }
-
- }
-
- //update payment db entry status
- $payment->update(['status' => 'paid']);
-
- //payment notification
- $user->notify(new ConfirmPaymentNotification($payment));
- event(new UserUpdateCreditsEvent($user));
-
- //only create invoice if SETTINGS::INVOICE:ENABLED is true
- if (config('SETTINGS::INVOICE:ENABLED') == 'true') {
- $this->createInvoice($user, $payment, 'paid', strtoupper($paymentIntent->currency));
- }
- }
- } catch (HttpException $ex) {
- abort(422);
- }
- }
-
- /**
- * @param Request $request
- */
- public function StripeWebhooks(Request $request)
- {
- \Stripe\Stripe::setApiKey($this->getStripeSecret());
-
- try {
- $payload = @file_get_contents('php://input');
- $sig_header = $request->header('Stripe-Signature');
- $event = null;
- $event = \Stripe\Webhook::constructEvent(
- $payload,
- $sig_header,
- $this->getStripeEndpointSecret()
- );
- } catch (\UnexpectedValueException $e) {
- // Invalid payload
-
- abort(400);
- } catch (\Stripe\Exception\SignatureVerificationException $e) {
- // Invalid signature
-
- abort(400);
- }
-
- // Handle the event
- switch ($event->type) {
- case 'payment_intent.succeeded':
- $paymentIntent = $event->data->object; // contains a \Stripe\PaymentIntent
- $this->handleStripePaymentSuccessHook($paymentIntent);
- break;
- default:
- echo 'Received unknown event type ' . $event->type;
- }
- }
-
- /**
- * @return \Stripe\StripeClient
- */
- protected function getStripeClient()
- {
- return new \Stripe\StripeClient($this->getStripeSecret());
- }
-
- /**
- * @return string
- */
- protected function getStripeSecret()
- {
- return env('APP_ENV') == 'local'
- ? config("SETTINGS::PAYMENTS:STRIPE:TEST_SECRET")
- : config("SETTINGS::PAYMENTS:STRIPE:SECRET");
- }
-
- /**
- * @return string
- */
- protected function getStripeEndpointSecret()
- {
- return env('APP_ENV') == 'local'
- ? config("SETTINGS::PAYMENTS:STRIPE:ENDPOINT_TEST_SECRET")
- : config("SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET");
- }
-
-
- protected function createInvoice($user, $payment, $paymentStatus, $currencyCode)
- {
- $shopProduct = ShopProduct::where('id', $payment->shop_item_product_id)->first();
- //create invoice
- $lastInvoiceID = \App\Models\Invoice::where("invoice_name", "like", "%" . now()->format('mY') . "%")->count("id");
- $newInvoiceID = $lastInvoiceID + 1;
- $logoPath = storage_path('app/public/logo.png');
-
- $seller = new Party([
- 'name' => config("SETTINGS::INVOICE:COMPANY_NAME"),
- 'phone' => config("SETTINGS::INVOICE:COMPANY_PHONE"),
- 'address' => config("SETTINGS::INVOICE:COMPANY_ADDRESS"),
- 'vat' => config("SETTINGS::INVOICE:COMPANY_VAT"),
- 'custom_fields' => [
- 'E-Mail' => config("SETTINGS::INVOICE:COMPANY_MAIL"),
- "Web" => config("SETTINGS::INVOICE:COMPANY_WEBSITE")
- ],
- ]);
-
-
- $customer = new Buyer([
- 'name' => $user->name,
- 'custom_fields' => [
- 'E-Mail' => $user->email,
- 'Client ID' => $user->id,
- ],
- ]);
- $item = (new InvoiceItem())
- ->title($shopProduct->description)
- ->pricePerUnit($shopProduct->price);
-
- $notes = [
- __("Payment method") . ": " . $payment->payment_method,
- ];
- $notes = implode("
", $notes);
-
-
- $invoice = Invoice::make()
- ->template('controlpanel')
- ->name(__("Invoice"))
- ->buyer($customer)
- ->seller($seller)
- ->discountByPercent(0)
- ->taxRate(floatval($shopProduct->getTaxPercent()))
- ->shipping(0)
- ->addItem($item)
- ->status(__($paymentStatus))
- ->series(now()->format('mY'))
- ->delimiter("-")
- ->sequence($newInvoiceID)
- ->serialNumberFormat(config("SETTINGS::INVOICE:PREFIX") . '{DELIMITER}{SERIES}{SEQUENCE}')
- ->currencyCode($currencyCode)
- ->currencySymbol(Currencies::getSymbol($currencyCode))
- ->notes($notes);
-
- if (file_exists($logoPath)) {
- $invoice->logo($logoPath);
- }
-
- //Save the invoice in "storage\app\invoice\USER_ID\YEAR"
- $invoice->filename = $invoice->getSerialNumber() . '.pdf';
- $invoice->render();
- Storage::disk("local")->put("invoice/" . $user->id . "/" . now()->format('Y') . "/" . $invoice->filename, $invoice->output);
-
-
- \App\Models\Invoice::create([
- 'invoice_user' => $user->id,
- 'invoice_name' => $invoice->getSerialNumber(),
- 'payment_id' => $payment->payment_id,
- ]);
-
- //Send Invoice per Mail
- $user->notify(new InvoiceNotification($invoice, $user, $payment));
+ return redirect()->route('store.index')->with('info', 'Payment was Canceled');
}
/**
* @return JsonResponse|mixed
+ *
* @throws Exception
*/
public function dataTable()
@@ -653,8 +141,9 @@ class PaymentController extends Controller
$query = Payment::with('user');
return datatables($query)
- ->editColumn('user', function (Payment $payment) {
- return $payment->user->name;
+
+ ->addColumn('user', function (Payment $payment) {
+ return ($payment->user) ? '' . $payment->user->name . '' : __('Unknown user');
})
->editColumn('price', function (Payment $payment) {
return $payment->formatToCurrency($payment->price);
@@ -670,12 +159,15 @@ class PaymentController extends Controller
})
->editColumn('created_at', function (Payment $payment) {
- return $payment->created_at ? $payment->created_at->diffForHumans() : '';
+ return [
+ 'display' => $payment->created_at ? $payment->created_at->diffForHumans() : '',
+ 'raw' => $payment->created_at ? strtotime($payment->created_at) : ''
+ ];
})
->addColumn('actions', function (Payment $payment) {
- return '';
+ return '';
})
- ->rawColumns(['actions'])
+ ->rawColumns(['actions', 'user'])
->make(true);
}
}
diff --git a/app/Http/Controllers/Admin/ProductController.php b/app/Http/Controllers/Admin/ProductController.php
index 9be326cd..ca997ee8 100644
--- a/app/Http/Controllers/Admin/ProductController.php
+++ b/app/Http/Controllers/Admin/ProductController.php
@@ -6,7 +6,6 @@ use App\Http\Controllers\Controller;
use App\Models\Location;
use App\Models\Nest;
use App\Models\Product;
-use App\Models\Settings;
use Exception;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
@@ -52,7 +51,7 @@ class ProductController extends Controller
/**
* Store a newly created resource in storage.
*
- * @param Request $request
+ * @param Request $request
* @return RedirectResponse
*/
public function store(Request $request)
@@ -76,10 +75,10 @@ class ProductController extends Controller
"billing_period" => "required|in:hourly,daily,weekly,monthly,quarterly,half-annually,annually",
]);
- $disabled = !is_null($request->input('disabled'));
+ $disabled = ! is_null($request->input('disabled'));
$product = Product::create(array_merge($request->all(), ['disabled' => $disabled]));
- #link nodes and eggs
+ //link nodes and eggs
$product->eggs()->attach($request->input('eggs'));
$product->nodes()->attach($request->input('nodes'));
@@ -89,21 +88,21 @@ class ProductController extends Controller
/**
* Display the specified resource.
*
- * @param Product $product
+ * @param Product $product
* @return Application|Factory|View
*/
public function show(Product $product)
{
return view('admin.products.show', [
'product' => $product,
- 'minimum_credits' => config("SETTINGS::USER:MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER"),
+ 'minimum_credits' => config('SETTINGS::USER:MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER'),
]);
}
/**
* Show the form for editing the specified resource.
*
- * @param Product $product
+ * @param Product $product
* @return Application|Factory|View
*/
public function edit(Product $product)
@@ -118,8 +117,8 @@ class ProductController extends Controller
/**
* Update the specified resource in storage.
*
- * @param Request $request
- * @param Product $product
+ * @param Request $request
+ * @param Product $product
* @return RedirectResponse
*/
public function update(Request $request, Product $product): RedirectResponse
@@ -143,10 +142,10 @@ class ProductController extends Controller
"billing_period" => "required|in:hourly,daily,weekly,monthly,quarterly,half-annually,annually",
]);
- $disabled = !is_null($request->input('disabled'));
+ $disabled = ! is_null($request->input('disabled'));
$product->update(array_merge($request->all(), ['disabled' => $disabled]));
- #link nodes and eggs
+ //link nodes and eggs
$product->eggs()->detach();
$product->nodes()->detach();
$product->eggs()->attach($request->input('eggs'));
@@ -156,13 +155,13 @@ class ProductController extends Controller
}
/**
- * @param Request $request
- * @param Product $product
+ * @param Request $request
+ * @param Product $product
* @return RedirectResponse
*/
public function disable(Request $request, Product $product)
{
- $product->update(['disabled' => !$product->disabled]);
+ $product->update(['disabled' => ! $product->disabled]);
return redirect()->route('admin.products.index')->with('success', 'Product has been updated!');
}
@@ -170,7 +169,7 @@ class ProductController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param Product $product
+ * @param Product $product
* @return RedirectResponse
*/
public function destroy(Product $product)
@@ -181,12 +180,13 @@ class ProductController extends Controller
}
$product->delete();
+
return redirect()->back()->with('success', __('Product has been removed!'));
}
-
/**
* @return JsonResponse|mixed
+ *
* @throws Exception|Exception
*/
public function dataTable()
@@ -196,14 +196,14 @@ class ProductController extends Controller
return datatables($query)
->addColumn('actions', function (Product $product) {
return '
-
-
-
+
+
+
-
';
})
@@ -218,18 +218,22 @@ class ProductController extends Controller
return $product->eggs()->count();
})
->addColumn('disabled', function (Product $product) {
- $checked = $product->disabled == false ? "checked" : "";
+ $checked = $product->disabled == false ? 'checked' : '';
+
return '
-
';
})
+ ->editColumn('minimum_credits', function (Product $product) {
+ return $product->minimum_credits==-1 ? config('SETTINGS::USER:MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER') : $product->minimum_credits;
+ })
->editColumn('created_at', function (Product $product) {
return $product->created_at ? $product->created_at->diffForHumans() : '';
})
diff --git a/app/Http/Controllers/Admin/ServerController.php b/app/Http/Controllers/Admin/ServerController.php
index 58af5d32..b4e06ed1 100644
--- a/app/Http/Controllers/Admin/ServerController.php
+++ b/app/Http/Controllers/Admin/ServerController.php
@@ -3,10 +3,9 @@
namespace App\Http\Controllers\Admin;
use App\Classes\Pterodactyl;
-use App\Classes\PterodactylWrapper;
use App\Http\Controllers\Controller;
use App\Models\Server;
-use App\Models\Settings;
+use App\Models\User;
use Exception;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
@@ -41,7 +40,7 @@ class ServerController extends Controller
/**
* Store a newly created resource in storage.
*
- * @param Request $request
+ * @param Request $request
* @return Response
*/
public function store(Request $request)
@@ -52,7 +51,7 @@ class ServerController extends Controller
/**
* Display the specified resource.
*
- * @param Server $server
+ * @param Server $server
* @return Response
*/
public function show(Server $server)
@@ -63,31 +62,55 @@ class ServerController extends Controller
/**
* Show the form for editing the specified resource.
*
- * @param Server $server
+ * @param Server $server
* @return Response
*/
-
public function edit(Server $server)
{
+ // get all users from the database
+ $users = User::all();
+
return view('admin.servers.edit')->with([
- 'server' => $server
+ 'server' => $server,
+ 'users' => $users,
]);
}
/**
* Update the specified resource in storage.
*
- * @param Request $request
- * @param Server $server
- * @return Response
+ * @param Request $request
+ * @param Server $server
*/
public function update(Request $request, Server $server)
{
$request->validate([
- "identifier" => "required|string",
+ 'identifier' => 'required|string',
+ 'user_id' => 'required|integer',
]);
- $server->update($request->all());
+
+ if ($request->get('user_id') != $server->user_id) {
+ // find the user
+ $user = User::findOrFail($request->get('user_id'));
+
+ // try to update the owner on pterodactyl
+ try {
+ $response = Pterodactyl::updateServerOwner($server, $user->pterodactyl_id);
+ if ($response->getStatusCode() != 200) {
+ return redirect()->back()->with('error', 'Failed to update server owner on pterodactyl');
+ }
+
+ // update the owner on the database
+ $server->user_id = $user->id;
+ } catch (Exception $e) {
+ return redirect()->back()->with('error', 'Internal Server Error');
+ }
+ }
+
+ // update the identifier
+ $server->identifier = $request->get('identifier');
+ $server->save();
return redirect()->route('admin.servers.index')->with('success', 'Server updated!');
}
@@ -95,13 +118,14 @@ class ServerController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param Server $server
+ * @param Server $server
* @return RedirectResponse|Response
*/
public function destroy(Server $server)
{
try {
$server->delete();
+
return redirect()->route('admin.servers.index')->with('success', __('Server removed'));
} catch (Exception $e) {
return redirect()->route('admin.servers.index')->with('error', __('An exception has occurred while trying to remove a resource "') . $e->getMessage() . '"');
@@ -133,7 +157,7 @@ class ServerController extends Controller
public function toggleSuspended(Server $server)
{
try {
- $server->isSuspended() ? $server->unSuspend() : $server->suspend();
+ $server->isSuspended() ? $server->unSuspend() : $server->suspend();
} catch (Exception $exception) {
return redirect()->back()->with('error', $exception->getMessage());
}
@@ -148,20 +172,20 @@ class ServerController extends Controller
$CPIDArray = [];
$renameCount = 0;
- foreach($CPServers as $CPServer)//go thru all CP servers and make array with IDs as keys. All values are false.
- {
- if($CPServer->pterodactyl_id) $CPIDArray[$CPServer->pterodactyl_id] = false;
+ foreach ($CPServers as $CPServer) { //go thru all CP servers and make array with IDs as keys. All values are false.
+ if ($CPServer->pterodactyl_id) {
+ $CPIDArray[$CPServer->pterodactyl_id] = false;
+ }
}
- foreach($pteroServers as $server)//go thru all ptero servers, if server exists, change value to true in array.
- {
- if(isset($CPIDArray[$server['attributes']['id']])){
- $CPIDArray[$server['attributes']['id']]=true;
+ foreach ($pteroServers as $server) { //go thru all ptero servers, if server exists, change value to true in array.
+ if (isset($CPIDArray[$server['attributes']['id']])) {
+ $CPIDArray[$server['attributes']['id']] = true;
- if(isset($server['attributes']['name'])){//failsafe
+ if (isset($server['attributes']['name'])) { //failsafe
//Check if a server got renamed
$savedServer = Server::query()->where('pterodactyl_id', $server['attributes']['id'])->first();
- if($savedServer->name != $server['attributes']['name']){
+ if ($savedServer->name != $server['attributes']['name']) {
$savedServer->name = $server['attributes']['name'];
$savedServer->save();
$renameCount++;
@@ -169,28 +193,35 @@ class ServerController extends Controller
}
}
}
- $filteredArray = array_filter($CPIDArray, function($v, $k) { return $v == false; }, ARRAY_FILTER_USE_BOTH); //Array of servers, that dont exist on ptero (value == false)
+ $filteredArray = array_filter($CPIDArray, function ($v, $k) {
+ return $v == false;
+ }, ARRAY_FILTER_USE_BOTH); //Array of servers, that dont exist on ptero (value == false)
$deleteCount = 0;
- foreach($filteredArray as $key => $CPID)//delete servers that dont exist on ptero anymore
- {
- if(!Pterodactyl::getServerAttributes($key, true)) $deleteCount++;
+ foreach ($filteredArray as $key => $CPID) { //delete servers that dont exist on ptero anymore
+ if (!Pterodactyl::getServerAttributes($key, true)) {
+ $deleteCount++;
+ }
}
- return redirect()->back()->with('success', __('Servers synced successfully' . (($renameCount)?(',\n' . __('renamed') . ' ' . $renameCount . ' ' . __('servers')):'') . ((count($filteredArray))?(',\n' . __('deleted') . ' ' . $deleteCount . '/' . count($filteredArray) . ' ' . __('old servers')):''))) . '.';
+ return redirect()->back()->with('success', __('Servers synced successfully' . (($renameCount) ? (',\n' . __('renamed') . ' ' . $renameCount . ' ' . __('servers')) : '') . ((count($filteredArray)) ? (',\n' . __('deleted') . ' ' . $deleteCount . '/' . count($filteredArray) . ' ' . __('old servers')) : ''))) . '.';
}
/**
* @return JsonResponse|mixed
+ *
* @throws Exception
*/
public function dataTable(Request $request)
{
$query = Server::with(['user', 'product']);
- if ($request->has('product')) $query->where('product_id', '=', $request->input('product'));
- if ($request->has('user')) $query->where('user_id', '=', $request->input('user'));
+ if ($request->has('product')) {
+ $query->where('product_id', '=', $request->input('product'));
+ }
+ if ($request->has('user')) {
+ $query->where('user_id', '=', $request->input('user'));
+ }
$query->select('servers.*');
-
return datatables($query)
->addColumn('user', function (Server $server) {
return '' . $server->user->name . '';
@@ -199,12 +230,12 @@ class ServerController extends Controller
return $server->product->description;
})
->addColumn('actions', function (Server $server) {
- $suspendColor = $server->isSuspended() ? "btn-success" : "btn-warning";
- $suspendIcon = $server->isSuspended() ? "fa-play-circle" : "fa-pause-circle";
- $suspendText = $server->isSuspended() ? __("Unsuspend") : __("Suspend");
+ $suspendColor = $server->isSuspended() ? 'btn-success' : 'btn-warning';
+ $suspendIcon = $server->isSuspended() ? 'fa-play-circle' : 'fa-pause-circle';
+ $suspendText = $server->isSuspended() ? __('Unsuspend') : __('Suspend');
return '
-
+
';
})
->addColumn('status', function (Server $server) {
$labelColor = $server->isSuspended() ? 'text-danger' : 'text-success';
+
return '';
})
->editColumn('created_at', function (Server $server) {
@@ -229,7 +261,7 @@ class ServerController extends Controller
return $server->suspended ? $server->suspended->diffForHumans() : '';
})
->editColumn('name', function (Server $server) {
- return 'pterodactyl_id . '">' . strip_tags($server->name) . '';
+ return '' . strip_tags($server->name) . '';
})
->rawColumns(['user', 'actions', 'status', 'name'])
->make();
diff --git a/app/Http/Controllers/Admin/SettingsController.php b/app/Http/Controllers/Admin/SettingsController.php
index e1648eba..ad1b3a36 100644
--- a/app/Http/Controllers/Admin/SettingsController.php
+++ b/app/Http/Controllers/Admin/SettingsController.php
@@ -3,12 +3,11 @@
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
-use App\Models\Settings;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
-use Illuminate\Http\Request;
use Illuminate\Http\Response;
+use Qirolab\Theme\Theme;
class SettingsController extends Controller
{
@@ -19,25 +18,32 @@ class SettingsController extends Controller
*/
public function index()
{
+
+
//Get all tabs as laravel view paths
$tabs = [];
- foreach (glob(resource_path('views/admin/settings/tabs/*.blade.php')) as $filename) {
- $tabs[] = 'admin.settings.tabs.' . basename($filename, '.blade.php');
+ foreach (glob(Theme::getViewPaths()[0] . '/admin/settings/tabs/*.blade.php') as $filename) {
+ $tabs[] = 'admin.settings.tabs.'.basename($filename, '.blade.php');
}
+
//Generate a html list item for each tab based on tabs file basename, set first tab as active
$tabListItems = [];
foreach ($tabs as $tab) {
$tabName = str_replace('admin.settings.tabs.', '', $tab);
$tabListItems[] = '';
+ return '
';
})
->addColumn('credits', function (User $user) {
- return ' ' . $user->credits();
+ return ' '.$user->credits();
})
->addColumn('verified', function (User $user) {
return $user->getVerifiedStatus();
@@ -282,31 +288,33 @@ class UserController extends Controller
return $user->servers->count();
})
->addColumn('referrals', function (User $user) {
- return DB::table('user_referrals')->where("referral_id","=",$user->id)->count();
+ return DB::table('user_referrals')->where('referral_id', '=', $user->id)->count();
})
->addColumn('discordId', function (User $user) {
return $user->discordUser ? $user->discordUser->id : '';
})
->addColumn('last_seen', function (User $user) {
- return $user->last_seen ? $user->last_seen->diffForHumans() : '';
+ return ['display' => $user->last_seen ? $user->last_seen->diffForHumans() : '',
+ 'raw' => $user->last_seen ? strtotime($user->last_seen) : '', ];
})
->addColumn('actions', function (User $user) {
- $suspendColor = $user->isSuspended() ? "btn-success" : "btn-warning";
- $suspendIcon = $user->isSuspended() ? "fa-play-circle" : "fa-pause-circle";
- $suspendText = $user->isSuspended() ? __("Unsuspend") : __("Suspend");
+ $suspendColor = $user->isSuspended() ? 'btn-success' : 'btn-warning';
+ $suspendIcon = $user->isSuspended() ? 'fa-play-circle' : 'fa-pause-circle';
+ $suspendText = $user->isSuspended() ? __('Unsuspend') : __('Suspend');
+
return '
-
-
-
-
-
-
';
})
@@ -326,14 +334,14 @@ class UserController extends Controller
break;
}
- return '' . $user->role . '';
+ return ''.$user->role.'';
})
->editColumn('name', function (User $user) {
- return 'pterodactyl_id . '">' . strip_tags($user->name) . '';
+ return ''.strip_tags($user->name).'';
})
- ->orderColumn('last_seen', function ($query) {
+ /*->orderColumn('last_seen', function ($query) {
$query->orderBy('last_seen', "desc");
- })
+ })*/
->rawColumns(['avatar', 'name', 'credits', 'role', 'usage', 'referrals', 'actions', 'last_seen'])
->make(true);
}
diff --git a/app/Http/Controllers/Admin/VoucherController.php b/app/Http/Controllers/Admin/VoucherController.php
index 51cb5000..ce8bcf5d 100644
--- a/app/Http/Controllers/Admin/VoucherController.php
+++ b/app/Http/Controllers/Admin/VoucherController.php
@@ -40,16 +40,16 @@ class VoucherController extends Controller
/**
* Store a newly created resource in storage.
*
- * @param Request $request
+ * @param Request $request
* @return RedirectResponse
*/
public function store(Request $request)
{
$request->validate([
- 'memo' => 'nullable|string|max:191',
- 'code' => 'required|string|alpha_dash|max:36|min:4|unique:vouchers',
- 'uses' => 'required|numeric|max:2147483647|min:1',
- 'credits' => 'required|numeric|between:0,99999999',
+ 'memo' => 'nullable|string|max:191',
+ 'code' => 'required|string|alpha_dash|max:36|min:4|unique:vouchers',
+ 'uses' => 'required|numeric|max:2147483647|min:1',
+ 'credits' => 'required|numeric|between:0,99999999',
'expires_at' => 'nullable|multiple_date_format:d-m-Y H:i:s,d-m-Y|after:now|before:10 years',
]);
@@ -61,7 +61,7 @@ class VoucherController extends Controller
/**
* Display the specified resource.
*
- * @param Voucher $voucher
+ * @param Voucher $voucher
* @return Response
*/
public function show(Voucher $voucher)
@@ -72,30 +72,30 @@ class VoucherController extends Controller
/**
* Show the form for editing the specified resource.
*
- * @param Voucher $voucher
+ * @param Voucher $voucher
* @return Application|Factory|View
*/
public function edit(Voucher $voucher)
{
return view('admin.vouchers.edit', [
- 'voucher' => $voucher
+ 'voucher' => $voucher,
]);
}
/**
* Update the specified resource in storage.
*
- * @param Request $request
- * @param Voucher $voucher
+ * @param Request $request
+ * @param Voucher $voucher
* @return RedirectResponse
*/
public function update(Request $request, Voucher $voucher)
{
$request->validate([
- 'memo' => 'nullable|string|max:191',
- 'code' => "required|string|alpha_dash|max:36|min:4|unique:vouchers,code,{$voucher->id}",
- 'uses' => 'required|numeric|max:2147483647|min:1',
- 'credits' => 'required|numeric|between:0,99999999',
+ 'memo' => 'nullable|string|max:191',
+ 'code' => "required|string|alpha_dash|max:36|min:4|unique:vouchers,code,{$voucher->id}",
+ 'uses' => 'required|numeric|max:2147483647|min:1',
+ 'credits' => 'required|numeric|between:0,99999999',
'expires_at' => 'nullable|multiple_date_format:d-m-Y H:i:s,d-m-Y|after:now|before:10 years',
]);
@@ -107,61 +107,71 @@ class VoucherController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param Voucher $voucher
+ * @param Voucher $voucher
* @return RedirectResponse
*/
public function destroy(Voucher $voucher)
{
$voucher->delete();
+
return redirect()->back()->with('success', __('voucher has been removed!'));
}
public function users(Voucher $voucher)
{
return view('admin.vouchers.users', [
- 'voucher' => $voucher
+ 'voucher' => $voucher,
]);
}
/**
- * @param Request $request
+ * @param Request $request
* @return JsonResponse
+ *
* @throws ValidationException
*/
public function redeem(Request $request)
{
- #general validations
+ //general validations
$request->validate([
- 'code' => 'required|exists:vouchers,code'
+ 'code' => 'required|exists:vouchers,code',
]);
- #get voucher by code
+ //get voucher by code
$voucher = Voucher::where('code', '=', $request->input('code'))->firstOrFail();
- #extra validations
- if ($voucher->getStatus() == 'USES_LIMIT_REACHED') throw ValidationException::withMessages([
- 'code' => __('This voucher has reached the maximum amount of uses')
- ]);
+ //extra validations
+ if ($voucher->getStatus() == 'USES_LIMIT_REACHED') {
+ throw ValidationException::withMessages([
+ 'code' => __('This voucher has reached the maximum amount of uses'),
+ ]);
+ }
- if ($voucher->getStatus() == 'EXPIRED') throw ValidationException::withMessages([
- 'code' => __('This voucher has expired')
- ]);
+ if ($voucher->getStatus() == 'EXPIRED') {
+ throw ValidationException::withMessages([
+ 'code' => __('This voucher has expired'),
+ ]);
+ }
- if (!$request->user()->vouchers()->where('id', '=', $voucher->id)->get()->isEmpty()) throw ValidationException::withMessages([
- 'code' => __('You already redeemed this voucher code')
- ]);
+ if (! $request->user()->vouchers()->where('id', '=', $voucher->id)->get()->isEmpty()) {
+ throw ValidationException::withMessages([
+ 'code' => __('You already redeemed this voucher code'),
+ ]);
+ }
- if ($request->user()->credits + $voucher->credits >= 99999999) throw ValidationException::withMessages([
- 'code' => "You can't redeem this voucher because you would exceed the limit of " . CREDITS_DISPLAY_NAME
- ]);
+ if ($request->user()->credits + $voucher->credits >= 99999999) {
+ throw ValidationException::withMessages([
+ 'code' => "You can't redeem this voucher because you would exceed the limit of ".CREDITS_DISPLAY_NAME,
+ ]);
+ }
- #redeem voucher
+ //redeem voucher
$voucher->redeem($request->user());
event(new UserUpdateCreditsEvent($request->user()));
return response()->json([
- 'success' => "{$voucher->credits} " . CREDITS_DISPLAY_NAME ." ". __("have been added to your balance!")
+ 'success' => "{$voucher->credits} ".CREDITS_DISPLAY_NAME.' '.__('have been added to your balance!'),
]);
}
@@ -171,10 +181,10 @@ class VoucherController extends Controller
return datatables($users)
->editColumn('name', function (User $user) {
- return '' . $user->name . '';
+ return ''.$user->name.'';
})
->addColumn('credits', function (User $user) {
- return ' ' . $user->credits();
+ return ' '.$user->credits();
})
->addColumn('last_seen', function (User $user) {
return $user->last_seen ? $user->last_seen->diffForHumans() : '';
@@ -182,6 +192,7 @@ class VoucherController extends Controller
->rawColumns(['name', 'credits', 'last_seen'])
->make();
}
+
public function dataTable()
{
$query = Voucher::query();
@@ -189,20 +200,23 @@ class VoucherController extends Controller
return datatables($query)
->addColumn('actions', function (Voucher $voucher) {
return '
-
-
+
+
-
';
})
->addColumn('status', function (Voucher $voucher) {
$color = 'success';
- if ($voucher->getStatus() != __('VALID')) $color = 'danger';
- return '' . $voucher->getStatus() . '';
+ if ($voucher->getStatus() != __('VALID')) {
+ $color = 'danger';
+ }
+
+ return ''.$voucher->getStatus().'';
})
->editColumn('uses', function (Voucher $voucher) {
return "{$voucher->used} / {$voucher->uses}";
@@ -211,7 +225,10 @@ class VoucherController extends Controller
return number_format($voucher->credits, 2, '.', '');
})
->editColumn('expires_at', function (Voucher $voucher) {
- if (!$voucher->expires_at) return "";
+ if (! $voucher->expires_at) {
+ return '';
+ }
+
return $voucher->expires_at ? $voucher->expires_at->diffForHumans() : '';
})
->editColumn('code', function (Voucher $voucher) {
diff --git a/app/Http/Controllers/Api/NotificationController.php b/app/Http/Controllers/Api/NotificationController.php
index 9fe61c79..9ccc47af 100644
--- a/app/Http/Controllers/Api/NotificationController.php
+++ b/app/Http/Controllers/Api/NotificationController.php
@@ -19,8 +19,9 @@ class NotificationController extends Controller
{
/**
* Display all notifications of an user.
- * @param Request $request
- * @param int $userId
+ *
+ * @param Request $request
+ * @param int $userId
* @return Response
*/
public function index(Request $request, int $userId)
@@ -28,14 +29,14 @@ class NotificationController extends Controller
$discordUser = DiscordUser::find($userId);
$user = $discordUser ? $discordUser->user : User::findOrFail($userId);
- return $user->notifications()->paginate($request->query("per_page", 50));
+ return $user->notifications()->paginate($request->query('per_page', 50));
}
/**
* Display a specific notification
*
- * @param int $userId
- * @param int $notificationId
+ * @param int $userId
+ * @param int $notificationId
* @return JsonResponse
*/
public function view(int $userId, $notificationId)
@@ -43,10 +44,10 @@ class NotificationController extends Controller
$discordUser = DiscordUser::find($userId);
$user = $discordUser ? $discordUser->user : User::findOrFail($userId);
- $notification = $user->notifications()->where("id", $notificationId)->get()->first();
+ $notification = $user->notifications()->where('id', $notificationId)->get()->first();
- if (!$notification) {
- return response()->json(["message" => "Notification not found."], 404);
+ if (! $notification) {
+ return response()->json(['message' => 'Notification not found.'], 404);
}
return $notification;
@@ -55,42 +56,43 @@ class NotificationController extends Controller
/**
* Send a notification to an user.
*
- * @param Request $request
+ * @param Request $request
* @return JsonResponse
+ *
* @throws ValidationException
*/
public function send(Request $request)
{
$data = $request->validate([
- "via" => ["required", new Delimited("in:mail,database")],
- "all" => "required_without:users|boolean",
- "users" => ["required_without:all"],
- "title" => "required|string|min:1",
- "content" => "required|string|min:1"
+ 'via' => ['required', new Delimited('in:mail,database')],
+ 'all' => 'required_without:users|boolean',
+ 'users' => ['required_without:all'],
+ 'title' => 'required|string|min:1',
+ 'content' => 'required|string|min:1',
]);
- $via = explode(",", $data["via"]);
+ $via = explode(',', $data['via']);
$mail = null;
$database = null;
- if (in_array("database", $via)) {
+ if (in_array('database', $via)) {
$database = [
- "title" => $data["title"],
- "content" => $data["content"]
+ 'title' => $data['title'],
+ 'content' => $data['content'],
];
}
- if (in_array("mail", $via)) {
+ if (in_array('mail', $via)) {
$mail = (new MailMessage)
- ->subject($data["title"])
- ->line(new HtmlString($data["content"]));
+ ->subject($data['title'])
+ ->line(new HtmlString($data['content']));
}
- $all = $data["all"] ?? false;
+ $all = $data['all'] ?? false;
if ($all) {
$users = User::all();
} else {
- $userIds = explode(",", $data["users"]);
+ $userIds = explode(',', $data['users']);
$users = User::query()
- ->whereIn("id", $userIds)
+ ->whereIn('id', $userIds)
->orWhereHas('discordUser', function (Builder $builder) use ($userIds) {
$builder->whereIn('id', $userIds);
})
@@ -104,13 +106,14 @@ class NotificationController extends Controller
}
Notification::send($users, new DynamicNotification($via, $database, $mail));
- return response()->json(["message" => "Notification successfully sent.", 'user_count' => $users->count()]);
+
+ return response()->json(['message' => 'Notification successfully sent.', 'user_count' => $users->count()]);
}
/**
* Delete all notifications from an user
*
- * @param int $userId
+ * @param int $userId
* @return JsonResponse
*/
public function delete(int $userId)
@@ -120,15 +123,14 @@ class NotificationController extends Controller
$count = $user->notifications()->delete();
- return response()->json(["message" => "All notifications have been successfully deleted.", "count" => $count]);
+ return response()->json(['message' => 'All notifications have been successfully deleted.', 'count' => $count]);
}
-
/**
* Delete a specific notification
*
- * @param int $userId
- * @param int $notificationId
+ * @param int $userId
+ * @param int $notificationId
* @return JsonResponse
*/
public function deleteOne(int $userId, $notificationid)
@@ -136,13 +138,14 @@ class NotificationController extends Controller
$discordUser = DiscordUser::find($userId);
$user = $discordUser ? $discordUser->user : User::findOrFail($userId);
- $notification = $user->notifications()->where("id", $notificationid)->get()->first();
+ $notification = $user->notifications()->where('id', $notificationid)->get()->first();
- if (!$notification) {
- return response()->json(["message" => "Notification not found."], 404);
+ if (! $notification) {
+ return response()->json(['message' => 'Notification not found.'], 404);
}
$notification->delete();
+
return response()->json($notification);
}
}
diff --git a/app/Http/Controllers/Api/ServerController.php b/app/Http/Controllers/Api/ServerController.php
index 1b9468c0..bd591ced 100644
--- a/app/Http/Controllers/Api/ServerController.php
+++ b/app/Http/Controllers/Api/ServerController.php
@@ -15,12 +15,13 @@ use Spatie\QueryBuilder\QueryBuilder;
class ServerController extends Controller
{
public const ALLOWED_INCLUDES = ['product', 'user'];
+
public const ALLOWED_FILTERS = ['name', 'suspended', 'identifier', 'pterodactyl_id', 'user_id', 'product_id'];
/**
* Display a listing of the resource.
*
- * @param Request $request
+ * @param Request $request
* @return LengthAwarePaginator
*/
public function index(Request $request)
@@ -35,8 +36,7 @@ class ServerController extends Controller
/**
* Display the specified resource.
*
- * @param Server $server
- *
+ * @param Server $server
* @return Server|Collection|Model
*/
public function show(Server $server)
@@ -51,19 +51,20 @@ class ServerController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param Server $server
+ * @param Server $server
* @return Server
*/
public function destroy(Server $server)
{
$server->delete();
+
return $server;
}
-
/**
* suspend server
- * @param Server $server
+ *
+ * @param Server $server
* @return Server|JsonResponse
*/
public function suspend(Server $server)
@@ -77,10 +78,10 @@ class ServerController extends Controller
return $server->load('product');
}
-
/**
* unsuspend server
- * @param Server $server
+ *
+ * @param Server $server
* @return Server|JsonResponse
*/
public function unSuspend(Server $server)
diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php
index 3f308405..dab72dba 100644
--- a/app/Http/Controllers/Api/UserController.php
+++ b/app/Http/Controllers/Api/UserController.php
@@ -6,7 +6,6 @@ use App\Classes\Pterodactyl;
use App\Events\UserUpdateCreditsEvent;
use App\Http\Controllers\Controller;
use App\Models\DiscordUser;
-use App\Models\Settings;
use App\Models\User;
use App\Notifications\ReferralNotification;
use Carbon\Carbon;
@@ -29,12 +28,13 @@ use Spatie\QueryBuilder\QueryBuilder;
class UserController extends Controller
{
const ALLOWED_INCLUDES = ['servers', 'notifications', 'payments', 'vouchers', 'discordUser'];
+
const ALLOWED_FILTERS = ['name', 'server_limit', 'email', 'pterodactyl_id', 'role', 'suspended'];
/**
* Display a listing of the resource.
*
- * @param Request $request
+ * @param Request $request
* @return LengthAwarePaginator
*/
public function index(Request $request)
@@ -46,12 +46,10 @@ class UserController extends Controller
return $query->paginate($request->input('per_page') ?? 50);
}
-
/**
* Display the specified resource.
*
- * @param int $id
- *
+ * @param int $id
* @return User|Builder|Collection|Model
*/
public function show(int $id)
@@ -70,12 +68,11 @@ class UserController extends Controller
return $query->firstOrFail();
}
-
/**
* Update the specified resource in storage.
*
- * @param Request $request
- * @param int $id
+ * @param Request $request
+ * @param int $id
* @return User
*/
public function update(Request $request, int $id)
@@ -84,28 +81,28 @@ class UserController extends Controller
$user = $discordUser ? $discordUser->user : User::findOrFail($id);
$request->validate([
- "name" => "sometimes|string|min:4|max:30",
- "email" => "sometimes|string|email",
- "credits" => "sometimes|numeric|min:0|max:1000000",
- "server_limit" => "sometimes|numeric|min:0|max:1000000",
- "role" => ['sometimes', Rule::in(['admin', 'moderator', 'client', 'member'])],
+ 'name' => 'sometimes|string|min:4|max:30',
+ 'email' => 'sometimes|string|email',
+ 'credits' => 'sometimes|numeric|min:0|max:1000000',
+ 'server_limit' => 'sometimes|numeric|min:0|max:1000000',
+ 'role' => ['sometimes', Rule::in(['admin', 'moderator', 'client', 'member'])],
]);
event(new UserUpdateCreditsEvent($user));
//Update Users Password on Pterodactyl
//Username,Mail,First and Lastname are required aswell
- $response = Pterodactyl::client()->patch('/application/users/' . $user->pterodactyl_id, [
- "username" => $request->name,
- "first_name" => $request->name,
- "last_name" => $request->name,
- "email" => $request->email,
+ $response = Pterodactyl::client()->patch('/application/users/'.$user->pterodactyl_id, [
+ 'username' => $request->name,
+ 'first_name' => $request->name,
+ 'last_name' => $request->name,
+ 'email' => $request->email,
]);
if ($response->failed()) {
throw ValidationException::withMessages([
'pterodactyl_error_message' => $response->toException()->getMessage(),
- 'pterodactyl_error_status' => $response->toException()->getCode()
+ 'pterodactyl_error_status' => $response->toException()->getCode(),
]);
}
$user->update($request->all());
@@ -116,9 +113,10 @@ class UserController extends Controller
/**
* increments the users credits or/and server_limit
*
- * @param Request $request
- * @param int $id
+ * @param Request $request
+ * @param int $id
* @return User
+ *
* @throws ValidationException
*/
public function increment(Request $request, int $id)
@@ -127,22 +125,26 @@ class UserController extends Controller
$user = $discordUser ? $discordUser->user : User::findOrFail($id);
$request->validate([
- "credits" => "sometimes|numeric|min:0|max:1000000",
- "server_limit" => "sometimes|numeric|min:0|max:1000000",
+ 'credits' => 'sometimes|numeric|min:0|max:1000000',
+ 'server_limit' => 'sometimes|numeric|min:0|max:1000000',
]);
if ($request->credits) {
- if ($user->credits + $request->credits >= 99999999) throw ValidationException::withMessages([
- 'credits' => "You can't add this amount of credits because you would exceed the credit limit"
- ]);
+ if ($user->credits + $request->credits >= 99999999) {
+ throw ValidationException::withMessages([
+ 'credits' => "You can't add this amount of credits because you would exceed the credit limit",
+ ]);
+ }
event(new UserUpdateCreditsEvent($user));
$user->increment('credits', $request->credits);
}
if ($request->server_limit) {
- if ($user->server_limit + $request->server_limit >= 2147483647) throw ValidationException::withMessages([
- 'server_limit' => "You cannot add this amount of servers because it would exceed the server limit."
- ]);
+ if ($user->server_limit + $request->server_limit >= 2147483647) {
+ throw ValidationException::withMessages([
+ 'server_limit' => 'You cannot add this amount of servers because it would exceed the server limit.',
+ ]);
+ }
$user->increment('server_limit', $request->server_limit);
}
@@ -152,9 +154,10 @@ class UserController extends Controller
/**
* decrements the users credits or/and server_limit
*
- * @param Request $request
- * @param int $id
+ * @param Request $request
+ * @param int $id
* @return User
+ *
* @throws ValidationException
*/
public function decrement(Request $request, int $id)
@@ -163,21 +166,25 @@ class UserController extends Controller
$user = $discordUser ? $discordUser->user : User::findOrFail($id);
$request->validate([
- "credits" => "sometimes|numeric|min:0|max:1000000",
- "server_limit" => "sometimes|numeric|min:0|max:1000000",
+ 'credits' => 'sometimes|numeric|min:0|max:1000000',
+ 'server_limit' => 'sometimes|numeric|min:0|max:1000000',
]);
if ($request->credits) {
- if ($user->credits - $request->credits < 0) throw ValidationException::withMessages([
- 'credits' => "You can't remove this amount of credits because you would exceed the minimum credit limit"
- ]);
+ if ($user->credits - $request->credits < 0) {
+ throw ValidationException::withMessages([
+ 'credits' => "You can't remove this amount of credits because you would exceed the minimum credit limit",
+ ]);
+ }
$user->decrement('credits', $request->credits);
}
if ($request->server_limit) {
- if ($user->server_limit - $request->server_limit < 0) throw ValidationException::withMessages([
- 'server_limit' => "You cannot remove this amount of servers because it would exceed the minimum server."
- ]);
+ if ($user->server_limit - $request->server_limit < 0) {
+ throw ValidationException::withMessages([
+ 'server_limit' => 'You cannot remove this amount of servers because it would exceed the minimum server.',
+ ]);
+ }
$user->decrement('server_limit', $request->server_limit);
}
@@ -187,9 +194,10 @@ class UserController extends Controller
/**
* Suspends the user
*
- * @param Request $request
- * @param int $id
+ * @param Request $request
+ * @param int $id
* @return bool
+ *
* @throws ValidationException
*/
public function suspend(Request $request, int $id)
@@ -210,9 +218,10 @@ class UserController extends Controller
/**
* Unsuspend the user
*
- * @param Request $request
- * @param int $id
+ * @param Request $request
+ * @param int $id
* @return bool
+ *
* @throws ValidationException
*/
public function unsuspend(Request $request, int $id)
@@ -220,9 +229,9 @@ class UserController extends Controller
$discordUser = DiscordUser::find($id);
$user = $discordUser ? $discordUser->user : User::findOrFail($id);
- if (!$user->isSuspended()) {
+ if (! $user->isSuspended()) {
throw ValidationException::withMessages([
- 'error' => "You cannot unsuspend an User who is not suspended."
+ 'error' => 'You cannot unsuspend an User who is not suspended.',
]);
}
@@ -230,17 +239,22 @@ class UserController extends Controller
return $user;
}
+
/**
* Create a unique Referral Code for User
+ *
* @return string
*/
- protected function createReferralCode(){
+ protected function createReferralCode()
+ {
$referralcode = STR::random(8);
if (User::where('referral_code', '=', $referralcode)->exists()) {
$this->createReferralCode();
}
+
return $referralcode;
}
+
/**
* @throws ValidationException
*/
@@ -251,13 +265,13 @@ class UserController extends Controller
'email' => ['required', 'string', 'email', 'max:64', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'max:191'],
]);
-
+
// Prevent the creation of new users via API if this is enabled.
- if (!config('SETTINGS::SYSTEM:CREATION_OF_NEW_USERS', 'true')) {
+ if (! config('SETTINGS::SYSTEM:CREATION_OF_NEW_USERS', 'true')) {
throw ValidationException::withMessages([
- 'error' => "The creation of new users has been blocked by the system administrator."
+ 'error' => 'The creation of new users has been blocked by the system administrator.',
]);
- }
+ }
$user = User::create([
'name' => $request->input('name'),
@@ -269,45 +283,44 @@ class UserController extends Controller
]);
$response = Pterodactyl::client()->post('/application/users', [
- "external_id" => App::environment('local') ? Str::random(16) : (string)$user->id,
- "username" => $user->name,
- "email" => $user->email,
- "first_name" => $user->name,
- "last_name" => $user->name,
- "password" => $request->input('password'),
- "root_admin" => false,
- "language" => "en"
+ 'external_id' => App::environment('local') ? Str::random(16) : (string) $user->id,
+ 'username' => $user->name,
+ 'email' => $user->email,
+ 'first_name' => $user->name,
+ 'last_name' => $user->name,
+ 'password' => $request->input('password'),
+ 'root_admin' => false,
+ 'language' => 'en',
]);
if ($response->failed()) {
$user->delete();
throw ValidationException::withMessages([
'pterodactyl_error_message' => $response->toException()->getMessage(),
- 'pterodactyl_error_status' => $response->toException()->getCode()
+ 'pterodactyl_error_status' => $response->toException()->getCode(),
]);
}
$user->update([
- 'pterodactyl_id' => $response->json()['attributes']['id']
+ 'pterodactyl_id' => $response->json()['attributes']['id'],
]);
//INCREMENT REFERRAL-USER CREDITS
- if(!empty($request->input("referral_code"))){
- $ref_code = $request->input("referral_code");
+ if (! empty($request->input('referral_code'))) {
+ $ref_code = $request->input('referral_code');
$new_user = $user->id;
- if($ref_user = User::query()->where('referral_code', '=', $ref_code)->first()) {
- if(config("SETTINGS::REFERRAL:MODE") == "register" || config("SETTINGS::REFERRAL:MODE") == "both") {
- $ref_user->increment('credits', config("SETTINGS::REFERRAL::REWARD"));
+ if ($ref_user = User::query()->where('referral_code', '=', $ref_code)->first()) {
+ if (config('SETTINGS::REFERRAL:MODE') == 'register' || config('SETTINGS::REFERRAL:MODE') == 'both') {
+ $ref_user->increment('credits', config('SETTINGS::REFERRAL::REWARD'));
$ref_user->notify(new ReferralNotification($ref_user->id, $new_user));
}
//INSERT INTO USER_REFERRALS TABLE
DB::table('user_referrals')->insert([
'referral_id' => $ref_user->id,
'registered_user_id' => $user->id,
- 'created_at' => Carbon::now(),
- 'updated_at' => Carbon::now()
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
}
-
}
$user->sendEmailVerificationNotification();
@@ -317,7 +330,7 @@ class UserController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param int $id
+ * @param int $id
* @return Application|Response|ResponseFactory
*/
public function destroy(int $id)
@@ -326,6 +339,7 @@ class UserController extends Controller
$user = $discordUser ? $discordUser->user : User::findOrFail($id);
$user->delete();
+
return response($user, 200);
}
}
diff --git a/app/Http/Controllers/Api/VoucherController.php b/app/Http/Controllers/Api/VoucherController.php
index a094fe1d..6b3b8d3c 100644
--- a/app/Http/Controllers/Api/VoucherController.php
+++ b/app/Http/Controllers/Api/VoucherController.php
@@ -15,6 +15,7 @@ use Spatie\QueryBuilder\QueryBuilder;
class VoucherController extends Controller
{
const ALLOWED_INCLUDES = ['users'];
+
const ALLOWED_FILTERS = ['code', 'memo', 'credits', 'uses'];
/**
@@ -44,7 +45,7 @@ class VoucherController extends Controller
/**
* Store a newly created resource in storage.
*
- * @param Request $request
+ * @param Request $request
* @return Response
*/
public function store(Request $request)
@@ -54,7 +55,7 @@ class VoucherController extends Controller
'code' => 'required|string|alpha_dash|max:36|min:4|unique:vouchers',
'uses' => 'required|numeric|max:2147483647|min:1',
'credits' => 'required|numeric|between:0,99999999',
- 'expires_at' => 'nullable|multiple_date_format:d-m-Y H:i:s,d-m-Y|after:now|before:10 years'
+ 'expires_at' => 'nullable|multiple_date_format:d-m-Y H:i:s,d-m-Y|after:now|before:10 years',
]);
return Voucher::create($request->all());
@@ -63,8 +64,7 @@ class VoucherController extends Controller
/**
* Display the specified resource.
*
- * @param int $id
- *
+ * @param int $id
* @return Voucher|Collection|Model
*/
public function show(int $id)
@@ -79,7 +79,7 @@ class VoucherController extends Controller
/**
* Show the form for editing the specified resource.
*
- * @param int $id
+ * @param int $id
* @return Response
*/
public function edit($id)
@@ -90,8 +90,8 @@ class VoucherController extends Controller
/**
* Update the specified resource in storage.
*
- * @param Request $request
- * @param int $id
+ * @param Request $request
+ * @param int $id
* @return Response
*/
public function update(Request $request, int $id)
@@ -103,7 +103,7 @@ class VoucherController extends Controller
'code' => "required|string|alpha_dash|max:36|min:4|unique:vouchers,code,{$voucher->id}",
'uses' => 'required|numeric|max:2147483647|min:1',
'credits' => 'required|numeric|between:0,99999999',
- 'expires_at' => 'nullable|multiple_date_format:d-m-Y H:i:s,d-m-Y|after:now|before:10 years'
+ 'expires_at' => 'nullable|multiple_date_format:d-m-Y H:i:s,d-m-Y|after:now|before:10 years',
]);
$voucher->update($request->all());
@@ -114,21 +114,22 @@ class VoucherController extends Controller
/**
* Remove the specified resource from storage.
*
- * @param int $id
+ * @param int $id
* @return Response
*/
public function destroy(int $id)
{
$voucher = Voucher::findOrFail($id);
$voucher->delete();
+
return $voucher;
}
-
/**
* get linked users
- * @param Request $request
- * @param Voucher $voucher
+ *
+ * @param Request $request
+ * @param Voucher $voucher
* @return LengthAwarePaginator
*/
public function users(Request $request, Voucher $voucher)
@@ -138,7 +139,7 @@ class VoucherController extends Controller
'nullable',
'string',
Rule::in(['discorduser']),
- ]
+ ],
]);
if ($request->input('include') == 'discorduser') {
diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php
index 465c39cc..bd9df2d8 100644
--- a/app/Http/Controllers/Auth/ForgotPasswordController.php
+++ b/app/Http/Controllers/Auth/ForgotPasswordController.php
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
+use Illuminate\Http\Request;
class ForgotPasswordController extends Controller
{
@@ -19,4 +20,27 @@ class ForgotPasswordController extends Controller
*/
use SendsPasswordResetEmails;
+
+ /**
+ * Create a new controller instance.
+ *
+ * @return void
+ */
+ public function __construct()
+ {
+ $this->middleware('guest');
+ }
+
+ protected function validateEmail(Request $request)
+ {
+ $this->validate($request, [
+ 'email' => ['required', 'string', 'email', 'max:255'],
+ ]);
+
+ if (config('SETTINGS::RECAPTCHA:ENABLED') == 'true') {
+ $this->validate($request, [
+ 'g-recaptcha-response' => 'required|recaptcha',
+ ]);
+ }
+ }
}
diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php
index 62089d7e..848db48a 100644
--- a/app/Http/Controllers/Auth/LoginController.php
+++ b/app/Http/Controllers/Auth/LoginController.php
@@ -3,12 +3,10 @@
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
-use App\Models\User;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Facades\Log;
class LoginController extends Controller
{
@@ -42,20 +40,30 @@ class LoginController extends Controller
$this->middleware('guest')->except('logout');
}
+ /**
+ * Get the login username to be used by the controller.
+ *
+ * @return string
+ */
+ public function username()
+ {
+ $login = request()->input('email');
+ $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'name';
+ request()->merge([$field => $login]);
+ return $field;
+ }
+
public function login(Request $request)
{
-
$validationRules = [
- $this->username() => 'required|string',
- 'password' => 'required|string',
+ $this->username() => 'required|string',
+ 'password' => 'required|string',
];
if (config('SETTINGS::RECAPTCHA:ENABLED') == 'true') {
$validationRules['g-recaptcha-response'] = ['required', 'recaptcha'];
}
$request->validate($validationRules);
-
-
// If the class is using the ThrottlesLogins trait, we can automatically throttle
// the login attempts for this application. We'll key this by the username and
// the IP address of the client making these requests into this application.
@@ -72,6 +80,7 @@ class LoginController extends Controller
$user = Auth::user();
$user->last_seen = now();
$user->save();
+
return $this->sendLoginResponse($request);
}
diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php
index 5a805987..465535bf 100644
--- a/app/Http/Controllers/Auth/RegisterController.php
+++ b/app/Http/Controllers/Auth/RegisterController.php
@@ -4,17 +4,14 @@ namespace App\Http\Controllers\Auth;
use App\Classes\Pterodactyl;
use App\Http\Controllers\Controller;
-use App\Models\Settings;
use App\Models\User;
use App\Notifications\ReferralNotification;
use App\Providers\RouteServiceProvider;
use Carbon\Carbon;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\App;
-use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
-use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
use Illuminate\Validation\ValidationException;
@@ -54,28 +51,34 @@ class RegisterController extends Controller
/**
* Get a validator for an incoming registration request.
*
- * @param array $data
+ * @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
$validationRules = [
- 'name' => ['required', 'string', 'max:30', 'min:4', 'alpha_num', 'unique:users'],
- 'email' => ['required', 'string', 'email', 'max:64', 'unique:users'],
- 'password' => ['required', 'string', 'min:8', 'confirmed'],
+ 'name' => ['required', 'string', 'max:30', 'min:4', 'alpha_num', 'unique:users'],
+ 'email' => ['required', 'string', 'email', 'max:64', 'unique:users'],
+ 'password' => ['required', 'string', 'min:8', 'confirmed'],
];
if (config('SETTINGS::RECAPTCHA:ENABLED') == 'true') {
$validationRules['g-recaptcha-response'] = ['required', 'recaptcha'];
}
+ if (config('SETTINGS::SYSTEM:SHOW_TOS') == 'true') {
+ $validationRules['terms'] = ['required'];
+ }
if (config('SETTINGS::SYSTEM:REGISTER_IP_CHECK', 'true') == 'true') {
//check if ip has already made an account
$data['ip'] = session()->get('ip') ?? request()->ip();
- if (User::where('ip', '=', request()->ip())->exists()) session()->put('ip', request()->ip());
- $validationRules['ip'] = ['unique:users'];
+ if (User::where('ip', '=', request()->ip())->exists()) {
+ session()->put('ip', request()->ip());
+ }
+ $validationRules['ip'] = ['unique:users'];
+
return Validator::make($data, $validationRules, [
- 'ip.unique' => "You have already made an account! Please contact support if you think this is incorrect."
+ 'ip.unique' => 'You have already made an account! Please contact support if you think this is incorrect.',
]);
}
@@ -85,43 +88,46 @@ class RegisterController extends Controller
/**
* Create a unique Referral Code for User
+ *
* @return string
*/
- protected function createReferralCode(){
+ protected function createReferralCode()
+ {
$referralcode = STR::random(8);
if (User::where('referral_code', '=', $referralcode)->exists()) {
$this->createReferralCode();
}
+
return $referralcode;
}
/**
* Create a new user instance after a valid registration.
*
- * @param array $data
+ * @param array $data
* @return User
*/
protected function create(array $data)
{
$user = User::create([
- 'name' => $data['name'],
- 'email' => $data['email'],
- 'credits' => config('SETTINGS::USER:INITIAL_CREDITS', 150),
+ 'name' => $data['name'],
+ 'email' => $data['email'],
+ 'credits' => config('SETTINGS::USER:INITIAL_CREDITS', 150),
'server_limit' => config('SETTINGS::USER:INITIAL_SERVER_LIMIT', 1),
- 'password' => Hash::make($data['password']),
+ 'password' => Hash::make($data['password']),
'referral_code' => $this->createReferralCode(),
]);
$response = Pterodactyl::client()->post('/application/users', [
- "external_id" => App::environment('local') ? Str::random(16) : (string)$user->id,
- "username" => $user->name,
- "email" => $user->email,
- "first_name" => $user->name,
- "last_name" => $user->name,
- "password" => $data['password'],
- "root_admin" => false,
- "language" => "en"
+ 'external_id' => App::environment('local') ? Str::random(16) : (string) $user->id,
+ 'username' => $user->name,
+ 'email' => $user->email,
+ 'first_name' => $user->name,
+ 'last_name' => $user->name,
+ 'password' => $data['password'],
+ 'root_admin' => false,
+ 'language' => 'en',
]);
if ($response->failed()) {
@@ -132,33 +138,32 @@ class RegisterController extends Controller
}
$user->update([
- 'pterodactyl_id' => $response->json()['attributes']['id']
+ 'pterodactyl_id' => $response->json()['attributes']['id'],
]);
//INCREMENT REFERRAL-USER CREDITS
- if(!empty($data['referral_code'])){
+ if (! empty($data['referral_code'])) {
$ref_code = $data['referral_code'];
$new_user = $user->id;
- if($ref_user = User::query()->where('referral_code', '=', $ref_code)->first()) {
- if(config("SETTINGS::REFERRAL:MODE") == "sign-up" || config("SETTINGS::REFERRAL:MODE") == "both") {
- $ref_user->increment('credits', config("SETTINGS::REFERRAL::REWARD"));
+ if ($ref_user = User::query()->where('referral_code', '=', $ref_code)->first()) {
+ if (config('SETTINGS::REFERRAL:MODE') == 'sign-up' || config('SETTINGS::REFERRAL:MODE') == 'both') {
+ $ref_user->increment('credits', config('SETTINGS::REFERRAL::REWARD'));
$ref_user->notify(new ReferralNotification($ref_user->id, $new_user));
//LOGS REFERRALS IN THE ACTIVITY LOG
activity()
->performedOn($user)
->causedBy($ref_user)
- ->log('gained '. config("SETTINGS::REFERRAL::REWARD").' '.config("SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME").' for sign-up-referral of '.$user->name.' (ID:'.$user->id.')');
+ ->log('gained '.config('SETTINGS::REFERRAL::REWARD').' '.config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME').' for sign-up-referral of '.$user->name.' (ID:'.$user->id.')');
}
//INSERT INTO USER_REFERRALS TABLE
DB::table('user_referrals')->insert([
'referral_id' => $ref_user->id,
'registered_user_id' => $user->id,
- 'created_at' => Carbon::now(),
- 'updated_at' => Carbon::now()
+ 'created_at' => Carbon::now(),
+ 'updated_at' => Carbon::now(),
]);
}
-
}
return $user;
diff --git a/app/Http/Controllers/Auth/SocialiteController.php b/app/Http/Controllers/Auth/SocialiteController.php
index c91a18f3..101a367a 100644
--- a/app/Http/Controllers/Auth/SocialiteController.php
+++ b/app/Http/Controllers/Auth/SocialiteController.php
@@ -4,10 +4,7 @@ namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\DiscordUser;
-use App\Models\Settings;
use App\Models\User;
-use App\Models\Voucher;
-use Exception;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Http;
use Laravel\Socialite\Facades\Socialite;
@@ -16,7 +13,7 @@ class SocialiteController extends Controller
{
public function redirect()
{
- $scopes = !empty(config("SETTINGS::DISCORD:BOT_TOKEN")) && !empty(config("SETTINGS::DISCORD:GUILD_ID")) ? ['guilds.join'] : [];
+ $scopes = ! empty(config('SETTINGS::DISCORD:BOT_TOKEN')) && ! empty(config('SETTINGS::DISCORD:GUILD_ID')) ? ['guilds.join'] : [];
return Socialite::driver('discord')
->scopes($scopes)
@@ -32,40 +29,39 @@ class SocialiteController extends Controller
/** @var User $user */
$user = Auth::user();
$discord = Socialite::driver('discord')->user();
- $botToken = config("SETTINGS::DISCORD:BOT_TOKEN");
- $guildId = config("SETTINGS::DISCORD:GUILD_ID");
- $roleId = config("SETTINGS::DISCORD:ROLE_ID");
+ $botToken = config('SETTINGS::DISCORD:BOT_TOKEN');
+ $guildId = config('SETTINGS::DISCORD:GUILD_ID');
+ $roleId = config('SETTINGS::DISCORD:ROLE_ID');
- //save / update discord_users
+ //save / update discord_users
- //check if discord account is already linked to an cpgg account
- if (is_null($user->discordUser)) {
- $discordLinked = DiscordUser::where('id', '=', $discord->id)->first();
- if ($discordLinked !== null) {
- return redirect()->route('profile.index')->with(
+ //check if discord account is already linked to an cpgg account
+ if (is_null($user->discordUser)) {
+ $discordLinked = DiscordUser::where('id', '=', $discord->id)->first();
+ if ($discordLinked !== null) {
+ return redirect()->route('profile.index')->with(
'error',
'Discord account already linked!'
);
- }
-
- //create discord user in db
- DiscordUser::create(array_merge($discord->user, ['user_id' => Auth::user()->id]));
-
- //update user
- Auth::user()->increment('credits', config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD'));
- Auth::user()->increment('server_limit', config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD'));
- Auth::user()->update(['discord_verified_at' => now()]);
-
- } else {
- $user->discordUser->update($discord->user);
}
+ //create discord user in db
+ DiscordUser::create(array_merge($discord->user, ['user_id' => Auth::user()->id]));
+
+ //update user
+ Auth::user()->increment('credits', config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD'));
+ Auth::user()->increment('server_limit', config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD'));
+ Auth::user()->update(['discord_verified_at' => now()]);
+ } else {
+ $user->discordUser->update($discord->user);
+ }
+
//force user into discord server
//TODO Add event on failure, to notify ppl involved
- if (!empty($guildId) && !empty($botToken)) {
+ if (! empty($guildId) && ! empty($botToken)) {
$response = Http::withHeaders(
[
- 'Authorization' => 'Bot ' . $botToken,
+ 'Authorization' => 'Bot '.$botToken,
'Content-Type' => 'application/json',
]
)->put(
@@ -74,10 +70,10 @@ class SocialiteController extends Controller
);
//give user a role in the discord server
- if (!empty($roleId)) {
+ if (! empty($roleId)) {
$response = Http::withHeaders(
[
- 'Authorization' => 'Bot ' . $botToken,
+ 'Authorization' => 'Bot '.$botToken,
'Content-Type' => 'application/json',
]
)->put(
diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php
index 54e34035..58203a0b 100644
--- a/app/Http/Controllers/HomeController.php
+++ b/app/Http/Controllers/HomeController.php
@@ -2,30 +2,36 @@
namespace App\Http\Controllers;
+use App\Models\PartnerDiscount;
use App\Models\UsefulLink;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\URL;
-
class HomeController extends Controller
{
- const TIME_LEFT_BG_SUCCESS = "bg-success";
- const TIME_LEFT_BG_WARNING = "bg-warning";
- const TIME_LEFT_BG_DANGER = "bg-danger";
+ const TIME_LEFT_BG_SUCCESS = 'bg-success';
+
+ const TIME_LEFT_BG_WARNING = 'bg-warning';
+
+ const TIME_LEFT_BG_DANGER = 'bg-danger';
public function __construct()
{
$this->middleware('auth');
}
- public function callHome(){
- if(Storage::exists("callHome")){return;}
+ public function callHome()
+ {
+ if (Storage::exists('callHome')) {
+ return;
+ }
Http::asForm()->post('https://market.controlpanel.gg/callhome.php', [
- 'id' => Hash::make(URL::current())
+ 'id' => Hash::make(URL::current()),
]);
Storage::put('callHome', 'This is only used to count the installations of cpgg.');
}
@@ -33,8 +39,7 @@ class HomeController extends Controller
/**
* @description Get the Background Color for the Days-Left-Box in HomeView
*
- * @param float $daysLeft
- *
+ * @param float $daysLeft
* @return string
*/
public function getTimeLeftBoxBackground(float $daysLeft): string
@@ -45,36 +50,40 @@ class HomeController extends Controller
if ($daysLeft <= 7) {
return $this::TIME_LEFT_BG_DANGER;
}
+
return $this::TIME_LEFT_BG_WARNING;
}
-
/**
* @description Set "hours", "days" or nothing behind the remaining time
*
- * @param float $daysLeft
- * @param float $hoursLeft
- *
+ * @param float $daysLeft
+ * @param float $hoursLeft
* @return string|void
*/
public function getTimeLeftBoxUnit(float $daysLeft, float $hoursLeft)
{
- if ($daysLeft > 1) return __('days');
- return $hoursLeft < 1 ? null : __("hours");
+ if ($daysLeft > 1) {
+ return __('days');
+ }
+
+ return $hoursLeft < 1 ? null : __('hours');
}
/**
* @description Get the Text for the Days-Left-Box in HomeView
*
- * @param float $daysLeft
- * @param float $hoursLeft
- *
+ * @param float $daysLeft
+ * @param float $hoursLeft
* @return string
*/
public function getTimeLeftBoxText(float $daysLeft, float $hoursLeft)
{
- if ($daysLeft > 1) return strval(number_format($daysLeft, 0));
- return ($hoursLeft < 1 ? __("You ran out of Credits") : strval($hoursLeft));
+ if ($daysLeft > 1) {
+ return strval(number_format($daysLeft, 0));
+ }
+
+ return $hoursLeft < 1 ? __('You ran out of Credits') : strval($hoursLeft);
}
/** Show the application dashboard. */
@@ -82,9 +91,9 @@ class HomeController extends Controller
{
$usage = Auth::user()->creditUsage();
$credits = Auth::user()->Credits();
- $bg = "";
- $boxText = "";
- $unit = "";
+ $bg = '';
+ $boxText = '';
+ $unit = '';
/** Build our Time-Left-Box */
if ($credits > 0.01 and $usage > 0) {
@@ -93,7 +102,7 @@ class HomeController extends Controller
$bg = $this->getTimeLeftBoxBackground($daysLeft);
$boxText = $this->getTimeLeftBoxText($daysLeft, $hoursLeft);
- $unit = $daysLeft < 1 ? ($hoursLeft < 1 ? null : __("hours")) : __("days");
+ $unit = $daysLeft < 1 ? ($hoursLeft < 1 ? null : __('hours')) : __('days');
}
$this->callhome();
@@ -105,7 +114,10 @@ class HomeController extends Controller
'useful_links' => UsefulLink::all()->sortBy('id'),
'bg' => $bg,
'boxText' => $boxText,
- 'unit' => $unit
+ 'unit' => $unit,
+ 'numberOfReferrals' => DB::table('user_referrals')->where('referral_id', '=', Auth::user()->id)->count(),
+ 'partnerDiscount' => PartnerDiscount::where('user_id', Auth::user()->id)->first(),
+ 'myDiscount' => PartnerDiscount::getDiscount(),
]);
}
}
diff --git a/app/Http/Controllers/Moderation/TicketsController.php b/app/Http/Controllers/Moderation/TicketsController.php
index ac08ba08..be974ad2 100644
--- a/app/Http/Controllers/Moderation/TicketsController.php
+++ b/app/Http/Controllers/Moderation/TicketsController.php
@@ -2,63 +2,71 @@
namespace App\Http\Controllers\Moderation;
-use App\Models\User;
-use App\Models\Ticket;
+use App\Http\Controllers\Controller;
use App\Models\Server;
+use App\Models\Ticket;
+use App\Models\TicketBlacklist;
use App\Models\TicketCategory;
use App\Models\TicketComment;
-use App\Models\TicketBlacklist;
-
-use App\Http\Controllers\Controller;
-use Illuminate\Support\Facades\Cache;
+use App\Models\User;
+use App\Notifications\Ticket\User\ReplyNotification;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
-use App\Notifications\Ticket\User\ReplyNotification;
class TicketsController extends Controller
{
- public function index() {
- $tickets = Ticket::orderBy('id','desc')->paginate(10);
+ public function index()
+ {
+ $tickets = Ticket::orderBy('id', 'desc')->paginate(10);
$ticketcategories = TicketCategory::all();
- return view("moderator.ticket.index", compact("tickets", "ticketcategories"));
+
+ return view('moderator.ticket.index', compact('tickets', 'ticketcategories'));
}
- public function show($ticket_id) {
- $ticket = Ticket::where("ticket_id", $ticket_id)->firstOrFail();
+
+ public function show($ticket_id)
+ {
+ $ticket = Ticket::where('ticket_id', $ticket_id)->firstOrFail();
$ticketcomments = $ticket->ticketcomments;
$ticketcategory = $ticket->ticketcategory;
$server = Server::where('id', $ticket->server)->first();
- return view("moderator.ticket.show", compact("ticket", "ticketcategory", "ticketcomments", "server"));
+
+ return view('moderator.ticket.show', compact('ticket', 'ticketcategory', 'ticketcomments', 'server'));
}
- public function close($ticket_id) {
- $ticket = Ticket::where("ticket_id", $ticket_id)->firstOrFail();
- $ticket->status = "Closed";
+ public function close($ticket_id)
+ {
+ $ticket = Ticket::where('ticket_id', $ticket_id)->firstOrFail();
+ $ticket->status = 'Closed';
$ticket->save();
$ticketOwner = $ticket->user;
- return redirect()->back()->with('success', __('A ticket has been closed, ID: #') . $ticket->ticket_id);
+
+ return redirect()->back()->with('success', __('A ticket has been closed, ID: #').$ticket->ticket_id);
}
- public function delete($ticket_id){
- $ticket = Ticket::where("ticket_id", $ticket_id)->firstOrFail();
- TicketComment::where("ticket_id", $ticket->id)->delete();
+ public function delete($ticket_id)
+ {
+ $ticket = Ticket::where('ticket_id', $ticket_id)->firstOrFail();
+ TicketComment::where('ticket_id', $ticket->id)->delete();
$ticket->delete();
- return redirect()->back()->with('success', __('A ticket has been deleted, ID: #') . $ticket_id);
+ return redirect()->back()->with('success', __('A ticket has been deleted, ID: #').$ticket_id);
}
- public function reply(Request $request) {
- $this->validate($request, array("ticketcomment" => "required"));
- $ticket = Ticket::where('id', $request->input("ticket_id"))->firstOrFail();
- $ticket->status = "Answered";
+ public function reply(Request $request)
+ {
+ $this->validate($request, ['ticketcomment' => 'required']);
+ $ticket = Ticket::where('id', $request->input('ticket_id'))->firstOrFail();
+ $ticket->status = 'Answered';
$ticket->update();
- TicketComment::create(array(
- "ticket_id" => $request->input("ticket_id"),
- "user_id" => Auth::user()->id,
- "ticketcomment" => $request->input("ticketcomment"),
- ));
+ TicketComment::create([
+ 'ticket_id' => $request->input('ticket_id'),
+ 'user_id' => Auth::user()->id,
+ 'ticketcomment' => $request->input('ticketcomment'),
+ ]);
$user = User::where('id', $ticket->user_id)->firstOrFail();
- $newmessage = $request->input("ticketcomment");
+ $newmessage = $request->input('ticketcomment');
$user->notify(new ReplyNotification($ticket, $user, $newmessage));
+
return redirect()->back()->with('success', __('Your comment has been submitted'));
}
@@ -71,23 +79,23 @@ class TicketsController extends Controller
return $tickets->ticketcategory->name;
})
->editColumn('title', function (Ticket $tickets) {
- return '' . "#" . $tickets->ticket_id . " - " . $tickets->title . '';
+ return ''.'#'.$tickets->ticket_id.' - '.htmlspecialchars($tickets->title).'';
})
->editColumn('user_id', function (Ticket $tickets) {
- return '' . $tickets->user->name . '';
+ return ''.$tickets->user->name.'';
})
->addColumn('actions', function (Ticket $tickets) {
return '
-
-
-
';
})
@@ -107,93 +115,102 @@ class TicketsController extends Controller
break;
}
- return '' . $tickets->status . '';
+ return ''.$tickets->status.'';
+ })
+ ->editColumn('priority', function (Ticket $tickets) {
+ return __($tickets->priority);
})
->editColumn('updated_at', function (Ticket $tickets) {
- return $tickets->updated_at ? $tickets->updated_at->diffForHumans() : '';
+ return ['display' => $tickets->updated_at ? $tickets->updated_at->diffForHumans() : '',
+ 'raw' => $tickets->updated_at ? strtotime($tickets->updated_at) : ''];
})
- ->rawColumns(['category', 'title', 'user_id', 'status', 'updated_at', 'actions'])
+ ->rawColumns(['category', 'title', 'user_id', 'status', 'priority', 'updated_at', 'actions'])
->make(true);
}
- public function blacklist() {
- return view("moderator.ticket.blacklist");
+ public function blacklist()
+ {
+ return view('moderator.ticket.blacklist');
}
- public function blacklistAdd(Request $request) {
+ public function blacklistAdd(Request $request)
+ {
$user = User::where('id', $request->user_id)->first();
$check = TicketBlacklist::where('user_id', $user->id)->first();
- if($check){
+ if ($check) {
$check->reason = $request->reason;
- $check->status = "True";
+ $check->status = 'True';
$check->save();
return redirect()->back()->with('info', __('Target User already in blacklist. Reason updated'));
}
- TicketBlacklist::create(array(
- "user_id" => $user->id,
- "status" => "True",
- "reason" => $request->reason,
- ));
- return redirect()->back()->with('success', __('Successfully add User to blacklist, User name: ' . $user->name));
+ TicketBlacklist::create([
+ 'user_id' => $user->id,
+ 'status' => 'True',
+ 'reason' => $request->reason,
+ ]);
+
+ return redirect()->back()->with('success', __('Successfully add User to blacklist, User name: '.$user->name));
}
-
- public function blacklistDelete($id) {
+ public function blacklistDelete($id)
+ {
$blacklist = TicketBlacklist::where('id', $id)->first();
$blacklist->delete();
- return redirect()->back()->with('success', __('Successfully remove User from blacklist, User name: ' . $blacklist->user->name));
+
+ return redirect()->back()->with('success', __('Successfully remove User from blacklist, User name: '.$blacklist->user->name));
}
- public function blacklistChange($id) {
+ public function blacklistChange($id)
+ {
$blacklist = TicketBlacklist::where('id', $id)->first();
- if($blacklist->status == "True")
- {
- $blacklist->status = "False";
-
+ if ($blacklist->status == 'True') {
+ $blacklist->status = 'False';
} else {
- $blacklist->status = "True";
+ $blacklist->status = 'True';
}
$blacklist->update();
- return redirect()->back()->with('success', __('Successfully change status blacklist from, User name: ' . $blacklist->user->name));
+ return redirect()->back()->with('success', __('Successfully change status blacklist from, User name: '.$blacklist->user->name));
}
+
public function dataTableBlacklist()
{
$query = TicketBlacklist::with(['user']);
$query->select('ticket_blacklists.*');
+
return datatables($query)
->editColumn('user', function (TicketBlacklist $blacklist) {
- return '' . $blacklist->user->name . '';
+ return ''.$blacklist->user->name.'';
})
->editColumn('status', function (TicketBlacklist $blacklist) {
switch ($blacklist->status) {
case 'True':
- $text = "Blocked";
+ $text = 'Blocked';
$badgeColor = 'badge-danger';
break;
default:
- $text = "Unblocked";
+ $text = 'Unblocked';
$badgeColor = 'badge-success';
break;
}
- return '' . $text . '';
+ return ''.$text.'';
})
->editColumn('reason', function (TicketBlacklist $blacklist) {
return $blacklist->reason;
})
->addColumn('actions', function (TicketBlacklist $blacklist) {
return '
-
-
';
})
@@ -203,5 +220,4 @@ class TicketsController extends Controller
->rawColumns(['user', 'status', 'reason', 'created_at', 'actions'])
->make(true);
}
-
}
diff --git a/app/Http/Controllers/NotificationController.php b/app/Http/Controllers/NotificationController.php
index 7853c1ac..c8ee5912 100644
--- a/app/Http/Controllers/NotificationController.php
+++ b/app/Http/Controllers/NotificationController.php
@@ -10,8 +10,9 @@ class NotificationController extends Controller
public function index()
{
$notifications = Auth::user()->notifications()->paginate();
+
return view('notifications.index')->with([
- 'notifications' => $notifications
+ 'notifications' => $notifications,
]);
}
@@ -21,17 +22,19 @@ class NotificationController extends Controller
$notification = Auth::user()->notifications()->findOrFail($id);
$notification->markAsRead();
+
return view('notifications.show')->with([
- 'notification' => $notification
+ 'notification' => $notification,
]);
}
- public function readAll(){
+ public function readAll()
+ {
$notifications = Auth::user()->notifications()->get();
- foreach($notifications as $notification){
+ foreach ($notifications as $notification) {
$notification->markAsRead();
}
- return redirect()->back();
+ return redirect()->back();
}
}
diff --git a/app/Http/Controllers/PartnerController.php b/app/Http/Controllers/PartnerController.php
new file mode 100644
index 00000000..887e56d3
--- /dev/null
+++ b/app/Http/Controllers/PartnerController.php
@@ -0,0 +1,217 @@
+ PartnerDiscount::get(),
+ 'users' => User::orderBy('name')->get(),
+ ]);
+ }
+
+ /**
+ * Store a newly created resource in storage.
+ *
+ * @param Request $request
+ * @return RedirectResponse
+ */
+ public function store(Request $request)
+ {
+ $request->validate([
+ 'user_id' => 'required|integer|min:0',
+ 'partner_discount' => 'required|integer|max:100|min:0',
+ 'registered_user_discount' => 'required|integer|max:100|min:0',
+ ]);
+
+ PartnerDiscount::create($request->all());
+
+ return redirect()->route('admin.partners.index')->with('success', __('partner has been created!'));
+ }
+
+ /**
+ * Display the specified resource.
+ *
+ * @param Voucher $voucher
+ * @return Response
+ */
+ public function show(Voucher $voucher)
+ {
+ //
+ }
+
+ /**
+ * Show the form for editing the specified resource.
+ *
+ * @param Voucher $voucher
+ * @return Application|Factory|View
+ */
+ public function edit(PartnerDiscount $partner)
+ {
+ return view('admin.partners.edit', [
+ 'partners' => PartnerDiscount::get(),
+ 'partner' => $partner,
+ 'users' => User::orderBy('name')->get(),
+ ]);
+ }
+
+ /**
+ * Update the specified resource in storage.
+ *
+ * @param Request $request
+ * @param Voucher $voucher
+ * @return RedirectResponse
+ */
+ public function update(Request $request, PartnerDiscount $partner)
+ {
+ //dd($request);
+ $request->validate([
+ 'user_id' => 'required|integer|min:0',
+ 'partner_discount' => 'required|integer|max:100|min:0',
+ 'registered_user_discount' => 'required|integer|max:100|min:0',
+ ]);
+
+ $partner->update($request->all());
+
+ return redirect()->route('admin.partners.index')->with('success', __('partner has been updated!'));
+ }
+
+ /**
+ * Remove the specified resource from storage.
+ *
+ * @param Voucher $voucher
+ * @return RedirectResponse
+ */
+ public function destroy(PartnerDiscount $partner)
+ {
+ $partner->delete();
+
+ return redirect()->back()->with('success', __('partner has been removed!'));
+ }
+
+ public function users(Voucher $voucher)
+ {
+ return view('admin.vouchers.users', [
+ 'voucher' => $voucher,
+ ]);
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ *
+ * @throws ValidationException
+ */
+ public function redeem(Request $request)
+ {
+ //general validations
+ $request->validate([
+ 'code' => 'required|exists:vouchers,code',
+ ]);
+
+ //get voucher by code
+ $voucher = Voucher::where('code', '=', $request->input('code'))->firstOrFail();
+
+ //extra validations
+ if ($voucher->getStatus() == 'USES_LIMIT_REACHED') {
+ throw ValidationException::withMessages([
+ 'code' => __('This voucher has reached the maximum amount of uses'),
+ ]);
+ }
+
+ if ($voucher->getStatus() == 'EXPIRED') {
+ throw ValidationException::withMessages([
+ 'code' => __('This voucher has expired'),
+ ]);
+ }
+
+ if (! $request->user()->vouchers()->where('id', '=', $voucher->id)->get()->isEmpty()) {
+ throw ValidationException::withMessages([
+ 'code' => __('You already redeemed this voucher code'),
+ ]);
+ }
+
+ if ($request->user()->credits + $voucher->credits >= 99999999) {
+ throw ValidationException::withMessages([
+ 'code' => "You can't redeem this voucher because you would exceed the limit of ".CREDITS_DISPLAY_NAME,
+ ]);
+ }
+
+ //redeem voucher
+ $voucher->redeem($request->user());
+
+ event(new UserUpdateCreditsEvent($request->user()));
+
+ return response()->json([
+ 'success' => "{$voucher->credits} ".CREDITS_DISPLAY_NAME.' '.__('have been added to your balance!'),
+ ]);
+ }
+
+ public function usersDataTable(Voucher $voucher)
+ {
+ $users = $voucher->users();
+
+ return datatables($users)
+ ->editColumn('name', function (User $user) {
+ return ''.$user->name.'';
+ })
+ ->addColumn('credits', function (User $user) {
+ return ' '.$user->credits();
+ })
+ ->addColumn('last_seen', function (User $user) {
+ return $user->last_seen ? $user->last_seen->diffForHumans() : '';
+ })
+ ->rawColumns(['name', 'credits', 'last_seen'])
+ ->make();
+ }
+
+ public function dataTable()
+ {
+ $query = PartnerDiscount::query();
+
+ return datatables($query)
+ ->addColumn('actions', function (PartnerDiscount $partner) {
+ return '
+
+
+ ';
+ })
+ ->addColumn('user', function (PartnerDiscount $partner) {
+ return ($user = User::where('id', $partner->user_id)->first()) ? ''.$user->name.'' : __('Unknown user');
+ })
+ ->editColumn('created_at', function (PartnerDiscount $partner) {
+ return $partner->created_at ? $partner->created_at->diffForHumans() : '';
+ })
+ ->editColumn('partner_discount', function (PartnerDiscount $partner) {
+ return $partner->partner_discount ? $partner->partner_discount.'%' : '0%';
+ })
+ ->editColumn('registered_user_discount', function (PartnerDiscount $partner) {
+ return $partner->registered_user_discount ? $partner->registered_user_discount.'%' : '0%';
+ })
+ ->editColumn('referral_system_commission', function (PartnerDiscount $partner) {
+ return $partner->referral_system_commission >= 0 ? $partner->referral_system_commission.'%' : __('Default').' ('.config('SETTINGS::REFERRAL:PERCENTAGE').'%)';
+ })
+ ->rawColumns(['user', 'actions'])
+ ->make();
+ }
+}
diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php
index 61e480f0..117ac33e 100644
--- a/app/Http/Controllers/ProductController.php
+++ b/app/Http/Controllers/ProductController.php
@@ -16,15 +16,18 @@ class ProductController extends Controller
{
/**
* @description get product locations based on selected egg
- * @param Request $request
- * @param Egg $egg
+ *
+ * @param Request $request
+ * @param Egg $egg
* @return Collection|JsonResponse
*/
public function getNodesBasedOnEgg(Request $request, Egg $egg)
{
- if (is_null($egg->id)) return response()->json('Egg ID is required', '400');
+ if (is_null($egg->id)) {
+ return response()->json('Egg ID is required', '400');
+ }
- #get products that include this egg
+ //get products that include this egg
$products = Product::query()
->with('nodes')
->where('disabled', '=', false)
@@ -34,31 +37,33 @@ class ProductController extends Controller
$nodes = collect();
- #filter unique nodes
+ //filter unique nodes
$products->each(function (Product $product) use ($nodes) {
$product->nodes->each(function (Node $node) use ($nodes) {
- if (!$nodes->contains('id', $node->id) && !$node->disabled) {
+ if (! $nodes->contains('id', $node->id) && ! $node->disabled) {
$nodes->add($node);
}
});
});
-
return $nodes;
}
/**
* @description get product locations based on selected egg
- * @param Request $request
- * @param Egg $egg
+ *
+ * @param Request $request
+ * @param Egg $egg
* @return Collection|JsonResponse
*/
public function getLocationsBasedOnEgg(Request $request, Egg $egg)
{
$nodes = $this->getNodesBasedOnEgg($request, $egg);
- foreach($nodes as $key => $node){
+ foreach ($nodes as $key => $node) {
$pteroNode = Pterodactyl::getNode($node->id);
- if($pteroNode['allocated_resources']['memory']>=($pteroNode['memory']*($pteroNode['memory_overallocate']+100)/100)||$pteroNode['allocated_resources']['disk']>=($pteroNode['disk']*($pteroNode['disk_overallocate']+100)/100)) $nodes->forget($key);
+ if ($pteroNode['allocated_resources']['memory'] >= ($pteroNode['memory'] * ($pteroNode['memory_overallocate'] + 100) / 100) || $pteroNode['allocated_resources']['disk'] >= ($pteroNode['disk'] * ($pteroNode['disk_overallocate'] + 100) / 100)) {
+ $nodes->forget($key);
+ }
}
$locations = collect();
@@ -67,7 +72,7 @@ class ProductController extends Controller
/** @var Location $location */
$location = $node->location;
- if (!$locations->contains('id', $location->id)) {
+ if (! $locations->contains('id', $location->id)) {
$nodeIds = $nodes->map(function ($node) {
return $node->id;
});
@@ -84,13 +89,15 @@ class ProductController extends Controller
}
/**
- * @param Node $node
- * @param Egg $egg
+ * @param Node $node
+ * @param Egg $egg
* @return Collection|JsonResponse
*/
public function getProductsBasedOnNode(Egg $egg, Node $node)
{
- if (is_null($egg->id) || is_null($node->id)) return response()->json('node and egg id is required', '400');
+ if (is_null($egg->id) || is_null($node->id)) {
+ return response()->json('node and egg id is required', '400');
+ }
$products = Product::query()
->where('disabled', '=', false)
@@ -103,8 +110,10 @@ class ProductController extends Controller
->get();
$pteroNode = Pterodactyl::getNode($node->id);
- foreach($products as $key => $product){
- if($product->memory>($pteroNode['memory']*($pteroNode['memory_overallocate']+100)/100)-$pteroNode['allocated_resources']['memory']||$product->disk>($pteroNode['disk']*($pteroNode['disk_overallocate']+100)/100)-$pteroNode['allocated_resources']['disk']) $product->doesNotFit = true;
+ foreach ($products as $key => $product) {
+ if ($product->memory > ($pteroNode['memory'] * ($pteroNode['memory_overallocate'] + 100) / 100) - $pteroNode['allocated_resources']['memory'] || $product->disk > ($pteroNode['disk'] * ($pteroNode['disk_overallocate'] + 100) / 100) - $pteroNode['allocated_resources']['disk']) {
+ $product->doesNotFit = true;
+ }
}
return $products;
diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php
index 3d9a2d38..bffbc963 100644
--- a/app/Http/Controllers/ProfileController.php
+++ b/app/Http/Controllers/ProfileController.php
@@ -2,7 +2,6 @@
namespace App\Http\Controllers;
-
use App\Classes\Pterodactyl;
use App\Models\User;
use Illuminate\Http\RedirectResponse;
@@ -30,6 +29,7 @@ class ProfileController extends Controller
$badgeColor = 'badge-secondary';
break;
}
+
return view('profile.index')->with([
'user' => Auth::user(),
'credits_reward_after_verify_discord' => config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD'),
@@ -39,68 +39,81 @@ class ProfileController extends Controller
]);
}
+ public function selfDestroyUser()
+ {
+ $user = Auth::user();
+ if ($user->role == "admin") return back()->with("error", "You cannot delete yourself as an admin!");
+
+ $user->delete();
+
+ return redirect('/login')->with('success', __('Account permanently deleted!'));
+ }
+
/** Update the specified resource in storage.
- * @param Request $request
- * @param int $id
+ * @param Request $request
+ * @param int $id
* @return RedirectResponse
*/
public function update(Request $request, int $id)
{
//prevent other users from editing a user
- if ($id != Auth::user()->id) dd(401);
+ if ($id != Auth::user()->id) {
+ dd(401);
+ }
$user = User::findOrFail($id);
//update password if necessary
- if (!is_null($request->input('new_password'))) {
+ if (! is_null($request->input('new_password'))) {
//validate password request
$request->validate([
'current_password' => [
'required',
function ($attribute, $value, $fail) use ($user) {
- if (!Hash::check($value, $user->password)) {
- $fail('The ' . $attribute . ' is invalid.');
+ if (! Hash::check($value, $user->password)) {
+ $fail('The '.$attribute.' is invalid.');
}
},
],
'new_password' => 'required|string|min:8',
- 'new_password_confirmation' => 'required|same:new_password'
+ 'new_password_confirmation' => 'required|same:new_password',
]);
//Update Users Password on Pterodactyl
//Username,Mail,First and Lastname are required aswell
$response = Pterodactyl::client()->patch('/application/users/'.$user->pterodactyl_id, [
- "password" => $request->input('new_password'),
- "username" => $request->input('name'),
- "first_name" => $request->input('name'),
- "last_name" => $request->input('name'),
- "email" => $request->input('email'),
+ 'password' => $request->input('new_password'),
+ 'username' => $request->input('name'),
+ 'first_name' => $request->input('name'),
+ 'last_name' => $request->input('name'),
+ 'email' => $request->input('email'),
]);
if ($response->failed()) {
throw ValidationException::withMessages([
'pterodactyl_error_message' => $response->toException()->getMessage(),
- 'pterodactyl_error_status' => $response->toException()->getCode()
+ 'pterodactyl_error_status' => $response->toException()->getCode(),
]);
}
//update password
$user->update([
'password' => Hash::make($request->input('new_password')),
]);
-
}
//validate request
$request->validate([
- 'name' => 'required|min:4|max:30|alpha_num|unique:users,name,' . $id . ',id',
- 'email' => 'required|email|max:64|unique:users,email,' . $id . ',id',
- 'avatar' => 'nullable'
+ 'name' => 'required|min:4|max:30|alpha_num|unique:users,name,'.$id.',id',
+ 'email' => 'required|email|max:64|unique:users,email,'.$id.',id',
+ 'avatar' => 'nullable',
]);
//update avatar
- if (!is_null($request->input('avatar'))) {
+ if (! is_null($request->input('avatar'))) {
$avatar = json_decode($request->input('avatar'));
- if ($avatar->input->size > 3000000) abort(500);
+ if ($avatar->input->size > 3000000) {
+ abort(500);
+ }
$user->update([
'avatar' => $avatar->output->image,
@@ -113,16 +126,16 @@ class ProfileController extends Controller
//update name and email on Pterodactyl
$response = Pterodactyl::client()->patch('/application/users/'.$user->pterodactyl_id, [
- "username" => $request->input('name'),
- "first_name" => $request->input('name'),
- "last_name" => $request->input('name'),
- "email" => $request->input('email'),
+ 'username' => $request->input('name'),
+ 'first_name' => $request->input('name'),
+ 'last_name' => $request->input('name'),
+ 'email' => $request->input('email'),
]);
if ($response->failed()) {
throw ValidationException::withMessages([
'pterodactyl_error_message' => $response->toException()->getMessage(),
- 'pterodactyl_error_status' => $response->toException()->getCode()
+ 'pterodactyl_error_status' => $response->toException()->getCode(),
]);
}
@@ -135,7 +148,7 @@ class ProfileController extends Controller
if ($request->input('email') != Auth::user()->email) {
$user->reVerifyEmail();
$user->sendEmailVerificationNotification();
- };
+ }
return redirect()->route('profile.index')->with('success', __('Profile updated'));
}
diff --git a/app/Http/Controllers/ServerController.php b/app/Http/Controllers/ServerController.php
index 91ef195b..61ac4218 100644
--- a/app/Http/Controllers/ServerController.php
+++ b/app/Http/Controllers/ServerController.php
@@ -33,7 +33,9 @@ class ServerController extends Controller
//Get server infos from ptero
$serverAttributes = Pterodactyl::getServerAttributes($server->pterodactyl_id, true);
- if(!$serverAttributes) continue;
+ if (! $serverAttributes) {
+ continue;
+ }
$serverRelationships = $serverAttributes['relationships'];
$serverLocationAttributes = $serverRelationships['location']['attributes'];
@@ -49,7 +51,7 @@ class ServerController extends Controller
//Check if a server got renamed on Pterodactyl
$savedServer = Server::query()->where('id', $server->id)->first();
- if($savedServer->name != $serverAttributes['name']){
+ if ($savedServer->name != $serverAttributes['name']) {
$savedServer->name = $serverAttributes['name'];
$server->name = $serverAttributes['name'];
$savedServer->save();
@@ -61,14 +63,16 @@ class ServerController extends Controller
}
return view('servers.index')->with([
- 'servers' => $servers
+ 'servers' => $servers,
]);
}
/** Show the form for creating a new resource. */
public function create()
{
- if (!is_null($this->validateConfigurationRules())) return $this->validateConfigurationRules();
+ if (! is_null($this->validateConfigurationRules())) {
+ return $this->validateConfigurationRules();
+ }
$productCount = Product::query()->where('disabled', '=', false)->count();
$locations = Location::all();
@@ -92,11 +96,11 @@ class ServerController extends Controller
return view('servers.create')->with([
'productCount' => $productCount,
- 'nodeCount' => $nodeCount,
- 'nests' => $nests,
- 'locations' => $locations,
- 'eggs' => $eggs,
- 'user' => Auth::user(),
+ 'nodeCount' => $nodeCount,
+ 'nests' => $nests,
+ 'locations' => $locations,
+ 'eggs' => $eggs,
+ 'user' => Auth::user(),
]);
}
@@ -111,8 +115,8 @@ class ServerController extends Controller
}
// minimum credits && Check for Allocation
- if (FacadesRequest::has("product")) {
- $product = Product::findOrFail(FacadesRequest::input("product"));
+ if (FacadesRequest::has('product')) {
+ $product = Product::findOrFail(FacadesRequest::input('product'));
// Get node resource allocation info
$node = $product->nodes()->findOrFail(FacadesRequest::input('node'));
@@ -120,31 +124,33 @@ class ServerController extends Controller
// Check if node has enough memory and disk space
$checkResponse = Pterodactyl::checkNodeResources($node, $product->memory, $product->disk);
- if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to allocate this product."));
+ if ($checkResponse == false) {
+ return redirect()->route('servers.index')->with('error', __("The node '".$nodeName."' doesn't have the required memory or disk left to allocate this product."));
+ }
// Min. Credits
if (
Auth::user()->credits < $product->minimum_credits ||
Auth::user()->credits < $product->price
) {
- return redirect()->route('servers.index')->with('error', "You do not have the required amount of " . CREDITS_DISPLAY_NAME . " to use this product!");
+ return redirect()->route('servers.index')->with('error', 'You do not have the required amount of '.CREDITS_DISPLAY_NAME.' to use this product!');
}
}
//Required Verification for creating an server
- if (config('SETTINGS::USER:FORCE_EMAIL_VERIFICATION', 'false') === 'true' && !Auth::user()->hasVerifiedEmail()) {
- return redirect()->route('profile.index')->with('error', __("You are required to verify your email address before you can create a server."));
- }
-
- //Required Verification for creating an server
-
- if (!config('SETTINGS::SYSTEM:CREATION_OF_NEW_SERVERS', 'true') && Auth::user()->role != "admin") {
- return redirect()->route('servers.index')->with('error', __("The system administrator has blocked the creation of new servers."));
+ if (config('SETTINGS::USER:FORCE_EMAIL_VERIFICATION', 'false') === 'true' && ! Auth::user()->hasVerifiedEmail()) {
+ return redirect()->route('profile.index')->with('error', __('You are required to verify your email address before you can create a server.'));
}
//Required Verification for creating an server
- if (config('SETTINGS::USER:FORCE_DISCORD_VERIFICATION', 'false') === 'true' && !Auth::user()->discordUser) {
- return redirect()->route('profile.index')->with('error', __("You are required to link your discord account before you can create a server."));
+
+ if (! config('SETTINGS::SYSTEM:CREATION_OF_NEW_SERVERS', 'true') && Auth::user()->role != 'admin') {
+ return redirect()->route('servers.index')->with('error', __('The system administrator has blocked the creation of new servers.'));
+ }
+
+ //Required Verification for creating an server
+ if (config('SETTINGS::USER:FORCE_DISCORD_VERIFICATION', 'false') === 'true' && ! Auth::user()->discordUser) {
+ return redirect()->route('profile.index')->with('error', __('You are required to link your discord account before you can create a server.'));
}
return null;
@@ -156,14 +162,15 @@ class ServerController extends Controller
/** @var Node $node */
/** @var Egg $egg */
/** @var Product $product */
-
- if (!is_null($this->validateConfigurationRules())) return $this->validateConfigurationRules();
+ if (! is_null($this->validateConfigurationRules())) {
+ return $this->validateConfigurationRules();
+ }
$request->validate([
- "name" => "required|max:191",
- "node" => "required|exists:nodes,id",
- "egg" => "required|exists:eggs,id",
- "product" => "required|exists:products,id"
+ 'name' => 'required|max:191',
+ 'node' => 'required|exists:nodes,id',
+ 'egg' => 'required|exists:eggs,id',
+ 'product' => 'required|exists:products,id',
]);
//get required resources
@@ -172,25 +179,28 @@ class ServerController extends Controller
$node = $product->nodes()->findOrFail($request->input('node'));
$server = $request->user()->servers()->create([
- 'name' => $request->input('name'),
+ 'name' => $request->input('name'),
'product_id' => $request->input('product'),
'last_billed' => Carbon::now()->toDateTimeString(),
]);
//get free allocation ID
$allocationId = Pterodactyl::getFreeAllocationId($node);
- if (!$allocationId) return $this->noAllocationsError($server);
+ if (! $allocationId) {
+ return $this->noAllocationsError($server);
+ }
//create server on pterodactyl
$response = Pterodactyl::createServer($server, $egg, $allocationId);
- if ($response->failed()) return $this->serverCreationFailed($response, $server);
+ if ($response->failed()) {
+ return $this->serverCreationFailed($response, $server);
+ }
$serverAttributes = $response->json()['attributes'];
//update server with pterodactyl_id
$server->update([
'pterodactyl_id' => $serverAttributes['id'],
- 'identifier' => $serverAttributes['identifier'],
-
+ 'identifier' => $serverAttributes['identifier'],
]);
// Charge first billing cycle
@@ -201,7 +211,8 @@ class ServerController extends Controller
/**
* return redirect with error
- * @param Server $server
+ *
+ * @param Server $server
* @return RedirectResponse
*/
private function noAllocationsError(Server $server)
@@ -209,13 +220,15 @@ class ServerController extends Controller
$server->delete();
Auth::user()->notify(new ServerCreationError($server));
+
return redirect()->route('servers.index')->with('error', __('No allocations satisfying the requirements for automatic deployment on this node were found.'));
}
/**
* return redirect with error
- * @param Response $response
- * @param Server $server
+ *
+ * @param Response $response
+ * @param Server $server
* @return RedirectResponse
*/
private function serverCreationFailed(Response $response, Server $server)
@@ -228,6 +241,7 @@ class ServerController extends Controller
{
try {
$server->delete();
+
return redirect()->route('servers.index')->with('success', __('Server removed'));
} catch (Exception $e) {
return redirect()->route('servers.index')->with('error', __('An exception has occurred while trying to remove a resource"') . $e->getMessage() . '"');
@@ -272,7 +286,7 @@ class ServerController extends Controller
$pteroNode = Pterodactyl::getNode($serverRelationships['node']['attributes']['id']);
- $products = Product::orderBy("created_at")
+ $products = Product::orderBy('created_at')
->whereHas('nodes', function (Builder $builder) use ($serverRelationships) { //Only show products for that node
$builder->where('id', '=', $serverRelationships['node']['attributes']['id']);
})
@@ -281,12 +295,14 @@ class ServerController extends Controller
// Set the each product eggs array to just contain the eggs name
foreach ($products as $product) {
$product->eggs = $product->eggs->pluck('name')->toArray();
- if($product->memory-$currentProduct->memory>($pteroNode['memory']*($pteroNode['memory_overallocate']+100)/100)-$pteroNode['allocated_resources']['memory']||$product->disk-$currentProduct->disk>($pteroNode['disk']*($pteroNode['disk_overallocate']+100)/100)-$pteroNode['allocated_resources']['disk']) $product->doesNotFit = true;
+ if ($product->memory - $currentProduct->memory > ($pteroNode['memory'] * ($pteroNode['memory_overallocate'] + 100) / 100) - $pteroNode['allocated_resources']['memory'] || $product->disk - $currentProduct->disk > ($pteroNode['disk'] * ($pteroNode['disk_overallocate'] + 100) / 100) - $pteroNode['allocated_resources']['disk']) {
+ $product->doesNotFit = true;
+ }
}
return view('servers.settings')->with([
'server' => $server,
- 'products' => $products
+ 'products' => $products,
]);
}
@@ -310,9 +326,11 @@ class ServerController extends Controller
// Check if node has enough memory and disk space
$requireMemory = $newProduct->memory - $oldProduct->memory;
- $requiredisk = $newProduct->disk - $oldProduct->disk;
+ $requiredisk = $newProduct->disk - $oldProduct->disk;
$checkResponse = Pterodactyl::checkNodeResources($node, $requireMemory, $requiredisk);
- if ($checkResponse == False) return redirect()->route('servers.index')->with('error', __("The node '" . $nodeName . "' doesn't have the required memory or disk left to upgrade the server."));
+ if ($checkResponse == false) {
+ return redirect()->route('servers.index')->with('error', __("The node '".$nodeName."' doesn't have the required memory or disk left to upgrade the server."));
+ }
// calculate the amount of credits that the user overpayed for the old product when canceling the server right now
// billing periods are hourly, daily, weekly, monthly, quarterly, half-annually, annually
@@ -331,7 +349,6 @@ class ServerController extends Controller
$billingPeriodMultiplier = $billingPeriods[$billingPeriod];
$timeDifference = now()->diffInSeconds($server->last_billed);
- error_log("Time DIFFERENCE!!!! ",$timeDifference);
// Calculate the price for the time the user has been using the server
$overpayedCredits = $oldProduct->price - $oldProduct->price * ($timeDifference / $billingPeriodMultiplier);
@@ -363,9 +380,7 @@ class ServerController extends Controller
$response = Pterodactyl::powerAction($server, "restart");
if ($response->failed()) return redirect()->route('servers.index')->with('error', 'Server upgraded successfully! Could not restart the server: '.$response->json()['errors'][0]['detail']);
return redirect()->route('servers.show', ['server' => $server->id])->with('success', __('Server Successfully Upgraded'));
- }
- else
- {
+ } else {
return redirect()->route('servers.show', ['server' => $server->id])->with('error', __('Not Enough Balance for Upgrade'));
}
}
diff --git a/app/Http/Controllers/StoreController.php b/app/Http/Controllers/StoreController.php
index 8995d659..fb4efe3a 100644
--- a/app/Http/Controllers/StoreController.php
+++ b/app/Http/Controllers/StoreController.php
@@ -3,7 +3,6 @@
namespace App\Http\Controllers;
use App\Models\ShopProduct;
-use App\Models\Settings;
use Illuminate\Support\Facades\Auth;
class StoreController extends Controller
@@ -15,18 +14,20 @@ class StoreController extends Controller
if (
env('APP_ENV') == 'local' ||
- config("SETTINGS::PAYMENTS:PAYPAL:SECRET") && config("SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID") ||
- config("SETTINGS::PAYMENTS:STRIPE:SECRET") && config("SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET") && config("SETTINGS::PAYMENTS:STRIPE:METHODS")
- ) $isPaymentSetup = true;
-
- //Required Verification for creating an server
- if (config('SETTINGS::USER:FORCE_EMAIL_VERIFICATION', false) === 'true' && !Auth::user()->hasVerifiedEmail()) {
- return redirect()->route('profile.index')->with('error', __("You are required to verify your email address before you can purchase credits."));
+ config('SETTINGS::PAYMENTS:PAYPAL:SECRET') && config('SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID') ||
+ config('SETTINGS::PAYMENTS:STRIPE:SECRET') && config('SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET') && config('SETTINGS::PAYMENTS:STRIPE:METHODS')
+ ) {
+ $isPaymentSetup = true;
}
//Required Verification for creating an server
- if (config('SETTINGS::USER:FORCE_DISCORD_VERIFICATION', false) === 'true' && !Auth::user()->discordUser) {
- return redirect()->route('profile.index')->with('error', __("You are required to link your discord account before you can purchase Credits"));
+ if (config('SETTINGS::USER:FORCE_EMAIL_VERIFICATION', false) === 'true' && ! Auth::user()->hasVerifiedEmail()) {
+ return redirect()->route('profile.index')->with('error', __('You are required to verify your email address before you can purchase credits.'));
+ }
+
+ //Required Verification for creating an server
+ if (config('SETTINGS::USER:FORCE_DISCORD_VERIFICATION', false) === 'true' && ! Auth::user()->discordUser) {
+ return redirect()->route('profile.index')->with('error', __('You are required to link your discord account before you can purchase Credits'));
}
return view('store.index')->with([
diff --git a/app/Http/Controllers/TicketsController.php b/app/Http/Controllers/TicketsController.php
index 8bb21a66..e025f94d 100644
--- a/app/Http/Controllers/TicketsController.php
+++ b/app/Http/Controllers/TicketsController.php
@@ -2,113 +2,132 @@
namespace App\Http\Controllers;
-use App\Models\User;
-use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Session;
-use Illuminate\Support\Facades\Auth;
-use Illuminate\Support\Str;
-use Illuminate\Support\Facades\Notification;
-
-use App\Models\Ticket;
use App\Models\Server;
-use App\Models\TicketComment;
-use App\Models\TicketCategory;
+use App\Models\Ticket;
use App\Models\TicketBlacklist;
-use App\Notifications\Ticket\User\CreateNotification;
+use App\Models\TicketCategory;
+use App\Models\TicketComment;
+use App\Models\User;
use App\Notifications\Ticket\Admin\AdminCreateNotification;
use App\Notifications\Ticket\Admin\AdminReplyNotification;
-
+use App\Notifications\Ticket\User\CreateNotification;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Notification;
+use Illuminate\Support\Str;
class TicketsController extends Controller
{
public function index()
{
- $tickets = Ticket::where("user_id", Auth::user()->id)->paginate(10);
+ $tickets = Ticket::where('user_id', Auth::user()->id)->paginate(10);
$ticketcategories = TicketCategory::all();
-
- return view("ticket.index", compact("tickets", "ticketcategories"));
+
+ return view('ticket.index', compact('tickets', 'ticketcategories'));
}
- public function create() {
- #check in blacklist
+
+ public function create()
+ {
+ //check in blacklist
$check = TicketBlacklist::where('user_id', Auth::user()->id)->first();
- if($check && $check->status == "True"){
- return redirect()->route('ticket.index')->with('error', __("You can't make a ticket because you're on the blacklist for a reason: '" . $check->reason . "', please contact the administrator"));
+ if ($check && $check->status == 'True') {
+ return redirect()->route('ticket.index')->with('error', __("You can't make a ticket because you're on the blacklist for a reason: '".$check->reason."', please contact the administrator"));
}
$ticketcategories = TicketCategory::all();
$servers = Auth::user()->servers;
- return view("ticket.create", compact("ticketcategories", "servers"));
+
+ return view('ticket.create', compact('ticketcategories', 'servers'));
}
- public function store(Request $request) {
- $this->validate($request, array(
- "title" => "required",
- "ticketcategory" => "required",
- "priority" => "required",
- "message" => "required")
- );
- $ticket = new Ticket(array(
- "title" => $request->input("title"),
- "user_id" => Auth::user()->id,
- "ticket_id" => strtoupper(Str::random(5)),
- "ticketcategory_id" => $request->input("ticketcategory"),
- "priority" => $request->input("priority"),
- "message" => $request->input("message"),
- "status" => "Open",
- "server" => $request->input("server"))
- );
+
+ public function store(Request $request)
+ {
+ $this->validate($request, [
+ 'title' => 'required',
+ 'ticketcategory' => 'required',
+ 'priority' => 'required',
+ 'message' => 'required', ]
+ );
+ $ticket = new Ticket([
+ 'title' => $request->input('title'),
+ 'user_id' => Auth::user()->id,
+ 'ticket_id' => strtoupper(Str::random(5)),
+ 'ticketcategory_id' => $request->input('ticketcategory'),
+ 'priority' => $request->input('priority'),
+ 'message' => $request->input('message'),
+ 'status' => 'Open',
+ 'server' => $request->input('server'), ]
+ );
$ticket->save();
$user = Auth::user();
- $admin = User::where('role', 'admin')->orWhere('role', 'mod')->get();
+ if(config('SETTINGS::TICKET:NOTIFY') == "all"){ $admin = User::where('role', 'admin')->orWhere('role', 'mod')->get();}
+ if(config('SETTINGS::TICKET:NOTIFY') == "admin"){ $admin = User::where('role', 'admin')->get();}
+ if(config('SETTINGS::TICKET:NOTIFY') == "moderator"){ $admin = User::where('role', 'mod')->get();}
$user->notify(new CreateNotification($ticket));
- Notification::send($admin, new AdminCreateNotification($ticket, $user));
-
- return redirect()->route('ticket.index')->with('success', __('A ticket has been opened, ID: #') . $ticket->ticket_id);
+ if(config('SETTINGS::TICKET:NOTIFY') != "none"){
+ Notification::send($admin, new AdminCreateNotification($ticket, $user));
+ }
+
+ return redirect()->route('ticket.index')->with('success', __('A ticket has been opened, ID: #').$ticket->ticket_id);
}
- public function show($ticket_id) {
- $ticket = Ticket::where("ticket_id", $ticket_id)->firstOrFail();
+
+ public function show($ticket_id)
+ {
+ $ticket = Ticket::where('ticket_id', $ticket_id)->firstOrFail();
$ticketcomments = $ticket->ticketcomments;
$ticketcategory = $ticket->ticketcategory;
$server = Server::where('id', $ticket->server)->first();
- return view("ticket.show", compact("ticket", "ticketcategory", "ticketcomments", "server"));
+
+ return view('ticket.show', compact('ticket', 'ticketcategory', 'ticketcomments', 'server'));
}
- public function reply(Request $request) {
- #check in blacklist
+
+ public function reply(Request $request)
+ {
+ //check in blacklist
$check = TicketBlacklist::where('user_id', Auth::user()->id)->first();
- if($check && $check->status == "True"){
- return redirect()->route('ticket.index')->with('error', __("You can't reply a ticket because you're on the blacklist for a reason: '" . $check->reason . "', please contact the administrator"));
+ if ($check && $check->status == 'True') {
+ return redirect()->route('ticket.index')->with('error', __("You can't reply a ticket because you're on the blacklist for a reason: '".$check->reason."', please contact the administrator"));
}
- $this->validate($request, array("ticketcomment" => "required"));
- $ticket = Ticket::where('id', $request->input("ticket_id"))->firstOrFail();
- $ticket->status = "Client Reply";
+ $this->validate($request, ['ticketcomment' => 'required']);
+ $ticket = Ticket::where('id', $request->input('ticket_id'))->firstOrFail();
+ $ticket->status = 'Client Reply';
$ticket->update();
- $ticketcomment = TicketComment::create(array(
- "ticket_id" => $request->input("ticket_id"),
- "user_id" => Auth::user()->id,
- "ticketcomment" => $request->input("ticketcomment"),
- "message" => $request->input("message")
- ));
+ $ticketcomment = TicketComment::create([
+ 'ticket_id' => $request->input('ticket_id'),
+ 'user_id' => Auth::user()->id,
+ 'ticketcomment' => $request->input('ticketcomment'),
+ 'message' => $request->input('message'),
+ ]);
$user = Auth::user();
$admin = User::where('role', 'admin')->orWhere('role', 'mod')->get();
- $newmessage = $request->input("ticketcomment");
+ $newmessage = $request->input('ticketcomment');
Notification::send($admin, new AdminReplyNotification($ticket, $user, $newmessage));
+
return redirect()->back()->with('success', __('Your comment has been submitted'));
}
+ public function close($ticket_id)
+ {
+ $ticket = Ticket::where('user_id', Auth::user()->id)->where("ticket_id", $ticket_id)->firstOrFail();
+ $ticket->status = "Closed";
+ $ticket->save();
+ return redirect()->back()->with('success', __('A ticket has been closed, ID: #') . $ticket->ticket_id);
+ }
public function dataTable()
{
- $query = Ticket::where("user_id", Auth::user()->id)->get();
+ $query = Ticket::where('user_id', Auth::user()->id)->get();
return datatables($query)
->addColumn('category', function (Ticket $tickets) {
return $tickets->ticketcategory->name;
})
->editColumn('title', function (Ticket $tickets) {
- return '' . "#" . $tickets->ticket_id . " - " . $tickets->title . '';
+ return ''.'#'.$tickets->ticket_id.' - '.htmlspecialchars($tickets->title).'';
})
->editColumn('status', function (Ticket $tickets) {
switch ($tickets->status) {
case 'Open':
$badgeColor = 'badge-success';
- break;
+ break;
case 'Closed':
$badgeColor = 'badge-danger';
break;
@@ -120,12 +139,27 @@ class TicketsController extends Controller
break;
}
- return '' . $tickets->status . '';
+ return ''.$tickets->status.'';
+ })
+ ->editColumn('priority', function (Ticket $tickets) {
+ return __($tickets->priority);
})
->editColumn('updated_at', function (Ticket $tickets) {
return $tickets->updated_at ? $tickets->updated_at->diffForHumans() : '';
})
- ->rawColumns(['category', 'title', 'status', 'updated_at'])
+ ->addColumn('actions', function (Ticket $tickets) {
+ return '
+
+
+
+
+ ';
+ })
+ ->rawColumns(['category', 'title', 'status', 'updated_at', "actions"])
->make(true);
}
}
diff --git a/app/Http/Controllers/TranslationController.php b/app/Http/Controllers/TranslationController.php
index d771f8f2..d486902f 100644
--- a/app/Http/Controllers/TranslationController.php
+++ b/app/Http/Controllers/TranslationController.php
@@ -8,16 +8,15 @@ use Illuminate\Support\Facades\Session;
class TranslationController extends Controller
{
/**
- *
* Change session locale
- * @param Request $request
+ *
+ * @param Request $request
* @return Response
*/
public function changeLocale(Request $request)
{
Session::put('locale', $request->inputLocale);
+
return redirect()->back();
}
-
-
}
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 2ee71131..3e372e09 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -22,7 +22,7 @@ class Kernel extends HttpKernel
protected $middleware = [
// \App\Http\Middleware\TrustHosts::class,
\App\Http\Middleware\TrustProxies::class,
- \Fruitcake\Cors\HandleCors::class,
+ \Illuminate\Http\Middleware\HandleCors::class,
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
@@ -39,7 +39,6 @@ class Kernel extends HttpKernel
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
- // \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
@@ -51,7 +50,7 @@ class Kernel extends HttpKernel
'api' => [
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
- GlobalNames::class
+ GlobalNames::class,
],
];
@@ -65,6 +64,7 @@ class Kernel extends HttpKernel
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+ 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
@@ -75,6 +75,6 @@ class Kernel extends HttpKernel
'admin' => isAdmin::class,
'moderator' => isMod::class,
'api.token' => ApiAuthToken::class,
- 'checkSuspended' => CheckSuspended::class
+ 'checkSuspended' => CheckSuspended::class,
];
}
diff --git a/app/Http/Middleware/ApiAuthToken.php b/app/Http/Middleware/ApiAuthToken.php
index 8063e2ef..1881230f 100644
--- a/app/Http/Middleware/ApiAuthToken.php
+++ b/app/Http/Middleware/ApiAuthToken.php
@@ -11,18 +11,23 @@ class ApiAuthToken
/**
* Handle an incoming request.
*
- * @param Request $request
- * @param Closure $next
+ * @param Request $request
+ * @param Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
- if (empty($request->bearerToken())) return response()->json(['message' => 'Missing Authorization header'], 403);
+ if (empty($request->bearerToken())) {
+ return response()->json(['message' => 'Missing Authorization header'], 403);
+ }
$token = ApplicationApi::find($request->bearerToken());
- if (is_null($token)) return response()->json(['message' => 'Invalid Authorization token'], 401);
+ if (is_null($token)) {
+ return response()->json(['message' => 'Invalid Authorization token'], 401);
+ }
$token->updateLastUsed();
+
return $next($request);
}
}
diff --git a/app/Http/Middleware/CheckSuspended.php b/app/Http/Middleware/CheckSuspended.php
index 59fcc614..60cda0af 100644
--- a/app/Http/Middleware/CheckSuspended.php
+++ b/app/Http/Middleware/CheckSuspended.php
@@ -23,6 +23,7 @@ class CheckSuspended
return redirect()->route('login')->withMessage($message);
}
+
return $next($request);
}
}
diff --git a/app/Http/Middleware/GlobalNames.php b/app/Http/Middleware/GlobalNames.php
index fbff5594..4874a2f6 100644
--- a/app/Http/Middleware/GlobalNames.php
+++ b/app/Http/Middleware/GlobalNames.php
@@ -2,8 +2,6 @@
namespace App\Http\Middleware;
-use App\Models\Configuration;
-use App\Models\Settings;
use Closure;
use Illuminate\Http\Request;
@@ -12,15 +10,15 @@ class GlobalNames
/**
* Handle an incoming request.
*
- * @param Request $request
- * @param Closure $next
+ * @param Request $request
+ * @param Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
define('CREDITS_DISPLAY_NAME', config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME', 'Credits'));
- $unsupported_lang_array = explode(',', config("app.unsupported_locales"));
+ $unsupported_lang_array = explode(',', config('app.unsupported_locales'));
$unsupported_lang_array = array_map('strtolower', $unsupported_lang_array);
define('UNSUPPORTED_LANGS', $unsupported_lang_array);
diff --git a/app/Http/Middleware/LastSeen.php b/app/Http/Middleware/LastSeen.php
index 567c1f39..a6667b64 100644
--- a/app/Http/Middleware/LastSeen.php
+++ b/app/Http/Middleware/LastSeen.php
@@ -3,7 +3,6 @@
namespace App\Http\Middleware;
use Closure;
-use DateTime;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
@@ -12,17 +11,17 @@ class LastSeen
/**
* Handle an incoming request.
*
- * @param Request $request
- * @param Closure $next
+ * @param Request $request
+ * @param Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
- if (env('APP_ENV' , 'local') == 'local'){
+ if (env('APP_ENV', 'local') == 'local') {
return $next($request);
}
- if (!Auth::check()) {
+ if (! Auth::check()) {
return $next($request);
}
@@ -32,7 +31,7 @@ class LastSeen
Auth::user()->update([
'last_seen' => now(),
- 'ip' => $request->ip()
+ 'ip' => $request->ip(),
]);
return $next($request);
diff --git a/app/Http/Middleware/SetLocale.php b/app/Http/Middleware/SetLocale.php
index bd5188b0..64174677 100644
--- a/app/Http/Middleware/SetLocale.php
+++ b/app/Http/Middleware/SetLocale.php
@@ -2,7 +2,6 @@
namespace App\Http\Middleware;
-use App\Models\Settings;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
@@ -10,27 +9,25 @@ use Illuminate\Support\Facades\Session;
class SetLocale
{
-
/**
- *
* Handle an incoming request.
*
- * @param Request $request
- * @param Closure $next
+ * @param Request $request
+ * @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Session::has('locale')) {
- $locale = Session::get('locale', config("SETTINGS::LOCALE:DEFAULT"));
+ $locale = Session::get('locale', config('SETTINGS::LOCALE:DEFAULT'));
} else {
- if (config("SETTINGS::LOCALE:DYNAMIC") !== "true") {
- $locale = config("SETTINGS::LOCALE:DEFAULT");
+ if (config('SETTINGS::LOCALE:DYNAMIC') !== 'true') {
+ $locale = config('SETTINGS::LOCALE:DEFAULT');
} else {
$locale = substr($request->server('HTTP_ACCEPT_LANGUAGE'), 0, 2);
- if (!in_array($locale, explode(',', config("SETTINGS::LOCALE:AVAILABLE")))) {
- $locale = config("SETTINGS::LOCALE:DEFAULT");
+ if (! in_array($locale, explode(',', config('SETTINGS::LOCALE:AVAILABLE')))) {
+ $locale = config('SETTINGS::LOCALE:DEFAULT');
}
}
}
diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php
index 5a50e7b5..88cadcaa 100644
--- a/app/Http/Middleware/TrimStrings.php
+++ b/app/Http/Middleware/TrimStrings.php
@@ -9,9 +9,10 @@ class TrimStrings extends Middleware
/**
* The names of the attributes that should not be trimmed.
*
- * @var array
+ * @var array
". __('Your servers have been suspended!')."
-
" . config('app.name', 'Laravel') . "'.__('Your servers have been suspended!').'
+
'.config('app.name', 'Laravel').'
diff --git a/app/Notifications/Ticket/User/CreateNotification.php b/app/Notifications/Ticket/User/CreateNotification.php
index 3d258030..6cb48832 100644
--- a/app/Notifications/Ticket/User/CreateNotification.php
+++ b/app/Notifications/Ticket/User/CreateNotification.php
@@ -10,7 +10,6 @@ use Illuminate\Notifications\Notification;
class CreateNotification extends Notification implements ShouldQueue
{
-
//THIS IS BASICALLY NOT USED ANYMORE WITH INVOICENOTIFICATION IN PLACE
use Queueable;
@@ -35,7 +34,8 @@ class CreateNotification extends Notification implements ShouldQueue
*/
public function via($notifiable)
{
- $via = ['mail','database'];
+ $via = ['mail', 'database'];
+
return $via;
}
@@ -48,20 +48,20 @@ class CreateNotification extends Notification implements ShouldQueue
public function toMail($notifiable)
{
return (new MailMessage)
- ->subject('[Ticket ID: ' . $this->ticket->ticket_id . '] ' . $this->ticket->title)
- ->markdown('mail.ticket.user.create' , ['ticket' => $this->ticket]);
+ ->subject('[Ticket ID: '.$this->ticket->ticket_id.'] '.$this->ticket->title)
+ ->markdown('mail.ticket.user.create', ['ticket' => $this->ticket]);
}
/**
* Get the array representation of the notification.
*
- * @param mixed $notifiable
+ * @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
- 'title' => '[Ticket ID: ' . $this->ticket->ticket_id . '] ' . $this->ticket->title,
+ 'title' => '[Ticket ID: '.$this->ticket->ticket_id.'] '.$this->ticket->title,
'content' => "Your Ticket has been Created With ID : {$this->ticket->ticket_id}",
];
}
diff --git a/app/Notifications/Ticket/User/ReplyNotification.php b/app/Notifications/Ticket/User/ReplyNotification.php
index 1d2b733a..19b52514 100644
--- a/app/Notifications/Ticket/User/ReplyNotification.php
+++ b/app/Notifications/Ticket/User/ReplyNotification.php
@@ -2,8 +2,8 @@
namespace App\Notifications\Ticket\User;
-use App\Models\User;
use App\Models\Ticket;
+use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
@@ -11,13 +11,14 @@ use Illuminate\Notifications\Notification;
class ReplyNotification extends Notification implements ShouldQueue
{
-
//THIS IS BASICALLY NOT USED ANYMORE WITH INVOICENOTIFICATION IN PLACE
use Queueable;
private Ticket $ticket;
+
private User $user;
+
private $newmessage;
/**
@@ -27,8 +28,8 @@ class ReplyNotification extends Notification implements ShouldQueue
*/
public function __construct(Ticket $ticket, User $user, $newmessage)
{
- $this->ticket = $ticket;
- $this->user = $user;
+ $this->ticket = $ticket;
+ $this->user = $user;
$this->newmessage = $newmessage;
}
@@ -40,7 +41,8 @@ class ReplyNotification extends Notification implements ShouldQueue
*/
public function via($notifiable)
{
- $via = ['mail','database'];
+ $via = ['mail', 'database'];
+
return $via;
}
@@ -53,20 +55,20 @@ class ReplyNotification extends Notification implements ShouldQueue
public function toMail($notifiable)
{
return (new MailMessage)
- ->subject('[Ticket ID: ' . $this->ticket->ticket_id . '] ' . $this->ticket->title)
- ->markdown('mail.ticket.user.reply' , ['ticket' => $this->ticket, 'user' => $this->user, 'newmessage' => $this->newmessage]);
+ ->subject('[Ticket ID: '.$this->ticket->ticket_id.'] '.$this->ticket->title)
+ ->markdown('mail.ticket.user.reply', ['ticket' => $this->ticket, 'user' => $this->user, 'newmessage' => $this->newmessage]);
}
/**
* Get the array representation of the notification.
*
- * @param mixed $notifiable
+ * @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
- 'title' => '[Ticket ID: ' . $this->ticket->ticket_id . '] ' . $this->ticket->title,
+ 'title' => '[Ticket ID: '.$this->ticket->ticket_id.'] '.$this->ticket->title,
'content' => "
diff --git a/app/Notifications/WelcomeMessage.php b/app/Notifications/WelcomeMessage.php
index 3841fc83..d6aa073b 100644
--- a/app/Notifications/WelcomeMessage.php
+++ b/app/Notifications/WelcomeMessage.php
@@ -2,7 +2,6 @@
namespace App\Notifications;
-use App\Models\Settings;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
@@ -20,7 +19,7 @@ class WelcomeMessage extends Notification implements ShouldQueue
/**
* Create a new notification instance.
*
- * @param User $user
+ * @param User $user
*/
public function __construct(User $user)
{
@@ -30,56 +29,56 @@ class WelcomeMessage extends Notification implements ShouldQueue
/**
* Get the notification's delivery channels.
*
- * @param mixed $notifiable
+ * @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['database'];
}
+
public function AdditionalLines()
{
-
- $AdditionalLine = "";
+ $AdditionalLine = '';
if (config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_EMAIL') != 0) {
- $AdditionalLine .= __("Verifying your e-mail address will grant you ") . config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_EMAIL'). " " . __("additional") . " " . config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME') . ".
";
+ $AdditionalLine .= __('Verifying your e-mail address will grant you ').config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_EMAIL').' '.__('additional').' '.config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME').'.
';
}
if (config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL') != 0) {
- $AdditionalLine .= __("Verifying your e-mail will also increase your Server Limit by ") . config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL') . ".
";
+ $AdditionalLine .= __('Verifying your e-mail will also increase your Server Limit by ').config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL').'.
';
}
- $AdditionalLine .= "
";
+ $AdditionalLine .= '
';
if (config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD') != 0) {
- $AdditionalLine .= __("You can also verify your discord account to get another ") . config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD') . " " . config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME') . ".
";
+ $AdditionalLine .= __('You can also verify your discord account to get another ').config('SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD').' '.config('SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME').'.
';
}
if (config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD') != 0) {
- $AdditionalLine .= __("Verifying your Discord account will also increase your Server Limit by ") . config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD') . ".
";
+ $AdditionalLine .= __('Verifying your Discord account will also increase your Server Limit by ').config('SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD').'.
';
}
return $AdditionalLine;
}
+
/**
* Get the array representation of the notification.
*
- * @param mixed $notifiable
+ * @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
-
return [
- 'title' => __("Getting started!"),
- 'content' => "
- ".__("Verification")."
- '.__('Verification').'
+ ".__("Information")."
-
".__("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").".
" . config('app.name', 'Laravel') . "'.__('Information').'
+
'.__('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').'.
'.config('app.name', 'Laravel').'
", $notes);
+
+
+ $invoice = Invoice::make()
+ ->template('controlpanel')
+ ->name(__("Invoice"))
+ ->buyer($customer)
+ ->seller($seller)
+ ->discountByPercent(PartnerDiscount::getDiscount())
+ ->taxRate(floatval($shopProduct->getTaxPercent()))
+ ->shipping(0)
+ ->addItem($item)
+ ->status(__($payment->status))
+ ->series(now()->format('mY'))
+ ->delimiter("-")
+ ->sequence($newInvoiceID)
+ ->serialNumberFormat(config("SETTINGS::INVOICE:PREFIX") . '{DELIMITER}{SERIES}{SEQUENCE}')
+ ->currencyCode(strtoupper($payment->currency_code))
+ ->currencySymbol(Currencies::getSymbol(strtoupper($payment->currency_code)))
+ ->notes($notes);
+
+ if (file_exists($logoPath)) {
+ $invoice->logo($logoPath);
+ }
+
+ //Save the invoice in "storage\app\invoice\USER_ID\YEAR"
+ $invoice->filename = $invoice->getSerialNumber() . '.pdf';
+ $invoice->render();
+ Storage::disk("local")->put("invoice/" . $user->id . "/" . now()->format('Y') . "/" . $invoice->filename, $invoice->output);
+
+ \App\Models\Invoice::create([
+ 'invoice_user' => $user->id,
+ 'invoice_name' => $invoice->getSerialNumber(),
+ 'payment_id' => $payment->payment_id,
+ ]);
+
+ //Send Invoice per Mail
+ $user->notify(new InvoiceNotification($invoice, $user, $payment));
+ }
+}
diff --git a/composer.json b/composer.json
index 37a657e2..6dfc73bb 100644
--- a/composer.json
+++ b/composer.json
@@ -8,42 +8,47 @@
],
"license": "MIT",
"require": {
- "php": "^8.0|^7.4",
+ "php": "^8.1",
"ext-intl": "*",
"biscolab/laravel-recaptcha": "^5.4",
"doctrine/dbal": "^3.1",
- "fideloper/proxy": "^4.4",
- "fruitcake/laravel-cors": "^2.0",
- "guzzlehttp/guzzle": "^7.0.1",
+ "guzzlehttp/guzzle": "^7.2",
"hidehalo/nanoid-php": "^1.1",
- "kkomelin/laravel-translatable-string-exporter": "^1.14",
- "laravel/framework": "^8.12",
- "laravel/tinker": "^2.5",
- "laravel/ui": "^3.2",
- "laraveldaily/laravel-invoices": "^2.0",
+ "kkomelin/laravel-translatable-string-exporter": "^1.18",
+ "laravel/framework": "^9.46",
+ "laravel/tinker": "^2.7",
+ "laravel/ui": "^3.3",
+ "laraveldaily/laravel-invoices": "^3.0",
+ "league/flysystem-aws-s3-v3": "^3.0",
"paypal/paypal-checkout-sdk": "^1.0",
"paypal/rest-api-sdk-php": "^1.14",
+ "qirolab/laravel-themer": "^2.0",
"socialiteproviders/discord": "^4.1",
- "spatie/laravel-activitylog": "^3.16",
- "spatie/laravel-query-builder": "^3.6",
- "spatie/laravel-validation-rules": "^3.0",
+ "spatie/laravel-activitylog": "^4.4",
+ "spatie/laravel-query-builder": "^5.0",
+ "spatie/laravel-validation-rules": "^3.2",
"stripe/stripe-php": "^7.107",
- "symfony/intl": "^5.4",
- "yajra/laravel-datatables-oracle": "~9.0"
+ "symfony/http-client": "^6.2",
+ "symfony/intl": "^6.0",
+ "symfony/mailgun-mailer": "^6.2",
+ "yajra/laravel-datatables-oracle": "^9.19"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.6",
- "facade/ignition": "^2.5",
"fakerphp/faker": "^1.9.1",
- "laravel/sail": "^1.0.1",
- "mockery/mockery": "^1.4.2",
- "nunomaduro/collision": "^5.0",
- "phpunit/phpunit": "^9.3.3"
+ "laravel/sail": "^1.15",
+ "mockery/mockery": "^1.4.4",
+ "nunomaduro/collision": "^6.3",
+ "phpunit/phpunit": "^9.5.10",
+ "spatie/laravel-ignition": "^1.4"
},
"config": {
"optimize-autoloader": true,
"preferred-install": "dist",
- "sort-packages": true
+ "sort-packages": true,
+ "platform": {
+ "php": "8.1"
+ }
},
"extra": {
"laravel": {
@@ -76,6 +81,9 @@
],
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
+ ],
+ "post-update-cmd": [
+ "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
]
}
}
diff --git a/composer.lock b/composer.lock
index 70b9a5f9..22199e07 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,87 +4,189 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "275c5d5f239c60f912cf741392f4f063",
+ "content-hash": "be76c9bab8622d363a4eb843794e9e3e",
"packages": [
{
- "name": "asm89/stack-cors",
- "version": "v2.1.1",
+ "name": "aws/aws-crt-php",
+ "version": "v1.0.2",
"source": {
"type": "git",
- "url": "https://github.com/asm89/stack-cors.git",
- "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a"
+ "url": "https://github.com/awslabs/aws-crt-php.git",
+ "reference": "3942776a8c99209908ee0b287746263725685732"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/asm89/stack-cors/zipball/73e5b88775c64ccc0b84fb60836b30dc9d92ac4a",
- "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a",
+ "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/3942776a8c99209908ee0b287746263725685732",
+ "reference": "3942776a8c99209908ee0b287746263725685732",
"shasum": ""
},
"require": {
- "php": "^7.2|^8.0",
- "symfony/http-foundation": "^4|^5|^6",
- "symfony/http-kernel": "^4|^5|^6"
+ "php": ">=5.5"
},
"require-dev": {
- "phpunit/phpunit": "^7|^9",
+ "phpunit/phpunit": "^4.8.35|^5.4.3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "AWS SDK Common Runtime Team",
+ "email": "aws-sdk-common-runtime@amazon.com"
+ }
+ ],
+ "description": "AWS Common Runtime for PHP",
+ "homepage": "http://aws.amazon.com/sdkforphp",
+ "keywords": [
+ "amazon",
+ "aws",
+ "crt",
+ "sdk"
+ ],
+ "support": {
+ "issues": "https://github.com/awslabs/aws-crt-php/issues",
+ "source": "https://github.com/awslabs/aws-crt-php/tree/v1.0.2"
+ },
+ "time": "2021-09-03T22:57:30+00:00"
+ },
+ {
+ "name": "aws/aws-sdk-php",
+ "version": "3.255.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/aws/aws-sdk-php.git",
+ "reference": "a001ab98b9e76a6f5cae327b3316b08fab37a296"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a001ab98b9e76a6f5cae327b3316b08fab37a296",
+ "reference": "a001ab98b9e76a6f5cae327b3316b08fab37a296",
+ "shasum": ""
+ },
+ "require": {
+ "aws/aws-crt-php": "^1.0.2",
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-simplexml": "*",
+ "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
+ "guzzlehttp/promises": "^1.4.0",
+ "guzzlehttp/psr7": "^1.8.5 || ^2.3",
+ "mtdowling/jmespath.php": "^2.6",
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "andrewsville/php-token-reflection": "^1.4",
+ "aws/aws-php-sns-message-validator": "~1.0",
+ "behat/behat": "~3.0",
+ "composer/composer": "^1.10.22",
+ "dms/phpunit-arraysubset-asserts": "^0.4.0",
+ "doctrine/cache": "~1.4",
+ "ext-dom": "*",
+ "ext-openssl": "*",
+ "ext-pcntl": "*",
+ "ext-sockets": "*",
+ "nette/neon": "^2.3",
+ "paragonie/random_compat": ">= 2",
+ "phpunit/phpunit": "^4.8.35 || ^5.6.3 || ^9.5",
+ "psr/cache": "^1.0",
+ "psr/simple-cache": "^1.0",
+ "sebastian/comparator": "^1.2.3 || ^4.0",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "suggest": {
+ "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
+ "doctrine/cache": "To use the DoctrineCacheAdapter",
+ "ext-curl": "To send requests using cURL",
+ "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
+ "ext-sockets": "To use client-side monitoring"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Aws\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Amazon Web Services",
+ "homepage": "http://aws.amazon.com"
+ }
+ ],
+ "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
+ "homepage": "http://aws.amazon.com/sdkforphp",
+ "keywords": [
+ "amazon",
+ "aws",
+ "cloud",
+ "dynamodb",
+ "ec2",
+ "glacier",
+ "s3",
+ "sdk"
+ ],
+ "support": {
+ "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
+ "issues": "https://github.com/aws/aws-sdk-php/issues",
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.255.9"
+ },
+ "time": "2023-01-04T19:24:09+00:00"
+ },
+ {
+ "name": "barryvdh/laravel-dompdf",
+ "version": "v2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/barryvdh/laravel-dompdf.git",
+ "reference": "1d47648c6cef37f715ecb8bcc5f5a656ad372e27"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/1d47648c6cef37f715ecb8bcc5f5a656ad372e27",
+ "reference": "1d47648c6cef37f715ecb8bcc5f5a656ad372e27",
+ "shasum": ""
+ },
+ "require": {
+ "dompdf/dompdf": "^2",
+ "illuminate/support": "^6|^7|^8|^9",
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "nunomaduro/larastan": "^1|^2",
+ "orchestra/testbench": "^4|^5|^6|^7",
+ "phpro/grumphp": "^1",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Asm89\\Stack\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Alexander",
- "email": "iam.asm89@gmail.com"
- }
- ],
- "description": "Cross-origin resource sharing library and stack middleware",
- "homepage": "https://github.com/asm89/stack-cors",
- "keywords": ["cors", "stack"],
- "support": {
- "issues": "https://github.com/asm89/stack-cors/issues",
- "source": "https://github.com/asm89/stack-cors/tree/v2.1.1"
- },
- "time": "2022-01-18T09:12:03+00:00"
- },
- {
- "name": "barryvdh/laravel-dompdf",
- "version": "v0.9.0",
- "source": {
- "type": "git",
- "url": "https://github.com/barryvdh/laravel-dompdf.git",
- "reference": "5b99e1f94157d74e450f4c97e8444fcaffa2144b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/5b99e1f94157d74e450f4c97e8444fcaffa2144b",
- "reference": "5b99e1f94157d74e450f4c97e8444fcaffa2144b",
- "shasum": ""
- },
- "require": {
- "dompdf/dompdf": "^1",
- "illuminate/support": "^5.5|^6|^7|^8",
- "php": "^7.1 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.9-dev"
+ "dev-master": "2.0-dev"
},
"laravel": {
- "providers": ["Barryvdh\\DomPDF\\ServiceProvider"],
+ "providers": [
+ "Barryvdh\\DomPDF\\ServiceProvider"
+ ],
"aliases": {
- "PDF": "Barryvdh\\DomPDF\\Facade"
+ "Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf",
+ "PDF": "Barryvdh\\DomPDF\\Facade\\Pdf"
}
}
},
@@ -94,7 +196,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Barry vd. Heuvel",
@@ -102,18 +206,26 @@
}
],
"description": "A DOMPDF Wrapper for Laravel",
- "keywords": ["dompdf", "laravel", "pdf"],
+ "keywords": [
+ "dompdf",
+ "laravel",
+ "pdf"
+ ],
"support": {
"issues": "https://github.com/barryvdh/laravel-dompdf/issues",
- "source": "https://github.com/barryvdh/laravel-dompdf/tree/v0.9.0"
+ "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.0.0"
},
"funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
{
"url": "https://github.com/barryvdh",
"type": "github"
}
],
- "time": "2020-12-27T12:05:53+00:00"
+ "time": "2022-07-06T11:12:10+00:00"
},
{
"name": "biscolab/laravel-recaptcha",
@@ -153,13 +265,17 @@
}
},
"autoload": {
- "files": ["src/helpers.php"],
+ "files": [
+ "src/helpers.php"
+ ],
"psr-4": {
"Biscolab\\ReCaptcha\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Roberto Belotti",
@@ -170,7 +286,12 @@
],
"description": "Simple and painless Google reCAPTCHA package for Laravel framework",
"homepage": "https://biscolab.com/laravel-recaptcha",
- "keywords": ["captcha", "laravel", "recaptcha", "validation"],
+ "keywords": [
+ "captcha",
+ "laravel",
+ "recaptcha",
+ "validation"
+ ],
"support": {
"issues": "https://github.com/biscolab/laravel-recaptcha/issues",
"source": "https://github.com/biscolab/laravel-recaptcha/tree/v5.4.0"
@@ -179,16 +300,16 @@
},
{
"name": "brick/math",
- "version": "0.10.1",
+ "version": "0.10.2",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "de846578401f4e58f911b3afeb62ced56365ed87"
+ "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/de846578401f4e58f911b3afeb62ced56365ed87",
- "reference": "de846578401f4e58f911b3afeb62ced56365ed87",
+ "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f",
+ "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f",
"shasum": ""
},
"require": {
@@ -207,7 +328,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"description": "Arbitrary-precision arithmetic library",
"keywords": [
"Arbitrary-precision",
@@ -221,7 +344,7 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.10.1"
+ "source": "https://github.com/brick/math/tree/0.10.2"
},
"funding": [
{
@@ -229,20 +352,20 @@
"type": "github"
}
],
- "time": "2022-08-01T22:54:31+00:00"
+ "time": "2022-08-10T22:54:19+00:00"
},
{
"name": "dflydev/dot-access-data",
- "version": "v3.0.1",
+ "version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c"
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549",
"shasum": ""
},
"require": {
@@ -253,7 +376,7 @@
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
"scrutinizer/ocular": "1.6.0",
"squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^3.14"
+ "vimeo/psalm": "^4.0.0"
},
"type": "library",
"extra": {
@@ -267,7 +390,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Dragonfly Development Inc.",
@@ -292,12 +417,17 @@
],
"description": "Given a deep data structure, access data by dot notation.",
"homepage": "https://github.com/dflydev/dflydev-dot-access-data",
- "keywords": ["access", "data", "dot", "notation"],
+ "keywords": [
+ "access",
+ "data",
+ "dot",
+ "notation"
+ ],
"support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1"
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
},
- "time": "2021-08-13T13:06:58+00:00"
+ "time": "2022-10-27T11:44:00+00:00"
},
{
"name": "doctrine/cache",
@@ -334,7 +464,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Guilherme Blanco",
@@ -392,43 +524,45 @@
},
{
"name": "doctrine/dbal",
- "version": "3.3.7",
+ "version": "3.5.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "9f79d4650430b582f4598fe0954ef4d52fbc0a8a"
+ "reference": "63e513cebbbaf96a6795e5c5ee34d205831bfc85"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/9f79d4650430b582f4598fe0954ef4d52fbc0a8a",
- "reference": "9f79d4650430b582f4598fe0954ef4d52fbc0a8a",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/63e513cebbbaf96a6795e5c5ee34d205831bfc85",
+ "reference": "63e513cebbbaf96a6795e5c5ee34d205831bfc85",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2",
"doctrine/cache": "^1.11|^2.0",
"doctrine/deprecations": "^0.5.3|^1",
- "doctrine/event-manager": "^1.0",
- "php": "^7.3 || ^8.0",
+ "doctrine/event-manager": "^1|^2",
+ "php": "^7.4 || ^8.0",
"psr/cache": "^1|^2|^3",
"psr/log": "^1|^2|^3"
},
"require-dev": {
- "doctrine/coding-standard": "9.0.0",
- "jetbrains/phpstorm-stubs": "2022.1",
- "phpstan/phpstan": "1.7.13",
- "phpstan/phpstan-strict-rules": "^1.2",
- "phpunit/phpunit": "9.5.20",
- "psalm/plugin-phpunit": "0.16.1",
- "squizlabs/php_codesniffer": "3.7.0",
- "symfony/cache": "^5.2|^6.0",
- "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0",
- "vimeo/psalm": "4.23.0"
+ "doctrine/coding-standard": "11.0.0",
+ "jetbrains/phpstorm-stubs": "2022.3",
+ "phpstan/phpstan": "1.9.2",
+ "phpstan/phpstan-strict-rules": "^1.4",
+ "phpunit/phpunit": "9.5.27",
+ "psalm/plugin-phpunit": "0.18.4",
+ "squizlabs/php_codesniffer": "3.7.1",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/console": "^4.4|^5.4|^6.0",
+ "vimeo/psalm": "4.30.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
},
- "bin": ["bin/doctrine-dbal"],
+ "bin": [
+ "bin/doctrine-dbal"
+ ],
"type": "library",
"autoload": {
"psr-4": {
@@ -436,7 +570,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Guilherme Blanco",
@@ -479,7 +615,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.3.7"
+ "source": "https://github.com/doctrine/dbal/tree/3.5.2"
},
"funding": [
{
@@ -495,7 +631,7 @@
"type": "tidelift"
}
],
- "time": "2022-06-13T21:43:03+00:00"
+ "time": "2022-12-19T08:17:34+00:00"
},
{
"name": "doctrine/deprecations",
@@ -529,7 +665,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
"homepage": "https://www.doctrine-project.org/",
"support": {
@@ -540,38 +678,40 @@
},
{
"name": "doctrine/event-manager",
- "version": "1.1.2",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
- "reference": "eb2ecf80e3093e8f3c2769ac838e27d8ede8e683"
+ "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/eb2ecf80e3093e8f3c2769ac838e27d8ede8e683",
- "reference": "eb2ecf80e3093e8f3c2769ac838e27d8ede8e683",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
+ "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"conflict": {
"doctrine/common": "<2.9"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "~1.4.10 || ^1.5.4",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.22"
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.8.8",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^4.28"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\": "lib/Doctrine/Common"
+ "Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Guilherme Blanco",
@@ -609,7 +749,7 @@
],
"support": {
"issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/1.1.2"
+ "source": "https://github.com/doctrine/event-manager/tree/2.0.0"
},
"funding": [
{
@@ -625,32 +765,32 @@
"type": "tidelift"
}
],
- "time": "2022-07-27T22:18:11+00:00"
+ "time": "2022-10-12T20:59:15+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.4",
+ "version": "2.0.6",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89"
+ "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
- "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
+ "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^8.2",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpstan/phpstan-strict-rules": "^0.12",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
- "vimeo/psalm": "^4.10"
+ "doctrine/coding-standard": "^10",
+ "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"
},
"type": "library",
"autoload": {
@@ -659,7 +799,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Guilherme Blanco",
@@ -698,7 +840,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.4"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.6"
},
"funding": [
{
@@ -714,39 +856,43 @@
"type": "tidelift"
}
],
- "time": "2021-10-22T20:16:43+00:00"
+ "time": "2022-10-20T09:10:12+00:00"
},
{
"name": "doctrine/lexer",
- "version": "1.2.3",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
+ "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
+ "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
"shasum": ""
},
"require": {
+ "doctrine/deprecations": "^1.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
+ "doctrine/coding-standard": "^9 || ^10",
"phpstan/phpstan": "^1.3",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.11"
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^4.11 || ^5.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ "Doctrine\\Common\\Lexer\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Guilherme Blanco",
@@ -763,10 +909,16 @@
],
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
"homepage": "https://www.doctrine-project.org/projects/lexer.html",
- "keywords": ["annotations", "docblock", "lexer", "parser", "php"],
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/1.2.3"
+ "source": "https://github.com/doctrine/lexer/tree/2.1.0"
},
"funding": [
{
@@ -782,27 +934,28 @@
"type": "tidelift"
}
],
- "time": "2022-02-28T11:07:21+00:00"
+ "time": "2022-12-14T08:49:07+00:00"
},
{
"name": "dompdf/dompdf",
- "version": "v1.2.2",
+ "version": "v2.0.1",
"source": {
"type": "git",
"url": "https://github.com/dompdf/dompdf.git",
- "reference": "5031045d9640b38cfc14aac9667470df09c9e090"
+ "reference": "c5310df0e22c758c85ea5288175fc6cd777bc085"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dompdf/dompdf/zipball/5031045d9640b38cfc14aac9667470df09c9e090",
- "reference": "5031045d9640b38cfc14aac9667470df09c9e090",
+ "url": "https://api.github.com/repos/dompdf/dompdf/zipball/c5310df0e22c758c85ea5288175fc6cd777bc085",
+ "reference": "c5310df0e22c758c85ea5288175fc6cd777bc085",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-mbstring": "*",
- "phenx/php-font-lib": "^0.5.4",
- "phenx/php-svg-lib": "^0.3.3 || ^0.4.0",
+ "masterminds/html5": "^2.0",
+ "phenx/php-font-lib": ">=0.5.4 <1.0.0",
+ "phenx/php-svg-lib": ">=0.3.3 <1.0.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
@@ -823,44 +976,40 @@
"psr-4": {
"Dompdf\\": "src/"
},
- "classmap": ["lib/"]
+ "classmap": [
+ "lib/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["LGPL-2.1"],
+ "license": [
+ "LGPL-2.1"
+ ],
"authors": [
{
- "name": "Fabien Ménager",
- "email": "fabien.menager@gmail.com"
- },
- {
- "name": "Brian Sweeney",
- "email": "eclecticgeek@gmail.com"
- },
- {
- "name": "Gabriel Bull",
- "email": "me@gabrielbull.com"
+ "name": "The Dompdf Community",
+ "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md"
}
],
"description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter",
"homepage": "https://github.com/dompdf/dompdf",
"support": {
"issues": "https://github.com/dompdf/dompdf/issues",
- "source": "https://github.com/dompdf/dompdf/tree/v1.2.2"
+ "source": "https://github.com/dompdf/dompdf/tree/v2.0.1"
},
- "time": "2022-04-27T13:50:54+00:00"
+ "time": "2022-09-22T13:43:41+00:00"
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.3.1",
+ "version": "v3.3.2",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa"
+ "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/be85b3f05b46c39bbc0d95f6c071ddff669510fa",
- "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8",
+ "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8",
"shasum": ""
},
"require": {
@@ -883,7 +1032,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Chris Tankersley",
@@ -892,10 +1043,13 @@
}
],
"description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
- "keywords": ["cron", "schedule"],
+ "keywords": [
+ "cron",
+ "schedule"
+ ],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.1"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2"
},
"funding": [
{
@@ -903,31 +1057,30 @@
"type": "github"
}
],
- "time": "2022-01-18T15:43:28+00:00"
+ "time": "2022-09-10T18:51:20+00:00"
},
{
"name": "egulias/email-validator",
- "version": "2.1.25",
+ "version": "3.2.5",
"source": {
"type": "git",
"url": "https://github.com/egulias/EmailValidator.git",
- "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4"
+ "reference": "b531a2311709443320c786feb4519cfaf94af796"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4",
- "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b531a2311709443320c786feb4519cfaf94af796",
+ "reference": "b531a2311709443320c786feb4519cfaf94af796",
"shasum": ""
},
"require": {
- "doctrine/lexer": "^1.0.1",
- "php": ">=5.5",
- "symfony/polyfill-intl-idn": "^1.10"
+ "doctrine/lexer": "^1.2|^2",
+ "php": ">=7.2",
+ "symfony/polyfill-intl-idn": "^1.15"
},
"require-dev": {
- "dominicsayers/isemail": "^3.0.7",
- "phpunit/phpunit": "^4.8.36|^7.5.15",
- "satooshi/php-coveralls": "^1.0.1"
+ "phpunit/phpunit": "^8.5.8|^9.3.3",
+ "vimeo/psalm": "^4"
},
"suggest": {
"ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
@@ -935,7 +1088,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1.x-dev"
+ "dev-master": "3.0.x-dev"
}
},
"autoload": {
@@ -944,7 +1097,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Eduardo Gulias Davis"
@@ -961,7 +1116,7 @@
],
"support": {
"issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/2.1.25"
+ "source": "https://github.com/egulias/EmailValidator/tree/3.2.5"
},
"funding": [
{
@@ -969,93 +1124,88 @@
"type": "github"
}
],
- "time": "2020-12-29T14:50:06+00:00"
+ "time": "2023-01-02T17:26:14+00:00"
},
{
- "name": "fideloper/proxy",
- "version": "4.4.2",
+ "name": "facade/ignition-contracts",
+ "version": "1.0.2",
"source": {
"type": "git",
- "url": "https://github.com/fideloper/TrustedProxy.git",
- "reference": "a751f2bc86dd8e6cfef12dc0cbdada82f5a18750"
+ "url": "https://github.com/facade/ignition-contracts.git",
+ "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/a751f2bc86dd8e6cfef12dc0cbdada82f5a18750",
- "reference": "a751f2bc86dd8e6cfef12dc0cbdada82f5a18750",
+ "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
+ "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
"shasum": ""
},
"require": {
- "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0",
- "php": ">=5.4.0"
+ "php": "^7.3|^8.0"
},
"require-dev": {
- "illuminate/http": "^5.0|^6.0|^7.0|^8.0|^9.0",
- "mockery/mockery": "^1.0",
- "phpunit/phpunit": "^8.5.8|^9.3.3"
+ "friendsofphp/php-cs-fixer": "^v2.15.8",
+ "phpunit/phpunit": "^9.3.11",
+ "vimeo/psalm": "^3.17.1"
},
"type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Fideloper\\Proxy\\TrustedProxyServiceProvider"
- ]
- }
- },
"autoload": {
"psr-4": {
- "Fideloper\\Proxy\\": "src/"
+ "Facade\\IgnitionContracts\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
- "name": "Chris Fidao",
- "email": "fideloper@gmail.com"
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://flareapp.io",
+ "role": "Developer"
}
],
- "description": "Set trusted proxies for Laravel",
- "keywords": ["load balancing", "proxy", "trusted proxy"],
+ "description": "Solution contracts for Ignition",
+ "homepage": "https://github.com/facade/ignition-contracts",
+ "keywords": [
+ "contracts",
+ "flare",
+ "ignition"
+ ],
"support": {
- "issues": "https://github.com/fideloper/TrustedProxy/issues",
- "source": "https://github.com/fideloper/TrustedProxy/tree/4.4.2"
+ "issues": "https://github.com/facade/ignition-contracts/issues",
+ "source": "https://github.com/facade/ignition-contracts/tree/1.0.2"
},
- "time": "2022-02-09T13:33:34+00:00"
+ "time": "2020-10-16T08:27:54+00:00"
},
{
- "name": "fruitcake/laravel-cors",
- "version": "v2.2.0",
+ "name": "fruitcake/php-cors",
+ "version": "v1.2.0",
"source": {
"type": "git",
- "url": "https://github.com/fruitcake/laravel-cors.git",
- "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534"
+ "url": "https://github.com/fruitcake/php-cors.git",
+ "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/783a74f5e3431d7b9805be8afb60fd0a8f743534",
- "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534",
+ "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e",
+ "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e",
"shasum": ""
},
"require": {
- "asm89/stack-cors": "^2.0.1",
- "illuminate/contracts": "^6|^7|^8|^9",
- "illuminate/support": "^6|^7|^8|^9",
- "php": ">=7.2"
+ "php": "^7.4|^8.0",
+ "symfony/http-foundation": "^4.4|^5.4|^6"
},
"require-dev": {
- "laravel/framework": "^6|^7.24|^8",
- "orchestra/testbench-dusk": "^4|^5|^6|^7",
- "phpunit/phpunit": "^6|^7|^8|^9",
+ "phpstan/phpstan": "^1.4",
+ "phpunit/phpunit": "^9",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
- },
- "laravel": {
- "providers": ["Fruitcake\\Cors\\CorsServiceProvider"]
+ "dev-main": "1.1-dev"
}
},
"autoload": {
@@ -1064,22 +1214,29 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fruitcake",
"homepage": "https://fruitcake.nl"
},
{
- "name": "Barry vd. Heuvel",
+ "name": "Barryvdh",
"email": "barryvdh@gmail.com"
}
],
- "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application",
- "keywords": ["api", "cors", "crossdomain", "laravel"],
+ "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
+ "homepage": "https://github.com/fruitcake/php-cors",
+ "keywords": [
+ "cors",
+ "laravel",
+ "symfony"
+ ],
"support": {
- "issues": "https://github.com/fruitcake/laravel-cors/issues",
- "source": "https://github.com/fruitcake/laravel-cors/tree/v2.2.0"
+ "issues": "https://github.com/fruitcake/php-cors/issues",
+ "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0"
},
"funding": [
{
@@ -1091,7 +1248,7 @@
"type": "github"
}
],
- "time": "2022-02-23T14:25:13+00:00"
+ "time": "2022-02-20T15:07:15+00:00"
},
{
"name": "graham-campbell/result-type",
@@ -1121,7 +1278,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Graham Campbell",
@@ -1155,16 +1314,16 @@
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.4.5",
+ "version": "7.5.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82"
+ "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1dd98b0564cb3f6bd16ce683cb755f94c10fbd82",
- "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba",
+ "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba",
"shasum": ""
},
"require": {
@@ -1179,10 +1338,10 @@
"psr/http-client-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.1",
"ext-curl": "*",
"php-http/client-integration-tests": "^3.0",
- "phpunit/phpunit": "^8.5.5 || ^9.3.5",
+ "phpunit/phpunit": "^8.5.29 || ^9.5.23",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -1192,18 +1351,26 @@
},
"type": "library",
"extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
"branch-alias": {
- "dev-master": "7.4-dev"
+ "dev-master": "7.5-dev"
}
},
"autoload": {
- "files": ["src/functions_include.php"],
+ "files": [
+ "src/functions_include.php"
+ ],
"psr-4": {
"GuzzleHttp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Graham Campbell",
@@ -1255,7 +1422,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.4.5"
+ "source": "https://github.com/guzzle/guzzle/tree/7.5.0"
},
"funding": [
{
@@ -1271,20 +1438,20 @@
"type": "tidelift"
}
],
- "time": "2022-06-20T22:16:13+00:00"
+ "time": "2022-08-28T15:39:27+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.5.1",
+ "version": "1.5.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
+ "reference": "b94b2807d85443f9719887892882d0329d1e2598"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
- "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
+ "reference": "b94b2807d85443f9719887892882d0329d1e2598",
"shasum": ""
},
"require": {
@@ -1300,13 +1467,17 @@
}
},
"autoload": {
- "files": ["src/functions_include.php"],
+ "files": [
+ "src/functions_include.php"
+ ],
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Graham Campbell",
@@ -1330,10 +1501,12 @@
}
],
"description": "Guzzle promises library",
- "keywords": ["promise"],
+ "keywords": [
+ "promise"
+ ],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.5.1"
+ "source": "https://github.com/guzzle/promises/tree/1.5.2"
},
"funding": [
{
@@ -1349,20 +1522,20 @@
"type": "tidelift"
}
],
- "time": "2021-10-22T20:56:57+00:00"
+ "time": "2022-08-28T14:55:35+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.4.0",
+ "version": "2.4.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "13388f00956b1503577598873fffb5ae994b5737"
+ "reference": "67c26b443f348a51926030c83481b85718457d3d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/13388f00956b1503577598873fffb5ae994b5737",
- "reference": "13388f00956b1503577598873fffb5ae994b5737",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d",
+ "reference": "67c26b443f348a51926030c83481b85718457d3d",
"shasum": ""
},
"require": {
@@ -1376,15 +1549,19 @@
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.1",
"http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.8 || ^9.3.10"
+ "phpunit/phpunit": "^8.5.29 || ^9.5.23"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
},
"type": "library",
"extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
"branch-alias": {
"dev-master": "2.4-dev"
}
@@ -1395,7 +1572,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Graham Campbell",
@@ -1446,7 +1625,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.4.0"
+ "source": "https://github.com/guzzle/psr7/tree/2.4.3"
},
"funding": [
{
@@ -1462,7 +1641,7 @@
"type": "tidelift"
}
],
- "time": "2022-06-20T21:43:11+00:00"
+ "time": "2022-10-26T14:07:24+00:00"
},
{
"name": "hidehalo/nanoid-php",
@@ -1498,7 +1677,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "hidehalo",
@@ -1509,7 +1690,10 @@
],
"description": "A copy of nanoid in PHP",
"homepage": "https://github.com/hidehalo/nanoid-php",
- "keywords": ["hidehalo", "nanoid-php"],
+ "keywords": [
+ "hidehalo",
+ "nanoid-php"
+ ],
"support": {
"issues": "https://github.com/hidehalo/nanoid-php/issues",
"source": "https://github.com/hidehalo/nanoid-php/tree/1.1.12"
@@ -1556,7 +1740,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Konstantin Komelin",
@@ -1581,56 +1767,57 @@
},
{
"name": "laravel/framework",
- "version": "v8.83.23",
+ "version": "v9.46.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "bdc707f8b9bcad289b24cd182d98ec7480ac4491"
+ "reference": "62b05b6de5733d89378a279e40230a71e5ab5d92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/bdc707f8b9bcad289b24cd182d98ec7480ac4491",
- "reference": "bdc707f8b9bcad289b24cd182d98ec7480ac4491",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/62b05b6de5733d89378a279e40230a71e5ab5d92",
+ "reference": "62b05b6de5733d89378a279e40230a71e5ab5d92",
"shasum": ""
},
"require": {
- "doctrine/inflector": "^1.4|^2.0",
- "dragonmantank/cron-expression": "^3.0.2",
- "egulias/email-validator": "^2.1.10",
- "ext-json": "*",
+ "doctrine/inflector": "^2.0",
+ "dragonmantank/cron-expression": "^3.3.2",
+ "egulias/email-validator": "^3.2.1",
"ext-mbstring": "*",
"ext-openssl": "*",
- "laravel/serializable-closure": "^1.0",
- "league/commonmark": "^1.3|^2.0.2",
- "league/flysystem": "^1.1",
+ "fruitcake/php-cors": "^1.2",
+ "laravel/serializable-closure": "^1.2.2",
+ "league/commonmark": "^2.2.1",
+ "league/flysystem": "^3.8.0",
"monolog/monolog": "^2.0",
- "nesbot/carbon": "^2.53.1",
- "opis/closure": "^3.6",
- "php": "^7.3|^8.0",
- "psr/container": "^1.0",
- "psr/log": "^1.0|^2.0",
- "psr/simple-cache": "^1.0",
- "ramsey/uuid": "^4.2.2",
- "swiftmailer/swiftmailer": "^6.3",
- "symfony/console": "^5.4",
- "symfony/error-handler": "^5.4",
- "symfony/finder": "^5.4",
- "symfony/http-foundation": "^5.4",
- "symfony/http-kernel": "^5.4",
- "symfony/mime": "^5.4",
- "symfony/process": "^5.4",
- "symfony/routing": "^5.4",
- "symfony/var-dumper": "^5.4",
- "tijsverkoyen/css-to-inline-styles": "^2.2.2",
+ "nesbot/carbon": "^2.62.1",
+ "nunomaduro/termwind": "^1.13",
+ "php": "^8.0.2",
+ "psr/container": "^1.1.1|^2.0.1",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "ramsey/uuid": "^4.7",
+ "symfony/console": "^6.0.9",
+ "symfony/error-handler": "^6.0",
+ "symfony/finder": "^6.0",
+ "symfony/http-foundation": "^6.0",
+ "symfony/http-kernel": "^6.0",
+ "symfony/mailer": "^6.0",
+ "symfony/mime": "^6.0",
+ "symfony/process": "^6.0",
+ "symfony/routing": "^6.0",
+ "symfony/uid": "^6.0",
+ "symfony/var-dumper": "^6.0",
+ "tijsverkoyen/css-to-inline-styles": "^2.2.5",
"vlucas/phpdotenv": "^5.4.1",
- "voku/portable-ascii": "^1.6.1"
+ "voku/portable-ascii": "^2.0"
},
"conflict": {
"tightenco/collect": "<5.5.33"
},
"provide": {
- "psr/container-implementation": "1.0",
- "psr/simple-cache-implementation": "1.0"
+ "psr/container-implementation": "1.1|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0"
},
"replace": {
"illuminate/auth": "self.version",
@@ -1638,6 +1825,7 @@
"illuminate/bus": "self.version",
"illuminate/cache": "self.version",
"illuminate/collections": "self.version",
+ "illuminate/conditionable": "self.version",
"illuminate/config": "self.version",
"illuminate/console": "self.version",
"illuminate/container": "self.version",
@@ -1666,21 +1854,27 @@
"illuminate/view": "self.version"
},
"require-dev": {
- "aws/aws-sdk-php": "^3.198.1",
+ "ably/ably-php": "^1.0",
+ "aws/aws-sdk-php": "^3.235.5",
"doctrine/dbal": "^2.13.3|^3.1.4",
- "filp/whoops": "^2.14.3",
- "guzzlehttp/guzzle": "^6.5.5|^7.0.1",
- "league/flysystem-cached-adapter": "^1.0",
- "mockery/mockery": "^1.4.4",
- "orchestra/testbench-core": "^6.27",
+ "fakerphp/faker": "^1.21",
+ "guzzlehttp/guzzle": "^7.5",
+ "league/flysystem-aws-s3-v3": "^3.0",
+ "league/flysystem-ftp": "^3.0",
+ "league/flysystem-path-prefixing": "^3.3",
+ "league/flysystem-read-only": "^3.3",
+ "league/flysystem-sftp-v3": "^3.0",
+ "mockery/mockery": "^1.5.1",
+ "orchestra/testbench-core": "^7.16",
"pda/pheanstalk": "^4.0",
- "phpunit/phpunit": "^8.5.19|^9.5.8",
- "predis/predis": "^1.1.9",
- "symfony/cache": "^5.4"
+ "phpstan/phpstan": "^1.4.7",
+ "phpunit/phpunit": "^9.5.8",
+ "predis/predis": "^1.1.9|^2.0.2",
+ "symfony/cache": "^6.0"
},
"suggest": {
"ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
- "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).",
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
"brianium/paratest": "Required to run tests in parallel (^6.0).",
"doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).",
"ext-bcmath": "Required to use the multiple_of validation rule.",
@@ -1692,27 +1886,31 @@
"ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
"fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
"filp/whoops": "Required for friendly error pages in development (^2.14.3).",
- "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).",
+ "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).",
"laravel/tinker": "Required to use the tinker console command (^2.0).",
- "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
- "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).",
- "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).",
- "mockery/mockery": "Required to use mocking (^1.4.4).",
+ "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
+ "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
+ "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).",
+ "league/flysystem-read-only": "Required to use read-only disks (^3.3)",
+ "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+ "mockery/mockery": "Required to use mocking (^1.5.1).",
"nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
"pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
- "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).",
- "predis/predis": "Required to use the predis connector (^1.1.9).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).",
+ "predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
- "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).",
- "symfony/cache": "Required to PSR-6 cache bridge (^5.4).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).",
- "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).",
- "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
+ "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^6.0).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "8.x-dev"
+ "dev-master": "9.x-dev"
}
},
"autoload": {
@@ -1726,12 +1924,15 @@
"Illuminate\\": "src/Illuminate/",
"Illuminate\\Support\\": [
"src/Illuminate/Macroable/",
- "src/Illuminate/Collections/"
+ "src/Illuminate/Collections/",
+ "src/Illuminate/Conditionable/"
]
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Taylor Otwell",
@@ -1740,34 +1941,38 @@
],
"description": "The Laravel Framework.",
"homepage": "https://laravel.com",
- "keywords": ["framework", "laravel"],
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
"support": {
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2022-07-26T13:30:00+00:00"
+ "time": "2023-01-03T15:12:31+00:00"
},
{
"name": "laravel/serializable-closure",
- "version": "v1.2.0",
+ "version": "v1.2.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "09f0e9fb61829f628205b7c94906c28740ff9540"
+ "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/09f0e9fb61829f628205b7c94906c28740ff9540",
- "reference": "09f0e9fb61829f628205b7c94906c28740ff9540",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae",
+ "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae",
"shasum": ""
},
"require": {
"php": "^7.3|^8.0"
},
"require-dev": {
- "pestphp/pest": "^1.18",
- "phpstan/phpstan": "^0.12.98",
- "symfony/var-dumper": "^5.3"
+ "nesbot/carbon": "^2.61",
+ "pestphp/pest": "^1.21.3",
+ "phpstan/phpstan": "^1.8.2",
+ "symfony/var-dumper": "^5.4.11"
},
"type": "library",
"extra": {
@@ -1781,7 +1986,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Taylor Otwell",
@@ -1793,25 +2000,29 @@
}
],
"description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
- "keywords": ["closure", "laravel", "serializable"],
+ "keywords": [
+ "closure",
+ "laravel",
+ "serializable"
+ ],
"support": {
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2022-05-16T17:09:47+00:00"
+ "time": "2022-09-08T13:45:54+00:00"
},
{
"name": "laravel/socialite",
- "version": "v5.5.3",
+ "version": "v5.5.7",
"source": {
"type": "git",
"url": "https://github.com/laravel/socialite.git",
- "reference": "9dfc76b31ee041c45a7cae86f23339784abde46d"
+ "reference": "ee6201f539ac47c3a55132449f9d20ee928f0ee2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/socialite/zipball/9dfc76b31ee041c45a7cae86f23339784abde46d",
- "reference": "9dfc76b31ee041c45a7cae86f23339784abde46d",
+ "url": "https://api.github.com/repos/laravel/socialite/zipball/ee6201f539ac47c3a55132449f9d20ee928f0ee2",
+ "reference": "ee6201f539ac47c3a55132449f9d20ee928f0ee2",
"shasum": ""
},
"require": {
@@ -1848,7 +2059,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Taylor Otwell",
@@ -1857,25 +2070,28 @@
],
"description": "Laravel wrapper around OAuth 1 & OAuth 2 libraries.",
"homepage": "https://laravel.com",
- "keywords": ["laravel", "oauth"],
+ "keywords": [
+ "laravel",
+ "oauth"
+ ],
"support": {
"issues": "https://github.com/laravel/socialite/issues",
"source": "https://github.com/laravel/socialite"
},
- "time": "2022-07-18T13:51:19+00:00"
+ "time": "2022-12-28T12:35:23+00:00"
},
{
"name": "laravel/tinker",
- "version": "v2.7.2",
+ "version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
- "reference": "dff39b661e827dae6e092412f976658df82dbac5"
+ "reference": "5062061b4924af3392225dd482ca7b4d85d8b8ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/dff39b661e827dae6e092412f976658df82dbac5",
- "reference": "dff39b661e827dae6e092412f976658df82dbac5",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/5062061b4924af3392225dd482ca7b4d85d8b8ef",
+ "reference": "5062061b4924af3392225dd482ca7b4d85d8b8ef",
"shasum": ""
},
"require": {
@@ -1899,7 +2115,9 @@
"dev-master": "2.x-dev"
},
"laravel": {
- "providers": ["Laravel\\Tinker\\TinkerServiceProvider"]
+ "providers": [
+ "Laravel\\Tinker\\TinkerServiceProvider"
+ ]
}
},
"autoload": {
@@ -1908,7 +2126,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Taylor Otwell",
@@ -1916,12 +2136,17 @@
}
],
"description": "Powerful REPL for the Laravel framework.",
- "keywords": ["REPL", "Tinker", "laravel", "psysh"],
+ "keywords": [
+ "REPL",
+ "Tinker",
+ "laravel",
+ "psysh"
+ ],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.7.2"
+ "source": "https://github.com/laravel/tinker/tree/v2.7.3"
},
- "time": "2022-03-23T12:38:24+00:00"
+ "time": "2022-11-09T15:11:38+00:00"
},
{
"name": "laravel/ui",
@@ -1953,7 +2178,9 @@
"dev-master": "3.x-dev"
},
"laravel": {
- "providers": ["Laravel\\Ui\\UiServiceProvider"]
+ "providers": [
+ "Laravel\\Ui\\UiServiceProvider"
+ ]
}
},
"autoload": {
@@ -1963,7 +2190,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Taylor Otwell",
@@ -1971,7 +2200,10 @@
}
],
"description": "Laravel UI utilities and presets.",
- "keywords": ["laravel", "ui"],
+ "keywords": [
+ "laravel",
+ "ui"
+ ],
"support": {
"source": "https://github.com/laravel/ui/tree/v3.4.6"
},
@@ -1979,22 +2211,22 @@
},
{
"name": "laraveldaily/laravel-invoices",
- "version": "2.2.2",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/LaravelDaily/laravel-invoices.git",
- "reference": "7e972624193e6a03c3e7d8cdbd9c053e82f487ca"
+ "reference": "6dabfd95ef9819b80182ebea8267b64f77c89326"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/LaravelDaily/laravel-invoices/zipball/7e972624193e6a03c3e7d8cdbd9c053e82f487ca",
- "reference": "7e972624193e6a03c3e7d8cdbd9c053e82f487ca",
+ "url": "https://api.github.com/repos/LaravelDaily/laravel-invoices/zipball/6dabfd95ef9819b80182ebea8267b64f77c89326",
+ "reference": "6dabfd95ef9819b80182ebea8267b64f77c89326",
"shasum": ""
},
"require": {
- "barryvdh/laravel-dompdf": "^0.9.0",
- "illuminate/http": "^5.5|^6|^7|^8",
- "illuminate/support": "^5.5|^6|^7|^8",
+ "barryvdh/laravel-dompdf": "^v2.0",
+ "illuminate/http": "^5.5|^6|^7|^8|^9",
+ "illuminate/support": "^5.5|^6|^7|^8|^9",
"php": "^7.3|^8.0"
},
"require-dev": {
@@ -2018,7 +2250,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["GPL-3.0-only"],
+ "license": [
+ "GPL-3.0-only"
+ ],
"authors": [
{
"name": "David Lun",
@@ -2029,25 +2263,30 @@
],
"description": "Missing invoices for Laravel",
"homepage": "https://github.com/LaravelDaily/laravel-invoices",
- "keywords": ["invoice", "invoices", "laravel"],
+ "keywords": [
+ "invoice",
+ "invoices",
+ "laravel",
+ "pdf"
+ ],
"support": {
"issues": "https://github.com/LaravelDaily/laravel-invoices/issues",
- "source": "https://github.com/LaravelDaily/laravel-invoices/tree/2.2.2"
+ "source": "https://github.com/LaravelDaily/laravel-invoices/tree/3.0.2"
},
- "time": "2022-01-17T07:31:43+00:00"
+ "time": "2022-08-05T06:57:45+00:00"
},
{
"name": "league/commonmark",
- "version": "2.3.5",
+ "version": "2.3.8",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257"
+ "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257",
- "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c493585c130544c4e91d2e0e131e6d35cb0cbc47",
+ "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47",
"shasum": ""
},
"require": {
@@ -2067,7 +2306,7 @@
"erusev/parsedown": "^1.0",
"ext-json": "*",
"github/gfm": "0.29.0",
- "michelf/php-markdown": "^1.4",
+ "michelf/php-markdown": "^1.4 || ^2.0",
"nyholm/psr7": "^1.5",
"phpstan/phpstan": "^1.8.2",
"phpunit/phpunit": "^9.5.21",
@@ -2075,7 +2314,7 @@
"symfony/finder": "^5.3 | ^6.0",
"symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
"unleashedtech/php-coding-standard": "^3.1.1",
- "vimeo/psalm": "^4.24.0"
+ "vimeo/psalm": "^4.24.0 || ^5.0.0"
},
"suggest": {
"symfony/yaml": "v2.3+ required if using the Front Matter extension"
@@ -2092,7 +2331,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Colin O'Dell",
@@ -2138,20 +2379,20 @@
"type": "tidelift"
}
],
- "time": "2022-07-29T10:59:45+00:00"
+ "time": "2022-12-10T16:02:17+00:00"
},
{
"name": "league/config",
- "version": "v1.1.1",
+ "version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/config.git",
- "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e"
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
- "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
+ "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
"shasum": ""
},
"require": {
@@ -2160,7 +2401,7 @@
"php": "^7.4 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^0.12.90",
+ "phpstan/phpstan": "^1.8.2",
"phpunit/phpunit": "^9.5.5",
"scrutinizer/ocular": "^1.8.1",
"unleashedtech/php-coding-standard": "^3.1",
@@ -2178,7 +2419,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Colin O'Dell",
@@ -2218,99 +2461,168 @@
"type": "github"
}
],
- "time": "2021-08-14T12:15:32+00:00"
+ "time": "2022-12-11T20:36:23+00:00"
},
{
"name": "league/flysystem",
- "version": "1.1.9",
+ "version": "3.12.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "094defdb4a7001845300334e7c1ee2335925ef99"
+ "reference": "2aef65a47e44f2d6f9938f720f6dd697e7ba7b76"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99",
- "reference": "094defdb4a7001845300334e7c1ee2335925ef99",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/2aef65a47e44f2d6f9938f720f6dd697e7ba7b76",
+ "reference": "2aef65a47e44f2d6f9938f720f6dd697e7ba7b76",
"shasum": ""
},
"require": {
- "ext-fileinfo": "*",
- "league/mime-type-detection": "^1.3",
- "php": "^7.2.5 || ^8.0"
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
},
"conflict": {
- "league/flysystem-sftp": "<1.0.6"
+ "aws/aws-sdk-php": "3.209.31 || 3.210.0",
+ "guzzlehttp/guzzle": "<7.0",
+ "guzzlehttp/ringphp": "<1.1.1",
+ "phpseclib/phpseclib": "3.0.15",
+ "symfony/http-client": "<5.2"
},
"require-dev": {
- "phpspec/prophecy": "^1.11.1",
- "phpunit/phpunit": "^8.5.8"
- },
- "suggest": {
- "ext-ftp": "Allows you to use FTP server storage",
- "ext-openssl": "Allows you to use FTPS server storage",
- "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
- "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
- "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
- "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
- "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
- "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
- "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
- "league/flysystem-webdav": "Allows you to use WebDAV storage",
- "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
- "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
- "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
+ "async-aws/s3": "^1.5",
+ "async-aws/simple-s3": "^1.1",
+ "aws/aws-sdk-php": "^3.198.1",
+ "composer/semver": "^3.0",
+ "ext-fileinfo": "*",
+ "ext-ftp": "*",
+ "ext-zip": "*",
+ "friendsofphp/php-cs-fixer": "^3.5",
+ "google/cloud-storage": "^1.23",
+ "microsoft/azure-storage-blob": "^1.1",
+ "phpseclib/phpseclib": "^3.0.14",
+ "phpstan/phpstan": "^0.12.26",
+ "phpunit/phpunit": "^9.5.11",
+ "sabre/dav": "^4.3.1"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
"autoload": {
"psr-4": {
- "League\\Flysystem\\": "src/"
+ "League\\Flysystem\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Frank de Jonge",
- "email": "info@frenky.net"
+ "email": "info@frankdejonge.nl"
}
],
- "description": "Filesystem abstraction: Many filesystems, one API.",
+ "description": "File storage abstraction for PHP",
"keywords": [
- "Cloud Files",
"WebDAV",
- "abstraction",
"aws",
"cloud",
- "copy.com",
- "dropbox",
- "file systems",
+ "file",
"files",
"filesystem",
"filesystems",
"ftp",
- "rackspace",
- "remote",
"s3",
"sftp",
"storage"
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/1.1.9"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.12.0"
},
"funding": [
{
- "url": "https://offset.earth/frankdejonge",
- "type": "other"
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
}
],
- "time": "2021-12-09T09:40:50+00:00"
+ "time": "2022-12-20T20:21:10+00:00"
+ },
+ {
+ "name": "league/flysystem-aws-s3-v3",
+ "version": "3.10.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
+ "reference": "f593bf91f94f2adf4f71513d29f1dfa693f2f640"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/f593bf91f94f2adf4f71513d29f1dfa693f2f640",
+ "reference": "f593bf91f94f2adf4f71513d29f1dfa693f2f640",
+ "shasum": ""
+ },
+ "require": {
+ "aws/aws-sdk-php": "^3.132.4",
+ "league/flysystem": "^3.10.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "conflict": {
+ "guzzlehttp/guzzle": "<7.0",
+ "guzzlehttp/ringphp": "<1.1.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\AwsS3V3\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "AWS S3 filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "aws",
+ "file",
+ "files",
+ "filesystem",
+ "s3",
+ "storage"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
+ "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.10.3"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-26T18:15:09+00:00"
},
{
"name": "league/mime-type-detection",
@@ -2342,7 +2654,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Frank de Jonge",
@@ -2410,7 +2724,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Ben Corlett",
@@ -2440,6 +2756,75 @@
},
"time": "2022-04-15T14:02:14+00:00"
},
+ {
+ "name": "masterminds/html5",
+ "version": "2.7.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Masterminds/html5-php.git",
+ "reference": "897eb517a343a2281f11bc5556d6548db7d93947"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947",
+ "reference": "897eb517a343a2281f11bc5556d6548db7d93947",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Masterminds\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matt Butcher",
+ "email": "technosophos@gmail.com"
+ },
+ {
+ "name": "Matt Farina",
+ "email": "matt@mattfarina.com"
+ },
+ {
+ "name": "Asmir Mustafic",
+ "email": "goetas@gmail.com"
+ }
+ ],
+ "description": "An HTML5 parser and serializer.",
+ "homepage": "http://masterminds.github.io/html5-php",
+ "keywords": [
+ "HTML5",
+ "dom",
+ "html",
+ "parser",
+ "querypath",
+ "serializer",
+ "xml"
+ ],
+ "support": {
+ "issues": "https://github.com/Masterminds/html5-php/issues",
+ "source": "https://github.com/Masterminds/html5-php/tree/2.7.6"
+ },
+ "time": "2022-08-18T16:18:26+00:00"
+ },
{
"name": "monolog/monolog",
"version": "2.8.0",
@@ -2509,7 +2894,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Jordi Boggiano",
@@ -2519,7 +2906,11 @@
],
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"homepage": "https://github.com/Seldaek/monolog",
- "keywords": ["log", "logging", "psr-3"],
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
"source": "https://github.com/Seldaek/monolog/tree/2.8.0"
@@ -2537,17 +2928,78 @@
"time": "2022-07-24T11:55:47+00:00"
},
{
- "name": "nesbot/carbon",
- "version": "2.61.0",
+ "name": "mtdowling/jmespath.php",
+ "version": "2.6.1",
"source": {
"type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "bdf4f4fe3a3eac4de84dbec0738082a862c68ba6"
+ "url": "https://github.com/jmespath/jmespath.php.git",
+ "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bdf4f4fe3a3eac4de84dbec0738082a862c68ba6",
- "reference": "bdf4f4fe3a3eac4de84dbec0738082a862c68ba6",
+ "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
+ "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.4 || ^7.0 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.17"
+ },
+ "require-dev": {
+ "composer/xdebug-handler": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^7.5.15"
+ },
+ "bin": [
+ "bin/jp.php"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/JmesPath.php"
+ ],
+ "psr-4": {
+ "JmesPath\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ }
+ ],
+ "description": "Declaratively specify how to extract elements from a JSON document",
+ "keywords": [
+ "json",
+ "jsonpath"
+ ],
+ "support": {
+ "issues": "https://github.com/jmespath/jmespath.php/issues",
+ "source": "https://github.com/jmespath/jmespath.php/tree/2.6.1"
+ },
+ "time": "2021-06-14T00:11:39+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.64.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "f2e59963f4c4f4fdfb9fcfd752e8d2e2b79a4e2c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f2e59963f4c4f4fdfb9fcfd752e8d2e2b79a4e2c",
+ "reference": "f2e59963f4c4f4fdfb9fcfd752e8d2e2b79a4e2c",
"shasum": ""
},
"require": {
@@ -2558,7 +3010,7 @@
"symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
},
"require-dev": {
- "doctrine/dbal": "^2.0 || ^3.0",
+ "doctrine/dbal": "^2.0 || ^3.1.4",
"doctrine/orm": "^2.7",
"friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0",
@@ -2570,7 +3022,9 @@
"phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
"squizlabs/php_codesniffer": "^3.4"
},
- "bin": ["bin/carbon"],
+ "bin": [
+ "bin/carbon"
+ ],
"type": "library",
"extra": {
"branch-alias": {
@@ -2578,10 +3032,14 @@
"dev-master": "2.x-dev"
},
"laravel": {
- "providers": ["Carbon\\Laravel\\ServiceProvider"]
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
},
"phpstan": {
- "includes": ["extension.neon"]
+ "includes": [
+ "extension.neon"
+ ]
}
},
"autoload": {
@@ -2590,7 +3048,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Brian Nesbitt",
@@ -2604,7 +3064,11 @@
],
"description": "An API extension for DateTime that supports 281 different languages.",
"homepage": "https://carbon.nesbot.com",
- "keywords": ["date", "datetime", "time"],
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
"support": {
"docs": "https://carbon.nesbot.com/docs",
"issues": "https://github.com/briannesbitt/Carbon/issues",
@@ -2624,29 +3088,29 @@
"type": "tidelift"
}
],
- "time": "2022-08-06T12:41:24+00:00"
+ "time": "2023-01-01T23:17:36+00:00"
},
{
"name": "nette/schema",
- "version": "v1.2.2",
+ "version": "v1.2.3",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df"
+ "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df",
- "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df",
+ "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
+ "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
"shasum": ""
},
"require": {
"nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
- "php": ">=7.1 <8.2"
+ "php": ">=7.1 <8.3"
},
"require-dev": {
"nette/tester": "^2.3 || ^2.4",
- "phpstan/phpstan-nette": "^0.12",
+ "phpstan/phpstan-nette": "^1.0",
"tracy/tracy": "^2.7"
},
"type": "library",
@@ -2656,10 +3120,16 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"],
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
"authors": [
{
"name": "David Grudl",
@@ -2672,29 +3142,32 @@
],
"description": "📐 Nette Schema: validating data structures against a given Schema.",
"homepage": "https://nette.org",
- "keywords": ["config", "nette"],
+ "keywords": [
+ "config",
+ "nette"
+ ],
"support": {
"issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.2.2"
+ "source": "https://github.com/nette/schema/tree/v1.2.3"
},
- "time": "2021-10-15T11:40:02+00:00"
+ "time": "2022-10-13T01:24:26+00:00"
},
{
"name": "nette/utils",
- "version": "v3.2.7",
+ "version": "v3.2.8",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99"
+ "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99",
- "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99",
+ "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368",
+ "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368",
"shasum": ""
},
"require": {
- "php": ">=7.2 <8.2"
+ "php": ">=7.2 <8.3"
},
"conflict": {
"nette/di": "<3.0.6"
@@ -2720,10 +3193,16 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"],
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
"authors": [
{
"name": "David Grudl",
@@ -2754,22 +3233,22 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v3.2.7"
+ "source": "https://github.com/nette/utils/tree/v3.2.8"
},
- "time": "2022-01-24T11:29:14+00:00"
+ "time": "2022-09-12T23:36:20+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.14.0",
+ "version": "v4.15.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1"
+ "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1",
- "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
+ "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
"shasum": ""
},
"require": {
@@ -2780,7 +3259,9 @@
"ircmaxell/php-yacc": "^0.0.7",
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
},
- "bin": ["bin/php-parse"],
+ "bin": [
+ "bin/php-parse"
+ ],
"type": "library",
"extra": {
"branch-alias": {
@@ -2793,80 +3274,110 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Nikita Popov"
}
],
"description": "A PHP parser written in PHP",
- "keywords": ["parser", "php"],
+ "keywords": [
+ "parser",
+ "php"
+ ],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2"
},
- "time": "2022-05-31T20:59:12+00:00"
+ "time": "2022-11-12T15:38:23+00:00"
},
{
- "name": "opis/closure",
- "version": "3.6.3",
+ "name": "nunomaduro/termwind",
+ "version": "v1.15.0",
"source": {
"type": "git",
- "url": "https://github.com/opis/closure.git",
- "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad"
+ "url": "https://github.com/nunomaduro/termwind.git",
+ "reference": "594ab862396c16ead000de0c3c38f4a5cbe1938d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad",
- "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/594ab862396c16ead000de0c3c38f4a5cbe1938d",
+ "reference": "594ab862396c16ead000de0c3c38f4a5cbe1938d",
"shasum": ""
},
"require": {
- "php": "^5.4 || ^7.0 || ^8.0"
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "symfony/console": "^5.3.0|^6.0.0"
},
"require-dev": {
- "jeremeamia/superclosure": "^2.0",
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
+ "ergebnis/phpstan-rules": "^1.0.",
+ "illuminate/console": "^8.0|^9.0",
+ "illuminate/support": "^8.0|^9.0",
+ "laravel/pint": "^1.0.0",
+ "pestphp/pest": "^1.21.0",
+ "pestphp/pest-plugin-mock": "^1.0",
+ "phpstan/phpstan": "^1.4.6",
+ "phpstan/phpstan-strict-rules": "^1.1.0",
+ "symfony/var-dumper": "^5.2.7|^6.0.0",
+ "thecodingmachine/phpstan-strict-rules": "^1.0.0"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "3.6.x-dev"
+ "laravel": {
+ "providers": [
+ "Termwind\\Laravel\\TermwindServiceProvider"
+ ]
}
},
"autoload": {
- "files": ["functions.php"],
+ "files": [
+ "src/Functions.php"
+ ],
"psr-4": {
- "Opis\\Closure\\": "src/"
+ "Termwind\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
- "name": "Marius Sarca",
- "email": "marius.sarca@gmail.com"
- },
- {
- "name": "Sorin Sarca",
- "email": "sarca_sorin@hotmail.com"
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
}
],
- "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
- "homepage": "https://opis.io/closure",
+ "description": "Its like Tailwind CSS, but for the console.",
"keywords": [
- "anonymous functions",
- "closure",
- "function",
- "serializable",
- "serialization",
- "serialize"
+ "cli",
+ "console",
+ "css",
+ "package",
+ "php",
+ "style"
],
"support": {
- "issues": "https://github.com/opis/closure/issues",
- "source": "https://github.com/opis/closure/tree/3.6.3"
+ "issues": "https://github.com/nunomaduro/termwind/issues",
+ "source": "https://github.com/nunomaduro/termwind/tree/v1.15.0"
},
- "time": "2022-01-27T09:35:39+00:00"
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/xiCO2k",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-20T19:00:15+00:00"
},
{
"name": "paragonie/random_compat",
@@ -2894,7 +3405,9 @@
},
"type": "library",
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Paragon Initiative Enterprises",
@@ -2903,7 +3416,12 @@
}
],
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
- "keywords": ["csprng", "polyfill", "pseudorandom", "random"],
+ "keywords": [
+ "csprng",
+ "polyfill",
+ "pseudorandom",
+ "random"
+ ],
"support": {
"email": "info@paragonie.com",
"issues": "https://github.com/paragonie/random_compat/issues",
@@ -2961,6 +3479,7 @@
"support": {
"source": "https://github.com/paypal/Checkout-PHP-SDK/tree/1.0.2"
},
+ "abandoned": true,
"time": "2021-09-21T20:57:38+00:00"
},
{
@@ -2991,7 +3510,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PayPal",
@@ -3034,7 +3555,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["Apache-2.0"],
+ "license": [
+ "Apache-2.0"
+ ],
"authors": [
{
"name": "PayPal",
@@ -3043,7 +3566,12 @@
],
"description": "PayPal's PHP SDK for REST APIs",
"homepage": "http://paypal.github.io/PayPal-PHP-SDK/",
- "keywords": ["payments", "paypal", "rest", "sdk"],
+ "keywords": [
+ "payments",
+ "paypal",
+ "rest",
+ "sdk"
+ ],
"support": {
"issues": "https://github.com/paypal/PayPal-PHP-SDK/issues",
"source": "https://github.com/paypal/PayPal-PHP-SDK/tree/master"
@@ -3078,7 +3606,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["LGPL-3.0"],
+ "license": [
+ "LGPL-3.0"
+ ],
"authors": [
{
"name": "Fabien Ménager",
@@ -3095,21 +3625,21 @@
},
{
"name": "phenx/php-svg-lib",
- "version": "0.4.1",
+ "version": "0.5.0",
"source": {
"type": "git",
"url": "https://github.com/dompdf/php-svg-lib.git",
- "reference": "4498b5df7b08e8469f0f8279651ea5de9626ed02"
+ "reference": "76876c6cf3080bcb6f249d7d59705108166a6685"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/4498b5df7b08e8469f0f8279651ea5de9626ed02",
- "reference": "4498b5df7b08e8469f0f8279651ea5de9626ed02",
+ "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/76876c6cf3080bcb6f249d7d59705108166a6685",
+ "reference": "76876c6cf3080bcb6f249d7d59705108166a6685",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": "^7.1 || ^7.2 || ^7.3 || ^7.4 || ^8.0",
+ "php": "^7.1 || ^8.0",
"sabberworm/php-css-parser": "^8.4"
},
"require-dev": {
@@ -3122,7 +3652,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["LGPL-3.0"],
+ "license": [
+ "LGPL-3.0"
+ ],
"authors": [
{
"name": "Fabien Ménager",
@@ -3133,9 +3665,9 @@
"homepage": "https://github.com/PhenX/php-svg-lib",
"support": {
"issues": "https://github.com/dompdf/php-svg-lib/issues",
- "source": "https://github.com/dompdf/php-svg-lib/tree/0.4.1"
+ "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.0"
},
- "time": "2022-03-07T12:52:04+00:00"
+ "time": "2022-09-06T12:16:56+00:00"
},
{
"name": "phpoption/phpoption",
@@ -3174,7 +3706,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["Apache-2.0"],
+ "license": [
+ "Apache-2.0"
+ ],
"authors": [
{
"name": "Johannes M. Schmitt",
@@ -3188,7 +3722,12 @@
}
],
"description": "Option Type for PHP",
- "keywords": ["language", "option", "php", "type"],
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
"support": {
"issues": "https://github.com/schmittjoh/php-option/issues",
"source": "https://github.com/schmittjoh/php-option/tree/1.9.0"
@@ -3234,7 +3773,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PHP-FIG",
@@ -3242,7 +3783,11 @@
}
],
"description": "Common interface for caching libraries",
- "keywords": ["cache", "psr", "psr-6"],
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
"support": {
"source": "https://github.com/php-fig/cache/tree/3.0.0"
},
@@ -3250,29 +3795,36 @@
},
{
"name": "psr/container",
- "version": "1.1.2",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"shasum": ""
},
"require": {
"php": ">=7.4.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PHP-FIG",
@@ -3290,9 +3842,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.2"
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
},
- "time": "2021-11-05T16:50:12+00:00"
+ "time": "2021-11-05T16:47:00+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -3323,7 +3875,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PHP-FIG",
@@ -3331,7 +3885,11 @@
}
],
"description": "Standard interfaces for event handling.",
- "keywords": ["events", "psr", "psr-14"],
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
"support": {
"issues": "https://github.com/php-fig/event-dispatcher/issues",
"source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
@@ -3368,7 +3926,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PHP-FIG",
@@ -3377,7 +3937,12 @@
],
"description": "Common interface for HTTP clients",
"homepage": "https://github.com/php-fig/http-client",
- "keywords": ["http", "http-client", "psr", "psr-18"],
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
"support": {
"source": "https://github.com/php-fig/http-client/tree/master"
},
@@ -3413,7 +3978,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PHP-FIG",
@@ -3465,7 +4032,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PHP-FIG",
@@ -3516,7 +4085,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PHP-FIG",
@@ -3525,7 +4096,11 @@
],
"description": "Common interface for logging libraries",
"homepage": "https://github.com/php-fig/log",
- "keywords": ["log", "psr", "psr-3"],
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
"support": {
"source": "https://github.com/php-fig/log/tree/1.1.4"
},
@@ -3533,25 +4108,25 @@
},
{
"name": "psr/simple-cache",
- "version": "1.0.1",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/simple-cache.git",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "3.0.x-dev"
}
},
"autoload": {
@@ -3560,32 +4135,40 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interfaces for simple caching",
- "keywords": ["cache", "caching", "psr", "psr-16", "simple-cache"],
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
"support": {
- "source": "https://github.com/php-fig/simple-cache/tree/master"
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
},
- "time": "2017-10-23T01:57:42+00:00"
+ "time": "2021-10-29T13:26:27+00:00"
},
{
"name": "psy/psysh",
- "version": "v0.11.8",
+ "version": "v0.11.10",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "f455acf3645262ae389b10e9beba0c358aa6994e"
+ "reference": "e9eadffbed9c9deb5426fd107faae0452bf20a36"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/f455acf3645262ae389b10e9beba0c358aa6994e",
- "reference": "f455acf3645262ae389b10e9beba0c358aa6994e",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e9eadffbed9c9deb5426fd107faae0452bf20a36",
+ "reference": "e9eadffbed9c9deb5426fd107faae0452bf20a36",
"shasum": ""
},
"require": {
@@ -3608,7 +4191,9 @@
"ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
"ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
},
- "bin": ["bin/psysh"],
+ "bin": [
+ "bin/psysh"
+ ],
"type": "library",
"extra": {
"branch-alias": {
@@ -3616,13 +4201,17 @@
}
},
"autoload": {
- "files": ["src/functions.php"],
+ "files": [
+ "src/functions.php"
+ ],
"psr-4": {
"Psy\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Justin Hileman",
@@ -3632,12 +4221,87 @@
],
"description": "An interactive shell for modern PHP.",
"homepage": "http://psysh.org",
- "keywords": ["REPL", "console", "interactive", "shell"],
+ "keywords": [
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
+ ],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.11.8"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.11.10"
},
- "time": "2022-07-28T14:25:11+00:00"
+ "time": "2022-12-23T17:47:18+00:00"
+ },
+ {
+ "name": "qirolab/laravel-themer",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/qirolab/laravel-themer.git",
+ "reference": "9c4e17fe7334c921bf5c57395d926154cc25a1e8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/qirolab/laravel-themer/zipball/9c4e17fe7334c921bf5c57395d926154cc25a1e8",
+ "reference": "9c4e17fe7334c921bf5c57395d926154cc25a1e8",
+ "shasum": ""
+ },
+ "require": {
+ "facade/ignition-contracts": "^1.0",
+ "illuminate/support": "^9.19",
+ "php": ">=7.1.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^7.0",
+ "phpunit/phpunit": "^8.3|^9.0",
+ "vimeo/psalm": "^4.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Qirolab\\Theme\\ThemeServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Qirolab\\Theme\\": "src",
+ "Qirolab\\Theme\\Database\\Factories\\": "database/factories"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Harish Kumar",
+ "email": "harish@qirolab.com",
+ "homepage": "https://qirolab.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "A Laravel theme manager, that will help you organize and maintain your themes inside Laravel projects.",
+ "homepage": "https://qirolab.com",
+ "keywords": [
+ "laravel",
+ "laravel-theme",
+ "qirolab",
+ "theme"
+ ],
+ "support": {
+ "issues": "https://github.com/qirolab/laravel-themer/issues",
+ "source": "https://github.com/qirolab/laravel-themer/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://www.buymeacoffee.com/qirolab",
+ "type": "other"
+ }
+ ],
+ "time": "2022-09-03T21:30:32+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -3662,10 +4326,14 @@
},
"type": "library",
"autoload": {
- "files": ["src/getallheaders.php"]
+ "files": [
+ "src/getallheaders.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Ralph Khattar",
@@ -3681,49 +4349,61 @@
},
{
"name": "ramsey/collection",
- "version": "1.2.2",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/ramsey/collection.git",
- "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a"
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a",
- "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
"shasum": ""
},
"require": {
- "php": "^7.3 || ^8",
- "symfony/polyfill-php81": "^1.23"
+ "php": "^8.1"
},
"require-dev": {
- "captainhook/captainhook": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "ergebnis/composer-normalize": "^2.6",
- "fakerphp/faker": "^1.5",
- "hamcrest/hamcrest-php": "^2",
- "jangregor/phpstan-prophecy": "^0.8",
- "mockery/mockery": "^1.3",
+ "captainhook/plugin-composer": "^5.3",
+ "ergebnis/composer-normalize": "^2.28.3",
+ "fakerphp/faker": "^1.21",
+ "hamcrest/hamcrest-php": "^2.0",
+ "jangregor/phpstan-prophecy": "^1.0",
+ "mockery/mockery": "^1.5",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpcsstandards/phpcsutils": "^1.0.0-rc1",
"phpspec/prophecy-phpunit": "^2.0",
- "phpstan/extension-installer": "^1",
- "phpstan/phpstan": "^0.12.32",
- "phpstan/phpstan-mockery": "^0.12.5",
- "phpstan/phpstan-phpunit": "^0.12.11",
- "phpunit/phpunit": "^8.5 || ^9",
- "psy/psysh": "^0.10.4",
- "slevomat/coding-standard": "^6.3",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.4"
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "ramsey/coding-standard": "^2.0.3",
+ "ramsey/conventional-commits": "^1.3",
+ "vimeo/psalm": "^5.4"
},
"type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ },
+ "ramsey/conventional-commits": {
+ "configFile": "conventional-commits.json"
+ }
+ },
"autoload": {
"psr-4": {
"Ramsey\\Collection\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Ben Ramsey",
@@ -3732,10 +4412,17 @@
}
],
"description": "A PHP library for representing and manipulating collections.",
- "keywords": ["array", "collection", "hash", "map", "queue", "set"],
+ "keywords": [
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
+ ],
"support": {
"issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/1.2.2"
+ "source": "https://github.com/ramsey/collection/tree/2.0.0"
},
"funding": [
{
@@ -3747,28 +4434,27 @@
"type": "tidelift"
}
],
- "time": "2021-10-10T03:01:02+00:00"
+ "time": "2022-12-31T21:50:55+00:00"
},
{
"name": "ramsey/uuid",
- "version": "4.4.0",
+ "version": "4.7.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "373f7bacfcf3de038778ff27dcce5672ddbf4c8a"
+ "reference": "a1acf96007170234a8399586a6e2ab8feba109d1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/373f7bacfcf3de038778ff27dcce5672ddbf4c8a",
- "reference": "373f7bacfcf3de038778ff27dcce5672ddbf4c8a",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/a1acf96007170234a8399586a6e2ab8feba109d1",
+ "reference": "a1acf96007170234a8399586a6e2ab8feba109d1",
"shasum": ""
},
"require": {
- "brick/math": "^0.8 || ^0.9 || ^0.10",
- "ext-ctype": "*",
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10",
"ext-json": "*",
"php": "^8.0",
- "ramsey/collection": "^1.0"
+ "ramsey/collection": "^1.2 || ^2.0"
},
"replace": {
"rhumsaa/uuid": "self.version"
@@ -3785,18 +4471,18 @@
"php-mock/php-mock-mockery": "^1.3",
"php-parallel-lint/php-parallel-lint": "^1.1",
"phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-mockery": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.1",
"phpunit/phpunit": "^8.5 || ^9",
- "slevomat/coding-standard": "^7.0",
+ "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.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
"ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
"ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
@@ -3809,18 +4495,26 @@
}
},
"autoload": {
- "files": ["src/functions.php"],
+ "files": [
+ "src/functions.php"
+ ],
"psr-4": {
"Ramsey\\Uuid\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
- "keywords": ["guid", "identifier", "uuid"],
+ "keywords": [
+ "guid",
+ "identifier",
+ "uuid"
+ ],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.4.0"
+ "source": "https://github.com/ramsey/uuid/tree/4.7.1"
},
"funding": [
{
@@ -3832,7 +4526,7 @@
"type": "tidelift"
}
],
- "time": "2022-08-05T17:58:37+00:00"
+ "time": "2022-12-31T22:20:34+00:00"
},
{
"name": "sabberworm/php-css-parser",
@@ -3866,7 +4560,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Raphael Schweikert"
@@ -3874,7 +4570,11 @@
],
"description": "Parser for CSS Files written in PHP",
"homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser",
- "keywords": ["css", "parser", "stylesheet"],
+ "keywords": [
+ "css",
+ "parser",
+ "stylesheet"
+ ],
"support": {
"issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues",
"source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.4.0"
@@ -3907,7 +4607,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Christopher Eklund",
@@ -3922,22 +4624,22 @@
},
{
"name": "socialiteproviders/manager",
- "version": "v4.1.0",
+ "version": "v4.2.0",
"source": {
"type": "git",
"url": "https://github.com/SocialiteProviders/Manager.git",
- "reference": "4e63afbd26dc45ff263591de2a0970436a6a0bf9"
+ "reference": "738276dfbc2b68a9145db7b3df1588d53db528a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/SocialiteProviders/Manager/zipball/4e63afbd26dc45ff263591de2a0970436a6a0bf9",
- "reference": "4e63afbd26dc45ff263591de2a0970436a6a0bf9",
+ "url": "https://api.github.com/repos/SocialiteProviders/Manager/zipball/738276dfbc2b68a9145db7b3df1588d53db528a1",
+ "reference": "738276dfbc2b68a9145db7b3df1588d53db528a1",
"shasum": ""
},
"require": {
"illuminate/support": "^6.0 || ^7.0 || ^8.0 || ^9.0",
- "laravel/socialite": "~4.0 || ~5.0",
- "php": "^7.2 || ^8.0"
+ "laravel/socialite": "~5.0",
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
"mockery/mockery": "^1.2",
@@ -3957,7 +4659,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Andy Wendt",
@@ -3990,32 +4694,33 @@
"issues": "https://github.com/socialiteproviders/manager/issues",
"source": "https://github.com/socialiteproviders/manager"
},
- "time": "2022-01-23T22:40:23+00:00"
+ "time": "2022-09-02T10:20:10+00:00"
},
{
"name": "spatie/laravel-activitylog",
- "version": "3.17.0",
+ "version": "4.7.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-activitylog.git",
- "reference": "bdc44862aaca39ecbd824133b80dbd7c8017ed7f"
+ "reference": "eee61436e2984119fd71fc338a45ec7d68e3b548"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-activitylog/zipball/bdc44862aaca39ecbd824133b80dbd7c8017ed7f",
- "reference": "bdc44862aaca39ecbd824133b80dbd7c8017ed7f",
+ "url": "https://api.github.com/repos/spatie/laravel-activitylog/zipball/eee61436e2984119fd71fc338a45ec7d68e3b548",
+ "reference": "eee61436e2984119fd71fc338a45ec7d68e3b548",
"shasum": ""
},
"require": {
- "illuminate/config": "^6.0 || ^7.0 || ^8.0",
- "illuminate/database": "^6.0 || ^7.0 || ^8.0",
- "illuminate/support": "^6.0 || ^7.0 || ^8.0",
- "php": "^7.3 || ^8.0"
+ "illuminate/config": "^8.0 || ^9.0",
+ "illuminate/database": "^8.69 || ^9.27",
+ "illuminate/support": "^8.0 || ^9.0",
+ "php": "^8.0",
+ "spatie/laravel-package-tools": "^1.6.3"
},
"require-dev": {
"ext-json": "*",
- "orchestra/testbench": "^4.0 || ^5.0 || ^6.0",
- "phpunit/phpunit": "^9.3"
+ "orchestra/testbench": "^6.23 || ^7.0",
+ "pestphp/pest": "^1.20"
},
"type": "library",
"extra": {
@@ -4026,13 +4731,17 @@
}
},
"autoload": {
- "files": ["src/helpers.php"],
+ "files": [
+ "src/helpers.php"
+ ],
"psr-4": {
"Spatie\\Activitylog\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Freek Van der Herten",
@@ -4055,10 +4764,16 @@
],
"description": "A very simple activity logger to monitor the users of your website or application",
"homepage": "https://github.com/spatie/activitylog",
- "keywords": ["activity", "laravel", "log", "spatie", "user"],
+ "keywords": [
+ "activity",
+ "laravel",
+ "log",
+ "spatie",
+ "user"
+ ],
"support": {
"issues": "https://github.com/spatie/laravel-activitylog/issues",
- "source": "https://github.com/spatie/laravel-activitylog/tree/3.17.0"
+ "source": "https://github.com/spatie/laravel-activitylog/tree/4.7.2"
},
"funding": [
{
@@ -4070,34 +4785,95 @@
"type": "github"
}
],
- "time": "2021-03-02T16:49:06+00:00"
+ "time": "2022-11-14T12:16:46+00:00"
},
{
- "name": "spatie/laravel-query-builder",
- "version": "3.6.2",
+ "name": "spatie/laravel-package-tools",
+ "version": "1.13.8",
"source": {
"type": "git",
- "url": "https://github.com/spatie/laravel-query-builder.git",
- "reference": "3768381e9f2f80b01f0088eca49f061c269e0e8b"
+ "url": "https://github.com/spatie/laravel-package-tools.git",
+ "reference": "781a2f637237e69c277eb401063acf15e2b4156b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/3768381e9f2f80b01f0088eca49f061c269e0e8b",
- "reference": "3768381e9f2f80b01f0088eca49f061c269e0e8b",
+ "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/781a2f637237e69c277eb401063acf15e2b4156b",
+ "reference": "781a2f637237e69c277eb401063acf15e2b4156b",
"shasum": ""
},
"require": {
- "illuminate/database": "^6.20.13|^7.30.4|^8.22.2",
- "illuminate/http": "^6.20.13|^7.30.4|^8.22.2",
- "illuminate/support": "^6.20.13|^7.30.4|^8.22.2",
- "php": "^7.3|^8.0"
+ "illuminate/contracts": "^9.28",
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "orchestra/testbench": "^7.7",
+ "pestphp/pest": "^1.22",
+ "phpunit/phpunit": "^9.5.24",
+ "spatie/pest-plugin-test-time": "^1.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\LaravelPackageTools\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Tools for creating Laravel packages",
+ "homepage": "https://github.com/spatie/laravel-package-tools",
+ "keywords": [
+ "laravel-package-tools",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/laravel-package-tools/issues",
+ "source": "https://github.com/spatie/laravel-package-tools/tree/1.13.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-20T14:09:05+00:00"
+ },
+ {
+ "name": "spatie/laravel-query-builder",
+ "version": "5.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-query-builder.git",
+ "reference": "14a6802cd513cfd2abf68044cca5fd7391eb543d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-query-builder/zipball/14a6802cd513cfd2abf68044cca5fd7391eb543d",
+ "reference": "14a6802cd513cfd2abf68044cca5fd7391eb543d",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/database": "^9.0",
+ "illuminate/http": "^9.0",
+ "illuminate/support": "^9.0",
+ "php": "^8.0",
+ "spatie/laravel-package-tools": "^1.11"
},
"require-dev": {
"ext-json": "*",
- "laravel/legacy-factories": "^1.0.4",
"mockery/mockery": "^1.4",
- "orchestra/testbench": "^4.9|^5.8|^6.3",
- "phpunit/phpunit": "^9.0"
+ "orchestra/testbench": "^7.0",
+ "pestphp/pest": "^1.20",
+ "spatie/laravel-ray": "^1.28"
},
"type": "library",
"extra": {
@@ -4109,11 +4885,14 @@
},
"autoload": {
"psr-4": {
- "Spatie\\QueryBuilder\\": "src"
+ "Spatie\\QueryBuilder\\": "src",
+ "Spatie\\QueryBuilder\\Database\\Factories\\": "database/factories"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Alex Vanderbist",
@@ -4124,7 +4903,10 @@
],
"description": "Easily build Eloquent queries from API requests",
"homepage": "https://github.com/spatie/laravel-query-builder",
- "keywords": ["laravel-query-builder", "spatie"],
+ "keywords": [
+ "laravel-query-builder",
+ "spatie"
+ ],
"support": {
"issues": "https://github.com/spatie/laravel-query-builder/issues",
"source": "https://github.com/spatie/laravel-query-builder"
@@ -4135,7 +4917,7 @@
"type": "custom"
}
],
- "time": "2022-01-09T15:39:13+00:00"
+ "time": "2022-12-02T21:28:40+00:00"
},
{
"name": "spatie/laravel-validation-rules",
@@ -4180,7 +4962,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Freek Van der Herten",
@@ -4191,7 +4975,10 @@
],
"description": "A set of useful Laravel validation rules",
"homepage": "https://github.com/spatie/laravel-validation-rules",
- "keywords": ["laravel-validation-rules", "spatie"],
+ "keywords": [
+ "laravel-validation-rules",
+ "spatie"
+ ],
"support": {
"issues": "https://github.com/spatie/laravel-validation-rules/issues",
"source": "https://github.com/spatie/laravel-validation-rules/tree/3.2.1"
@@ -4242,7 +5029,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Stripe and contributors",
@@ -4251,123 +5040,56 @@
],
"description": "Stripe PHP Library",
"homepage": "https://stripe.com/",
- "keywords": ["api", "payment processing", "stripe"],
+ "keywords": [
+ "api",
+ "payment processing",
+ "stripe"
+ ],
"support": {
"issues": "https://github.com/stripe/stripe-php/issues",
"source": "https://github.com/stripe/stripe-php/tree/v7.128.0"
},
"time": "2022-05-05T17:18:02+00:00"
},
- {
- "name": "swiftmailer/swiftmailer",
- "version": "v6.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
- "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
- "shasum": ""
- },
- "require": {
- "egulias/email-validator": "^2.0|^3.1",
- "php": ">=7.0.0",
- "symfony/polyfill-iconv": "^1.0",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.0",
- "symfony/phpunit-bridge": "^4.4|^5.4"
- },
- "suggest": {
- "ext-intl": "Needed to support internationalized email addresses"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.2-dev"
- }
- },
- "autoload": {
- "files": ["lib/swift_required.php"]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Chris Corbyn"
- },
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "Swiftmailer, free feature-rich PHP mailer",
- "homepage": "https://swiftmailer.symfony.com",
- "keywords": ["email", "mail", "mailer"],
- "support": {
- "issues": "https://github.com/swiftmailer/swiftmailer/issues",
- "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
- },
- "funding": [
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
- "type": "tidelift"
- }
- ],
- "abandoned": "symfony/mailer",
- "time": "2021-10-18T15:26:12+00:00"
- },
{
"name": "symfony/console",
- "version": "v5.4.11",
+ "version": "v6.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "535846c7ee6bc4dd027ca0d93220601456734b10"
+ "reference": "0f579613e771dba2dbb8211c382342a641f5da06"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/535846c7ee6bc4dd027ca0d93220601456734b10",
- "reference": "535846c7ee6bc4dd027ca0d93220601456734b10",
+ "url": "https://api.github.com/repos/symfony/console/zipball/0f579613e771dba2dbb8211c382342a641f5da06",
+ "reference": "0f579613e771dba2dbb8211c382342a641f5da06",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"symfony/deprecation-contracts": "^2.1|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
"symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.1|^6.0"
+ "symfony/string": "^5.4|^6.0"
},
"conflict": {
- "psr/log": ">=3",
- "symfony/dependency-injection": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/event-dispatcher": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/process": "<4.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
- "psr/log": "^1|^2",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/lock": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/lock": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"suggest": {
"psr/log": "For using the console logger",
@@ -4380,10 +5102,14 @@
"psr-4": {
"Symfony\\Component\\Console\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -4396,9 +5122,14 @@
],
"description": "Eases the creation of beautiful and testable command line interfaces",
"homepage": "https://symfony.com",
- "keywords": ["cli", "command line", "console", "terminal"],
+ "keywords": [
+ "cli",
+ "command line",
+ "console",
+ "terminal"
+ ],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.4.11"
+ "source": "https://github.com/symfony/console/tree/v6.2.3"
},
"funding": [
{
@@ -4414,34 +5145,38 @@
"type": "tidelift"
}
],
- "time": "2022-07-22T10:42:43+00:00"
+ "time": "2022-12-28T14:26:22+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v6.0.11",
+ "version": "v6.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "ab2746acddc4f03a7234c8441822ac5d5c63efe9"
+ "reference": "ab1df4ba3ded7b724766ba3a6e0eca0418e74f80"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab2746acddc4f03a7234c8441822ac5d5c63efe9",
- "reference": "ab2746acddc4f03a7234c8441822ac5d5c63efe9",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab1df4ba3ded7b724766ba3a6e0eca0418e74f80",
+ "reference": "ab1df4ba3ded7b724766ba3a6e0eca0418e74f80",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\CssSelector\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -4459,7 +5194,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.0.11"
+ "source": "https://github.com/symfony/css-selector/tree/v6.2.3"
},
"funding": [
{
@@ -4475,29 +5210,29 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T17:10:44+00:00"
+ "time": "2022-12-28T14:26:22+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.0.2",
+ "version": "v3.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
+ "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
- "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3",
+ "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.3-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4505,10 +5240,14 @@
}
},
"autoload": {
- "files": ["function.php"]
+ "files": [
+ "function.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -4522,7 +5261,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0"
},
"funding": [
{
@@ -4538,42 +5277,48 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:55:41+00:00"
+ "time": "2022-11-25T10:21:52+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v5.4.11",
+ "version": "v6.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8"
+ "reference": "0926124c95d220499e2baf0fb465772af3a4eddb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/f75d17cb4769eb38cd5fccbda95cd80a054d35c8",
- "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/0926124c95d220499e2baf0fb465772af3a4eddb",
+ "reference": "0926124c95d220499e2baf0fb465772af3a4eddb",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
+ "symfony/var-dumper": "^5.4|^6.0"
},
"require-dev": {
"symfony/deprecation-contracts": "^2.1|^3",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/serializer": "^4.4|^5.0|^6.0"
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/serializer": "^5.4|^6.0"
},
- "bin": ["Resources/bin/patch-type-declarations"],
+ "bin": [
+ "Resources/bin/patch-type-declarations"
+ ],
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\ErrorHandler\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -4587,7 +5332,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/v5.4.11"
+ "source": "https://github.com/symfony/error-handler/tree/v6.2.3"
},
"funding": [
{
@@ -4603,24 +5348,24 @@
"type": "tidelift"
}
],
- "time": "2022-07-29T07:37:50+00:00"
+ "time": "2022-12-19T14:33:49+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.0.9",
+ "version": "v6.2.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "5c85b58422865d42c6eb46f7693339056db098a8"
+ "reference": "3ffeb31139b49bf6ef0bc09d1db95eac053388d1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5c85b58422865d42c6eb46f7693339056db098a8",
- "reference": "5c85b58422865d42c6eb46f7693339056db098a8",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3ffeb31139b49bf6ef0bc09d1db95eac053388d1",
+ "reference": "3ffeb31139b49bf6ef0bc09d1db95eac053388d1",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"symfony/event-dispatcher-contracts": "^2|^3"
},
"conflict": {
@@ -4649,10 +5394,14 @@
"psr-4": {
"Symfony\\Component\\EventDispatcher\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -4666,7 +5415,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/v6.0.9"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.2"
},
"funding": [
{
@@ -4682,24 +5431,24 @@
"type": "tidelift"
}
],
- "time": "2022-05-05T16:45:52+00:00"
+ "time": "2022-12-14T16:11:27+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.0.2",
+ "version": "v3.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
+ "reference": "0782b0b52a737a05b4383d0df35a474303cabdae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
- "reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0782b0b52a737a05b4383d0df35a474303cabdae",
+ "reference": "0782b0b52a737a05b4383d0df35a474303cabdae",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"psr/event-dispatcher": "^1"
},
"suggest": {
@@ -4708,7 +5457,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.3-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4721,7 +5470,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -4743,7 +5494,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.0"
},
"funding": [
{
@@ -4759,36 +5510,41 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:55:41+00:00"
+ "time": "2022-11-25T10:21:52+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.4.11",
+ "version": "v6.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c"
+ "reference": "81eefbddfde282ee33b437ba5e13d7753211ae8e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c",
- "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/81eefbddfde282ee33b437ba5e13d7753211ae8e",
+ "reference": "81eefbddfde282ee33b437ba5e13d7753211ae8e",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Finder\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -4802,7 +5558,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.11"
+ "source": "https://github.com/symfony/finder/tree/v6.2.3"
},
"funding": [
{
@@ -4818,33 +5574,204 @@
"type": "tidelift"
}
],
- "time": "2022-07-29T07:37:50+00:00"
+ "time": "2022-12-22T17:55:15+00:00"
},
{
- "name": "symfony/http-foundation",
- "version": "v5.4.11",
+ "name": "symfony/http-client",
+ "version": "v6.2.2",
"source": {
"type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- "reference": "0a5868e0999e9d47859ba3d918548ff6943e6389"
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "7054ad466f836309aef511789b9c697bc986d8ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0a5868e0999e9d47859ba3d918548ff6943e6389",
- "reference": "0a5868e0999e9d47859ba3d918548ff6943e6389",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/7054ad466f836309aef511789b9c697bc986d8ce",
+ "reference": "7054ad466f836309aef511789b9c697bc986d8ce",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/http-client-contracts": "^3",
+ "symfony/service-contracts": "^1.0|^2|^3"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "3.0"
+ },
+ "require-dev": {
+ "amphp/amp": "^2.5",
+ "amphp/http-client": "^4.2.1",
+ "amphp/http-tunnel": "^1.0",
+ "amphp/socket": "^1.1",
+ "guzzlehttp/promises": "^1.4",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "psr/http-client": "^1.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/stopwatch": "^5.4|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-client/tree/v6.2.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-14T16:11:27+00:00"
+ },
+ {
+ "name": "symfony/http-client-contracts",
+ "version": "v3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "fd038f08c623ab5d22b26e9ba35afe8c79071800"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/fd038f08c623ab5d22b26e9ba35afe8c79071800",
+ "reference": "fd038f08c623ab5d22b26e9ba35afe8c79071800",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "suggest": {
+ "symfony/http-client-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.1-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-22T07:30:54+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v6.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "ddf4dd35de1623e7c02013523e6c2137b67b636f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ddf4dd35de1623e7c02013523e6c2137b67b636f",
+ "reference": "ddf4dd35de1623e7c02013523e6c2137b67b636f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-mbstring": "~1.1"
+ },
+ "conflict": {
+ "symfony/cache": "<6.2"
},
"require-dev": {
"predis/predis": "~1.0",
- "symfony/cache": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/mime": "^4.4|^5.0|^6.0"
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
+ "symfony/mime": "^5.4|^6.0",
+ "symfony/rate-limiter": "^5.2|^6.0"
},
"suggest": {
"symfony/mime": "To use the file extension guesser"
@@ -4854,10 +5781,14 @@
"psr-4": {
"Symfony\\Component\\HttpFoundation\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -4871,7 +5802,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.4.11"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.2.2"
},
"funding": [
{
@@ -4887,68 +5818,67 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T13:00:38+00:00"
+ "time": "2022-12-14T16:11:27+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v5.4.11",
+ "version": "v6.2.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "4fd590a2ef3f62560dbbf6cea511995dd77321ee"
+ "reference": "74f2e638ec3fa0315443bd85fab7fc8066b77f83"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4fd590a2ef3f62560dbbf6cea511995dd77321ee",
- "reference": "4fd590a2ef3f62560dbbf6cea511995dd77321ee",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/74f2e638ec3fa0315443bd85fab7fc8066b77f83",
+ "reference": "74f2e638ec3fa0315443bd85fab7fc8066b77f83",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2",
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.1|^3",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^5.0|^6.0",
- "symfony/http-foundation": "^5.3.7|^6.0",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/error-handler": "^6.1",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"symfony/browser-kit": "<5.4",
- "symfony/cache": "<5.0",
- "symfony/config": "<5.0",
- "symfony/console": "<4.4",
- "symfony/dependency-injection": "<5.3",
- "symfony/doctrine-bridge": "<5.0",
- "symfony/form": "<5.0",
- "symfony/http-client": "<5.0",
- "symfony/mailer": "<5.0",
- "symfony/messenger": "<5.0",
- "symfony/translation": "<5.0",
- "symfony/twig-bridge": "<5.0",
- "symfony/validator": "<5.0",
+ "symfony/cache": "<5.4",
+ "symfony/config": "<6.1",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<6.2",
+ "symfony/doctrine-bridge": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<5.4",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4",
+ "symfony/translation": "<5.4",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/validator": "<5.4",
"twig/twig": "<2.13"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
"symfony/browser-kit": "^5.4|^6.0",
- "symfony/config": "^5.0|^6.0",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/css-selector": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^5.3|^6.0",
- "symfony/dom-crawler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
+ "symfony/config": "^6.1",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/dependency-injection": "^6.2",
+ "symfony/dom-crawler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
"symfony/http-client-contracts": "^1.1|^2|^3",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/routing": "^4.4|^5.0|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0",
- "symfony/translation": "^4.4|^5.0|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/translation": "^5.4|^6.0",
"symfony/translation-contracts": "^1.1|^2|^3",
+ "symfony/uid": "^5.4|^6.0",
"twig/twig": "^2.13|^3.0.4"
},
"suggest": {
@@ -4962,10 +5892,14 @@
"psr-4": {
"Symfony\\Component\\HttpKernel\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -4979,7 +5913,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/v5.4.11"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.2.4"
},
"funding": [
{
@@ -4995,41 +5929,42 @@
"type": "tidelift"
}
],
- "time": "2022-07-29T12:30:22+00:00"
+ "time": "2022-12-29T19:05:08+00:00"
},
{
"name": "symfony/intl",
- "version": "v5.4.11",
+ "version": "v6.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/intl.git",
- "reference": "d305c0c1d31b30b3876e041804c35e49e5f8a96e"
+ "reference": "04726ae6cec43582f7dfbfc67a313d1ecdd81c0f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/intl/zipball/d305c0c1d31b30b3876e041804c35e49e5f8a96e",
- "reference": "d305c0c1d31b30b3876e041804c35e49e5f8a96e",
+ "url": "https://api.github.com/repos/symfony/intl/zipball/04726ae6cec43582f7dfbfc67a313d1ecdd81c0f",
+ "reference": "04726ae6cec43582f7dfbfc67a313d1ecdd81c0f",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"require-dev": {
- "symfony/filesystem": "^4.4|^5.0|^6.0"
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0"
},
"type": "library",
"autoload": {
- "files": ["Resources/functions.php"],
"psr-4": {
"Symfony\\Component\\Intl\\": ""
},
- "classmap": ["Resources/stubs"],
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Bernhard Schussek",
@@ -5059,7 +5994,7 @@
"localization"
],
"support": {
- "source": "https://github.com/symfony/intl/tree/v5.4.11"
+ "source": "https://github.com/symfony/intl/tree/v6.2.0"
},
"funding": [
{
@@ -5075,52 +6010,200 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T11:34:24+00:00"
+ "time": "2022-11-02T09:08:04+00:00"
},
{
- "name": "symfony/mime",
- "version": "v5.4.11",
+ "name": "symfony/mailer",
+ "version": "v6.2.2",
"source": {
"type": "git",
- "url": "https://github.com/symfony/mime.git",
- "reference": "3cd175cdcdb6db2e589e837dd46aff41027d9830"
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "b355ad81f1d2987c47dcd3b04d5dce669e1e62e6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/3cd175cdcdb6db2e589e837dd46aff41027d9830",
- "reference": "3cd175cdcdb6db2e589e837dd46aff41027d9830",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/b355ad81f1d2987c47dcd3b04d5dce669e1e62e6",
+ "reference": "b355ad81f1d2987c47dcd3b04d5dce669e1e62e6",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
+ "egulias/email-validator": "^2.1.10|^3",
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/mime": "^6.2",
+ "symfony/service-contracts": "^1.1|^2|^3"
+ },
+ "conflict": {
+ "symfony/http-kernel": "<5.4",
+ "symfony/messenger": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/twig-bridge": "<6.2.1"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0",
+ "symfony/http-client-contracts": "^1.1|^2|^3",
+ "symfony/messenger": "^6.2",
+ "symfony/twig-bridge": "^6.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v6.2.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-14T16:11:27+00:00"
+ },
+ {
+ "name": "symfony/mailgun-mailer",
+ "version": "v6.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mailgun-mailer.git",
+ "reference": "c5364fbcf5581ba9eae569db12b380b9255ce238"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/c5364fbcf5581ba9eae569db12b380b9255ce238",
+ "reference": "c5364fbcf5581ba9eae569db12b380b9255ce238",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/mailer": "^5.4|^6.0"
+ },
+ "require-dev": {
+ "symfony/http-client": "^5.4|^6.0"
+ },
+ "type": "symfony-mailer-bridge",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\Bridge\\Mailgun\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony Mailgun Mailer Bridge",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailgun-mailer/tree/v6.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-09T08:55:40+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v6.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "8c98bf40406e791043890a163f6f6599b9cfa1ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/8c98bf40406e791043890a163f6f6599b9cfa1ed",
+ "reference": "8c98bf40406e791043890a163f6f6599b9cfa1ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
"symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
"egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<4.4"
+ "symfony/mailer": "<5.4",
+ "symfony/serializer": "<6.2"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1",
+ "league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/property-access": "^4.4|^5.1|^6.0",
- "symfony/property-info": "^4.4|^5.1|^6.0",
- "symfony/serializer": "^5.2|^6.0"
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/serializer": "^6.2"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Mime\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -5133,9 +6216,12 @@
],
"description": "Allows manipulating MIME messages",
"homepage": "https://symfony.com",
- "keywords": ["mime", "mime-type"],
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.4.11"
+ "source": "https://github.com/symfony/mime/tree/v6.2.2"
},
"funding": [
{
@@ -5151,20 +6237,20 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T11:34:24+00:00"
+ "time": "2022-12-14T16:38:10+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4"
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
- "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
"shasum": ""
},
"require": {
@@ -5179,7 +6265,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -5187,13 +6273,17 @@
}
},
"autoload": {
- "files": ["bootstrap.php"],
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
"Symfony\\Polyfill\\Ctype\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Gert de Pagter",
@@ -5206,88 +6296,14 @@
],
"description": "Symfony polyfill for ctype functions",
"homepage": "https://symfony.com",
- "keywords": ["compatibility", "ctype", "polyfill", "portable"],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-05-24T11:49:31+00:00"
- },
- {
- "name": "symfony/polyfill-iconv",
- "version": "v1.26.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-iconv.git",
- "reference": "143f1881e655bebca1312722af8068de235ae5dc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/143f1881e655bebca1312722af8068de235ae5dc",
- "reference": "143f1881e655bebca1312722af8068de235ae5dc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-iconv": "*"
- },
- "suggest": {
- "ext-iconv": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": ["bootstrap.php"],
- "psr-4": {
- "Symfony\\Polyfill\\Iconv\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for the Iconv extension",
- "homepage": "https://symfony.com",
"keywords": [
"compatibility",
- "iconv",
+ "ctype",
"polyfill",
- "portable",
- "shim"
+ "portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-iconv/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
},
"funding": [
{
@@ -5303,20 +6319,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "433d05519ce6990bf3530fba6957499d327395c2"
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2",
- "reference": "433d05519ce6990bf3530fba6957499d327395c2",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
"shasum": ""
},
"require": {
@@ -5328,7 +6344,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -5336,13 +6352,17 @@
}
},
"autoload": {
- "files": ["bootstrap.php"],
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Grapheme\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -5364,7 +6384,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
},
"funding": [
{
@@ -5380,20 +6400,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8"
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
"shasum": ""
},
"require": {
@@ -5407,7 +6427,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -5415,13 +6435,17 @@
}
},
"autoload": {
- "files": ["bootstrap.php"],
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Idn\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Laurent Bassin",
@@ -5447,7 +6471,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
},
"funding": [
{
@@ -5463,20 +6487,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "219aa369ceff116e673852dce47c3a41794c14bd"
+ "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd",
- "reference": "219aa369ceff116e673852dce47c3a41794c14bd",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
"shasum": ""
},
"require": {
@@ -5488,7 +6512,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -5496,14 +6520,20 @@
}
},
"autoload": {
- "files": ["bootstrap.php"],
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
"Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
- "classmap": ["Resources/stubs"]
+ "classmap": [
+ "Resources/stubs"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -5525,7 +6555,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
},
"funding": [
{
@@ -5541,20 +6571,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
"shasum": ""
},
"require": {
@@ -5569,7 +6599,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -5577,13 +6607,17 @@
}
},
"autoload": {
- "files": ["bootstrap.php"],
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
"Symfony\\Polyfill\\Mbstring\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -5604,7 +6638,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
},
"funding": [
{
@@ -5620,20 +6654,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2"
+ "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2",
- "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
+ "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
"shasum": ""
},
"require": {
@@ -5642,7 +6676,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -5650,13 +6684,17 @@
}
},
"autoload": {
- "files": ["bootstrap.php"],
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
"Symfony\\Polyfill\\Php72\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -5669,9 +6707,14 @@
],
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
"homepage": "https://symfony.com",
- "keywords": ["compatibility", "polyfill", "portable", "shim"],
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
},
"funding": [
{
@@ -5687,88 +6730,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
- },
- {
- "name": "symfony/polyfill-php73",
- "version": "v1.26.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85",
- "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": ["bootstrap.php"],
- "psr-4": {
- "Symfony\\Polyfill\\Php73\\": ""
- },
- "classmap": ["Resources/stubs"]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": ["compatibility", "polyfill", "portable", "shim"],
- "support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace"
+ "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace",
- "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
"shasum": ""
},
"require": {
@@ -5777,7 +6752,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -5785,14 +6760,20 @@
}
},
"autoload": {
- "files": ["bootstrap.php"],
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
"Symfony\\Polyfill\\Php80\\": ""
},
- "classmap": ["Resources/stubs"]
+ "classmap": [
+ "Resources/stubs"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Ion Bazan",
@@ -5809,9 +6790,14 @@
],
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
- "keywords": ["compatibility", "polyfill", "portable", "shim"],
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
},
"funding": [
{
@@ -5827,29 +6813,35 @@
"type": "tidelift"
}
],
- "time": "2022-05-10T07:21:04+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
- "name": "symfony/polyfill-php81",
- "version": "v1.26.0",
+ "name": "symfony/polyfill-uuid",
+ "version": "v1.27.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1"
+ "url": "https://github.com/symfony/polyfill-uuid.git",
+ "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166",
+ "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
+ "provide": {
+ "ext-uuid": "*"
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -5857,29 +6849,37 @@
}
},
"autoload": {
- "files": ["bootstrap.php"],
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
- },
- "classmap": ["Resources/stubs"]
+ "Symfony\\Polyfill\\Uuid\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "description": "Symfony polyfill for uuid functions",
"homepage": "https://symfony.com",
- "keywords": ["compatibility", "polyfill", "portable", "shim"],
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "uuid"
+ ],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.0"
},
"funding": [
{
@@ -5895,35 +6895,38 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/process",
- "version": "v5.4.11",
+ "version": "v6.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1"
+ "reference": "ba6e55359f8f755fe996c58a81e00eaa67a35877"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1",
- "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1",
+ "url": "https://api.github.com/repos/symfony/process/zipball/ba6e55359f8f755fe996c58a81e00eaa67a35877",
+ "reference": "ba6e55359f8f755fe996c58a81e00eaa67a35877",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Process\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -5937,7 +6940,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.4.11"
+ "source": "https://github.com/symfony/process/tree/v6.2.0"
},
"funding": [
{
@@ -5953,41 +6956,39 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T16:58:25+00:00"
+ "time": "2022-11-02T09:08:04+00:00"
},
{
"name": "symfony/routing",
- "version": "v5.4.11",
+ "version": "v6.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226"
+ "reference": "35fec764f3e2c8c08fb340d275c84bc78ca7e0c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/3e01ccd9b2a3a4167ba2b3c53612762300300226",
- "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/35fec764f3e2c8c08fb340d275c84bc78ca7e0c9",
+ "reference": "35fec764f3e2c8c08fb340d275c84bc78ca7e0c9",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"conflict": {
"doctrine/annotations": "<1.12",
- "symfony/config": "<5.3",
- "symfony/dependency-injection": "<4.4",
- "symfony/yaml": "<4.4"
+ "symfony/config": "<6.2",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/yaml": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.12",
+ "doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.3|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0"
+ "symfony/config": "^6.2",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
},
"suggest": {
"symfony/config": "For using the all-in-one router or any loader",
@@ -6000,10 +7001,14 @@
"psr-4": {
"Symfony\\Component\\Routing\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -6016,9 +7021,14 @@
],
"description": "Maps an HTTP request to a set of configuration variables",
"homepage": "https://symfony.com",
- "keywords": ["router", "routing", "uri", "url"],
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
"support": {
- "source": "https://github.com/symfony/routing/tree/v5.4.11"
+ "source": "https://github.com/symfony/routing/tree/v6.2.3"
},
"funding": [
{
@@ -6034,26 +7044,25 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T13:00:38+00:00"
+ "time": "2022-12-20T16:41:15+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.5.2",
+ "version": "v3.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/aac98028c69df04ee77eb69b96b86ee51fbf4b75",
+ "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.1",
+ "psr/container": "^2.0"
},
"conflict": {
"ext-psr": "<1.1|>=2"
@@ -6064,7 +7073,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.3-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6074,10 +7083,15 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -6099,7 +7113,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.2.0"
},
"funding": [
{
@@ -6115,24 +7129,24 @@
"type": "tidelift"
}
],
- "time": "2022-05-30T19:17:29+00:00"
+ "time": "2022-11-25T10:21:52+00:00"
},
{
"name": "symfony/string",
- "version": "v6.0.11",
+ "version": "v6.2.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "042b6bf0f6ccca6d456a0572eb788cfb8b1ff809"
+ "reference": "863219fd713fa41cbcd285a79723f94672faff4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/042b6bf0f6ccca6d456a0572eb788cfb8b1ff809",
- "reference": "042b6bf0f6ccca6d456a0572eb788cfb8b1ff809",
+ "url": "https://api.github.com/repos/symfony/string/zipball/863219fd713fa41cbcd285a79723f94672faff4d",
+ "reference": "863219fd713fa41cbcd285a79723f94672faff4d",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
@@ -6144,19 +7158,26 @@
"require-dev": {
"symfony/error-handler": "^5.4|^6.0",
"symfony/http-client": "^5.4|^6.0",
+ "symfony/intl": "^6.2",
"symfony/translation-contracts": "^2.0|^3.0",
"symfony/var-exporter": "^5.4|^6.0"
},
"type": "library",
"autoload": {
- "files": ["Resources/functions.php"],
+ "files": [
+ "Resources/functions.php"
+ ],
"psr-4": {
"Symfony\\Component\\String\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -6178,7 +7199,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.0.11"
+ "source": "https://github.com/symfony/string/tree/v6.2.2"
},
"funding": [
{
@@ -6194,24 +7215,24 @@
"type": "tidelift"
}
],
- "time": "2022-07-27T15:50:26+00:00"
+ "time": "2022-12-14T16:11:27+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.0.11",
+ "version": "v6.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "55ffbe4b690156100af1ae42e1f94c5873085bca"
+ "reference": "a2a15404ef4c15d92c205718eb828b225a144379"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/55ffbe4b690156100af1ae42e1f94c5873085bca",
- "reference": "55ffbe4b690156100af1ae42e1f94c5873085bca",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/a2a15404ef4c15d92c205718eb828b225a144379",
+ "reference": "a2a15404ef4c15d92c205718eb828b225a144379",
"shasum": ""
},
"require": {
- "php": ">=8.0.2",
+ "php": ">=8.1",
"symfony/polyfill-mbstring": "~1.0",
"symfony/translation-contracts": "^2.3|^3.0"
},
@@ -6227,6 +7248,7 @@
"symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
+ "nikic/php-parser": "^4.13",
"psr/log": "^1|^2|^3",
"symfony/config": "^5.4|^6.0",
"symfony/console": "^5.4|^6.0",
@@ -6236,24 +7258,32 @@
"symfony/http-kernel": "^5.4|^6.0",
"symfony/intl": "^5.4|^6.0",
"symfony/polyfill-intl-icu": "^1.21",
+ "symfony/routing": "^5.4|^6.0",
"symfony/service-contracts": "^1.1.2|^2|^3",
"symfony/yaml": "^5.4|^6.0"
},
"suggest": {
+ "nikic/php-parser": "To use PhpAstExtractor",
"psr/log-implementation": "To use logging capability in translator",
"symfony/config": "",
"symfony/yaml": ""
},
"type": "library",
"autoload": {
- "files": ["Resources/functions.php"],
+ "files": [
+ "Resources/functions.php"
+ ],
"psr-4": {
"Symfony\\Component\\Translation\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Fabien Potencier",
@@ -6267,7 +7297,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.0.11"
+ "source": "https://github.com/symfony/translation/tree/v6.2.3"
},
"funding": [
{
@@ -6283,24 +7313,24 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T13:45:53+00:00"
+ "time": "2022-12-23T14:11:11+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.0.2",
+ "version": "v3.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282"
+ "reference": "68cce71402305a015f8c1589bfada1280dc64fe7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/acbfbb274e730e5a0236f619b6168d9dedb3e282",
- "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/68cce71402305a015f8c1589bfada1280dc64fe7",
+ "reference": "68cce71402305a015f8c1589bfada1280dc64fe7",
"shasum": ""
},
"require": {
- "php": ">=8.0.2"
+ "php": ">=8.1"
},
"suggest": {
"symfony/translation-implementation": ""
@@ -6308,7 +7338,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "3.3-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -6318,10 +7348,15 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -6343,7 +7378,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.0.2"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.2.0"
},
"funding": [
{
@@ -6359,36 +7394,109 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T17:10:44+00:00"
+ "time": "2022-11-25T10:21:52+00:00"
},
{
- "name": "symfony/var-dumper",
- "version": "v5.4.11",
+ "name": "symfony/uid",
+ "version": "v6.2.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861"
+ "url": "https://github.com/symfony/uid.git",
+ "reference": "4f9f537e57261519808a7ce1d941490736522bbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b8f306d7b8ef34fb3db3305be97ba8e088fb4861",
- "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/4f9f537e57261519808a7ce1d941490736522bbc",
+ "reference": "4f9f537e57261519808a7ce1d941490736522bbc",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/polyfill-uuid": "^1.15"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Uid\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to generate and represent UIDs",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "UID",
+ "ulid",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/uid/tree/v6.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-10-09T08:55:40+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v6.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0",
+ "reference": "fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
"phpunit/phpunit": "<5.4.3",
- "symfony/console": "<4.4"
+ "symfony/console": "<5.4"
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/uid": "^5.1|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/uid": "^5.4|^6.0",
"twig/twig": "^2.13|^3.0.4"
},
"suggest": {
@@ -6396,17 +7504,25 @@
"ext-intl": "To show region name in time zone dump",
"symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
},
- "bin": ["Resources/bin/var-dump-server"],
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
"type": "library",
"autoload": {
- "files": ["Resources/functions/dump.php"],
+ "files": [
+ "Resources/functions/dump.php"
+ ],
"psr-4": {
"Symfony\\Component\\VarDumper\\": ""
},
- "exclude-from-classmap": ["/Tests/"]
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nicolas Grekas",
@@ -6419,9 +7535,12 @@
],
"description": "Provides mechanisms for walking through any arbitrary PHP variable",
"homepage": "https://symfony.com",
- "keywords": ["debug", "dump"],
+ "keywords": [
+ "debug",
+ "dump"
+ ],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.11"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.2.3"
},
"funding": [
{
@@ -6437,20 +7556,20 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T13:00:38+00:00"
+ "time": "2022-12-22T17:55:15+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
- "version": "2.2.4",
+ "version": "2.2.6",
"source": {
"type": "git",
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c"
+ "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/da444caae6aca7a19c0c140f68c6182e337d5b1c",
- "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c",
+ "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c",
"shasum": ""
},
"require": {
@@ -6474,7 +7593,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Tijs Verkoyen",
@@ -6486,22 +7607,22 @@
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"support": {
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
- "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.4"
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6"
},
- "time": "2021-12-08T09:12:39+00:00"
+ "time": "2023-01-03T09:29:04+00:00"
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.4.1",
+ "version": "v5.5.0",
"source": {
"type": "git",
"url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f"
+ "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/264dce589e7ce37a7ba99cb901eed8249fbec92f",
- "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
+ "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
"shasum": ""
},
"require": {
@@ -6516,15 +7637,19 @@
"require-dev": {
"bamarni/composer-bin-plugin": "^1.4.1",
"ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.21 || ^9.5.10"
+ "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25"
},
"suggest": {
"ext-filter": "Required to use the boolean validator."
},
"type": "library",
"extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": true
+ },
"branch-alias": {
- "dev-master": "5.4-dev"
+ "dev-master": "5.5-dev"
}
},
"autoload": {
@@ -6533,7 +7658,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Graham Campbell",
@@ -6547,10 +7674,14 @@
}
],
"description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
- "keywords": ["dotenv", "env", "environment"],
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.4.1"
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0"
},
"funding": [
{
@@ -6562,20 +7693,20 @@
"type": "tidelift"
}
],
- "time": "2021-12-12T23:22:04+00:00"
+ "time": "2022-10-16T01:01:54+00:00"
},
{
"name": "voku/portable-ascii",
- "version": "1.6.1",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/voku/portable-ascii.git",
- "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a"
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a",
- "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743",
"shasum": ""
},
"require": {
@@ -6594,7 +7725,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Lars Moelleken",
@@ -6603,10 +7736,14 @@
],
"description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
"homepage": "https://github.com/voku/portable-ascii",
- "keywords": ["ascii", "clean", "php"],
+ "keywords": [
+ "ascii",
+ "clean",
+ "php"
+ ],
"support": {
"issues": "https://github.com/voku/portable-ascii/issues",
- "source": "https://github.com/voku/portable-ascii/tree/1.6.1"
+ "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
},
"funding": [
{
@@ -6630,7 +7767,7 @@
"type": "tidelift"
}
],
- "time": "2022-01-24T18:55:24+00:00"
+ "time": "2022-03-08T17:03:00+00:00"
},
{
"name": "webmozart/assert",
@@ -6669,7 +7806,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Bernhard Schussek",
@@ -6677,7 +7816,11 @@
}
],
"description": "Assertions to validate method input/output with nice error messages.",
- "keywords": ["assert", "check", "validate"],
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
@@ -6730,13 +7873,17 @@
}
},
"autoload": {
- "files": ["src/helper.php"],
+ "files": [
+ "src/helper.php"
+ ],
"psr-4": {
"Yajra\\DataTables\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Arjay Angeles",
@@ -6744,7 +7891,11 @@
}
],
"description": "jQuery DataTables API for Laravel 5|6|7|8|9",
- "keywords": ["datatables", "jquery", "laravel"],
+ "keywords": [
+ "datatables",
+ "jquery",
+ "laravel"
+ ],
"support": {
"issues": "https://github.com/yajra/laravel-datatables/issues",
"source": "https://github.com/yajra/laravel-datatables/tree/v9.21.2"
@@ -6797,20 +7948,26 @@
"dev-master": "3.6-dev"
},
"laravel": {
- "providers": ["Barryvdh\\Debugbar\\ServiceProvider"],
+ "providers": [
+ "Barryvdh\\Debugbar\\ServiceProvider"
+ ],
"aliases": {
"Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar"
}
}
},
"autoload": {
- "files": ["src/helpers.php"],
+ "files": [
+ "src/helpers.php"
+ ],
"psr-4": {
"Barryvdh\\Debugbar\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Barry vd. Heuvel",
@@ -6843,30 +8000,30 @@
},
{
"name": "doctrine/instantiator",
- "version": "1.4.1",
+ "version": "1.5.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc"
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc",
- "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
+ "doctrine/coding-standard": "^9 || ^11",
"ext-pdo": "*",
"ext-phar": "*",
"phpbench/phpbench": "^0.16 || ^1",
"phpstan/phpstan": "^1.4",
"phpstan/phpstan-phpunit": "^1",
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.22"
+ "vimeo/psalm": "^4.30 || ^5.4"
},
"type": "library",
"autoload": {
@@ -6875,7 +8032,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Marco Pivetta",
@@ -6885,10 +8044,13 @@
],
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
"homepage": "https://www.doctrine-project.org/projects/instantiator.html",
- "keywords": ["constructor", "instantiate"],
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.4.1"
+ "source": "https://github.com/doctrine/instantiator/tree/1.5.0"
},
"funding": [
{
@@ -6904,194 +8066,24 @@
"type": "tidelift"
}
],
- "time": "2022-03-03T08:28:38+00:00"
- },
- {
- "name": "facade/flare-client-php",
- "version": "1.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/facade/flare-client-php.git",
- "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/facade/flare-client-php/zipball/b2adf1512755637d0cef4f7d1b54301325ac78ed",
- "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed",
- "shasum": ""
- },
- "require": {
- "facade/ignition-contracts": "~1.0",
- "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0",
- "php": "^7.1|^8.0",
- "symfony/http-foundation": "^3.3|^4.1|^5.0",
- "symfony/mime": "^3.4|^4.0|^5.1",
- "symfony/var-dumper": "^3.4|^4.0|^5.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "phpunit/phpunit": "^7.5.16",
- "spatie/phpunit-snapshot-assertions": "^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "files": ["src/helpers.php"],
- "psr-4": {
- "Facade\\FlareClient\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "description": "Send PHP errors to Flare",
- "homepage": "https://github.com/facade/flare-client-php",
- "keywords": ["exception", "facade", "flare", "reporting"],
- "support": {
- "issues": "https://github.com/facade/flare-client-php/issues",
- "source": "https://github.com/facade/flare-client-php/tree/1.9.1"
- },
- "funding": [
- {
- "url": "https://github.com/spatie",
- "type": "github"
- }
- ],
- "time": "2021-09-13T12:16:46+00:00"
- },
- {
- "name": "facade/ignition",
- "version": "2.17.6",
- "source": {
- "type": "git",
- "url": "https://github.com/facade/ignition.git",
- "reference": "6acd82e986a2ecee89e2e68adfc30a1936d1ab7c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/facade/ignition/zipball/6acd82e986a2ecee89e2e68adfc30a1936d1ab7c",
- "reference": "6acd82e986a2ecee89e2e68adfc30a1936d1ab7c",
- "shasum": ""
- },
- "require": {
- "ext-curl": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "facade/flare-client-php": "^1.9.1",
- "facade/ignition-contracts": "^1.0.2",
- "illuminate/support": "^7.0|^8.0",
- "monolog/monolog": "^2.0",
- "php": "^7.2.5|^8.0",
- "symfony/console": "^5.0",
- "symfony/var-dumper": "^5.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "livewire/livewire": "^2.4",
- "mockery/mockery": "^1.3",
- "orchestra/testbench": "^5.0|^6.0",
- "psalm/plugin-laravel": "^1.2"
- },
- "suggest": {
- "laravel/telescope": "^3.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": ["Facade\\Ignition\\IgnitionServiceProvider"],
- "aliases": {
- "Flare": "Facade\\Ignition\\Facades\\Flare"
- }
- }
- },
- "autoload": {
- "files": ["src/helpers.php"],
- "psr-4": {
- "Facade\\Ignition\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "description": "A beautiful error page for Laravel applications.",
- "homepage": "https://github.com/facade/ignition",
- "keywords": ["error", "flare", "laravel", "page"],
- "support": {
- "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
- "forum": "https://twitter.com/flareappio",
- "issues": "https://github.com/facade/ignition/issues",
- "source": "https://github.com/facade/ignition"
- },
- "time": "2022-06-30T18:26:59+00:00"
- },
- {
- "name": "facade/ignition-contracts",
- "version": "1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/facade/ignition-contracts.git",
- "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
- "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
- "shasum": ""
- },
- "require": {
- "php": "^7.3|^8.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^v2.15.8",
- "phpunit/phpunit": "^9.3.11",
- "vimeo/psalm": "^3.17.1"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Facade\\IgnitionContracts\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Freek Van der Herten",
- "email": "freek@spatie.be",
- "homepage": "https://flareapp.io",
- "role": "Developer"
- }
- ],
- "description": "Solution contracts for Ignition",
- "homepage": "https://github.com/facade/ignition-contracts",
- "keywords": ["contracts", "flare", "ignition"],
- "support": {
- "issues": "https://github.com/facade/ignition-contracts/issues",
- "source": "https://github.com/facade/ignition-contracts/tree/1.0.2"
- },
- "time": "2020-10-16T08:27:54+00:00"
+ "time": "2022-12-30T00:15:36+00:00"
},
{
"name": "fakerphp/faker",
- "version": "v1.20.0",
+ "version": "v1.21.0",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b"
+ "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b",
- "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d",
+ "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0",
+ "php": "^7.4 || ^8.0",
"psr/container": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
},
@@ -7102,7 +8094,8 @@
"bamarni/composer-bin-plugin": "^1.4.1",
"doctrine/persistence": "^1.3 || ^2.0",
"ext-intl": "*",
- "symfony/phpunit-bridge": "^4.4 || ^5.2"
+ "phpunit/phpunit": "^9.5.26",
+ "symfony/phpunit-bridge": "^5.4.16"
},
"suggest": {
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
@@ -7114,7 +8107,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "v1.20-dev"
+ "dev-main": "v1.21-dev"
}
},
"autoload": {
@@ -7123,32 +8116,38 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "François Zaninotto"
}
],
"description": "Faker is a PHP library that generates fake data for you.",
- "keywords": ["data", "faker", "fixtures"],
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0"
},
- "time": "2022-07-20T13:12:54+00:00"
+ "time": "2022-12-13T13:54:32+00:00"
},
{
"name": "filp/whoops",
- "version": "2.14.5",
+ "version": "2.14.6",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc"
+ "reference": "f7948baaa0330277c729714910336383286305da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc",
- "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da",
+ "reference": "f7948baaa0330277c729714910336383286305da",
"shasum": ""
},
"require": {
@@ -7176,7 +8175,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Filipe Dobreira",
@@ -7196,7 +8197,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.14.5"
+ "source": "https://github.com/filp/whoops/tree/2.14.6"
},
"funding": [
{
@@ -7204,7 +8205,7 @@
"type": "github"
}
],
- "time": "2022-01-07T12:00:00+00:00"
+ "time": "2022-11-02T16:23:29+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -7239,12 +8240,18 @@
}
},
"autoload": {
- "classmap": ["hamcrest"]
+ "classmap": [
+ "hamcrest"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"description": "This is the PHP port of Hamcrest Matchers",
- "keywords": ["test"],
+ "keywords": [
+ "test"
+ ],
"support": {
"issues": "https://github.com/hamcrest/hamcrest-php/issues",
"source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
@@ -7253,16 +8260,16 @@
},
{
"name": "laravel/sail",
- "version": "v1.15.1",
+ "version": "v1.17.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
- "reference": "2fe64c0b45a3af56cac0af638c8020a8adc860d7"
+ "reference": "7d69da7b2bdb8cbe8da6663eb2ae0e00c884bf80"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/2fe64c0b45a3af56cac0af638c8020a8adc860d7",
- "reference": "2fe64c0b45a3af56cac0af638c8020a8adc860d7",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/7d69da7b2bdb8cbe8da6663eb2ae0e00c884bf80",
+ "reference": "7d69da7b2bdb8cbe8da6663eb2ae0e00c884bf80",
"shasum": ""
},
"require": {
@@ -7271,14 +8278,18 @@
"illuminate/support": "^8.0|^9.0",
"php": "^7.3|^8.0"
},
- "bin": ["bin/sail"],
+ "bin": [
+ "bin/sail"
+ ],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.x-dev"
},
"laravel": {
- "providers": ["Laravel\\Sail\\SailServiceProvider"]
+ "providers": [
+ "Laravel\\Sail\\SailServiceProvider"
+ ]
}
},
"autoload": {
@@ -7287,7 +8298,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Taylor Otwell",
@@ -7295,25 +8308,28 @@
}
],
"description": "Docker files for running a basic Laravel application.",
- "keywords": ["docker", "laravel"],
+ "keywords": [
+ "docker",
+ "laravel"
+ ],
"support": {
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
- "time": "2022-07-21T14:33:56+00:00"
+ "time": "2022-12-22T14:46:08+00:00"
},
{
"name": "maximebf/debugbar",
- "version": "v1.18.0",
+ "version": "v1.18.1",
"source": {
"type": "git",
"url": "https://github.com/maximebf/php-debugbar.git",
- "reference": "0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6"
+ "reference": "ba0af68dd4316834701ecb30a00ce9604ced3ee9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6",
- "reference": "0d44b75f3b5d6d41ae83b79c7a4bceae7fbc78b6",
+ "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/ba0af68dd4316834701ecb30a00ce9604ced3ee9",
+ "reference": "ba0af68dd4316834701ecb30a00ce9604ced3ee9",
"shasum": ""
},
"require": {
@@ -7333,7 +8349,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.17-dev"
+ "dev-master": "1.18-dev"
}
},
"autoload": {
@@ -7342,7 +8358,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Maxime Bouroumeau-Fuseau",
@@ -7356,25 +8374,28 @@
],
"description": "Debug bar in the browser for php application",
"homepage": "https://github.com/maximebf/php-debugbar",
- "keywords": ["debug", "debugbar"],
+ "keywords": [
+ "debug",
+ "debugbar"
+ ],
"support": {
"issues": "https://github.com/maximebf/php-debugbar/issues",
- "source": "https://github.com/maximebf/php-debugbar/tree/v1.18.0"
+ "source": "https://github.com/maximebf/php-debugbar/tree/v1.18.1"
},
- "time": "2021-12-27T18:49:48+00:00"
+ "time": "2022-03-31T14:55:54+00:00"
},
{
"name": "mockery/mockery",
- "version": "1.5.0",
+ "version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
- "reference": "c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac"
+ "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac",
- "reference": "c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e",
+ "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e",
"shasum": ""
},
"require": {
@@ -7400,7 +8421,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Pádraic Brady",
@@ -7429,9 +8452,9 @@
],
"support": {
"issues": "https://github.com/mockery/mockery/issues",
- "source": "https://github.com/mockery/mockery/tree/1.5.0"
+ "source": "https://github.com/mockery/mockery/tree/1.5.1"
},
- "time": "2022-01-20T13:18:17+00:00"
+ "time": "2022-09-07T15:32:08+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -7461,13 +8484,17 @@
},
"type": "library",
"autoload": {
- "files": ["src/DeepCopy/deep_copy.php"],
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
"psr-4": {
"DeepCopy\\": "src/DeepCopy/"
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"description": "Create deep copies (clones) of your objects",
"keywords": [
"clone",
@@ -7490,37 +8517,38 @@
},
{
"name": "nunomaduro/collision",
- "version": "v5.11.0",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/collision.git",
- "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461"
+ "reference": "f05978827b9343cba381ca05b8c7deee346b6015"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461",
- "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f05978827b9343cba381ca05b8c7deee346b6015",
+ "reference": "f05978827b9343cba381ca05b8c7deee346b6015",
"shasum": ""
},
"require": {
- "facade/ignition-contracts": "^1.0",
- "filp/whoops": "^2.14.3",
- "php": "^7.3 || ^8.0",
- "symfony/console": "^5.0"
+ "filp/whoops": "^2.14.5",
+ "php": "^8.0.0",
+ "symfony/console": "^6.0.2"
},
"require-dev": {
- "brianium/paratest": "^6.1",
- "fideloper/proxy": "^4.4.1",
- "fruitcake/laravel-cors": "^2.0.3",
- "laravel/framework": "8.x-dev",
- "nunomaduro/larastan": "^0.6.2",
- "nunomaduro/mock-final-classes": "^1.0",
- "orchestra/testbench": "^6.0",
- "phpstan/phpstan": "^0.12.64",
- "phpunit/phpunit": "^9.5.0"
+ "brianium/paratest": "^6.4.1",
+ "laravel/framework": "^9.26.1",
+ "laravel/pint": "^1.1.1",
+ "nunomaduro/larastan": "^1.0.3",
+ "nunomaduro/mock-final-classes": "^1.1.0",
+ "orchestra/testbench": "^7.7",
+ "phpunit/phpunit": "^9.5.23",
+ "spatie/ignition": "^1.4.1"
},
"type": "library",
"extra": {
+ "branch-alias": {
+ "dev-develop": "6.x-dev"
+ },
"laravel": {
"providers": [
"NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
@@ -7533,7 +8561,9 @@
}
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
+ "license": [
+ "MIT"
+ ],
"authors": [
{
"name": "Nuno Maduro",
@@ -7571,7 +8601,7 @@
"type": "patreon"
}
],
- "time": "2022-01-10T16:22:52+00:00"
+ "time": "2023-01-03T12:54:54+00:00"
},
{
"name": "phar-io/manifest",
@@ -7601,10 +8631,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Arne Blankerts",
@@ -7648,10 +8682,14 @@
},
"type": "library",
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Arne Blankerts",
@@ -7676,237 +8714,25 @@
},
"time": "2022-02-21T01:04:05+00:00"
},
- {
- "name": "phpdocumentor/reflection-common",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-2.x": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
- },
- "time": "2020-06-27T09:03:43+00:00"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "5.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
- "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
- "shasum": ""
- },
- "require": {
- "ext-filter": "*",
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.2",
- "phpdocumentor/type-resolver": "^1.3",
- "webmozart/assert": "^1.9.1"
- },
- "require-dev": {
- "mockery/mockery": "~1.3.2",
- "psalm/phar": "^4.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- },
- {
- "name": "Jaap van Otterdijk",
- "email": "account@ijaap.nl"
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
- },
- "time": "2021-10-19T17:43:47+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "1.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "77a32518733312af16a44300404e945338981de3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
- "reference": "77a32518733312af16a44300404e945338981de3",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0"
- },
- "require-dev": {
- "ext-tokenizer": "*",
- "psalm/phar": "^4.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-1.x": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
- "support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
- },
- "time": "2022-03-15T21:29:03+00:00"
- },
- {
- "name": "phpspec/prophecy",
- "version": "v1.15.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
- "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.2",
- "php": "^7.2 || ~8.0, <8.2",
- "phpdocumentor/reflection-docblock": "^5.2",
- "sebastian/comparator": "^3.0 || ^4.0",
- "sebastian/recursion-context": "^3.0 || ^4.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^6.0 || ^7.0",
- "phpunit/phpunit": "^8.0 || ^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Prophecy\\": "src/Prophecy"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": ["MIT"],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
- },
- {
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
- }
- ],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": ["Double", "Dummy", "fake", "mock", "spy", "stub"],
- "support": {
- "issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
- },
- "time": "2021-12-08T12:19:24+00:00"
- },
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.15",
+ "version": "9.2.23",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f"
+ "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
- "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c",
+ "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.13.0",
+ "nikic/php-parser": "^4.14",
"php": ">=7.3",
"phpunit/php-file-iterator": "^3.0.3",
"phpunit/php-text-template": "^2.0.2",
@@ -7931,10 +8757,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -7944,10 +8774,14 @@
],
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
- "keywords": ["coverage", "testing", "xunit"],
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.23"
},
"funding": [
{
@@ -7955,7 +8789,7 @@
"type": "github"
}
],
- "time": "2022-03-07T09:28:20+00:00"
+ "time": "2022-12-28T12:41:10+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -7984,10 +8818,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -7997,7 +8835,10 @@
],
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
- "keywords": ["filesystem", "iterator"],
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
"source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
@@ -8041,10 +8882,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8054,7 +8899,9 @@
],
"description": "Invoke callables with a timeout",
"homepage": "https://github.com/sebastianbergmann/php-invoker/",
- "keywords": ["process"],
+ "keywords": [
+ "process"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
"source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
@@ -8094,10 +8941,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8107,7 +8958,9 @@
],
"description": "Simple template engine.",
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": ["template"],
+ "keywords": [
+ "template"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
"source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
@@ -8147,10 +9000,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8160,7 +9017,9 @@
],
"description": "Utility class for timing",
"homepage": "https://github.com/sebastianbergmann/php-timer/",
- "keywords": ["timer"],
+ "keywords": [
+ "timer"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
"source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
@@ -8175,16 +9034,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.21",
+ "version": "9.5.27",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1"
+ "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1",
- "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38",
+ "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38",
"shasum": ""
},
"require": {
@@ -8199,7 +9058,6 @@
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=7.3",
- "phpspec/prophecy": "^1.12.1",
"phpunit/php-code-coverage": "^9.2.13",
"phpunit/php-file-iterator": "^3.0.5",
"phpunit/php-invoker": "^3.1.1",
@@ -8207,24 +9065,23 @@
"phpunit/php-timer": "^5.0.2",
"sebastian/cli-parser": "^1.0.1",
"sebastian/code-unit": "^1.0.6",
- "sebastian/comparator": "^4.0.5",
+ "sebastian/comparator": "^4.0.8",
"sebastian/diff": "^4.0.3",
"sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.3",
+ "sebastian/exporter": "^4.0.5",
"sebastian/global-state": "^5.0.1",
"sebastian/object-enumerator": "^4.0.3",
"sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.0",
+ "sebastian/type": "^3.2",
"sebastian/version": "^3.0.2"
},
- "require-dev": {
- "phpspec/prophecy-phpunit": "^2.0.1"
- },
"suggest": {
"ext-soap": "*",
"ext-xdebug": "*"
},
- "bin": ["phpunit"],
+ "bin": [
+ "phpunit"
+ ],
"type": "library",
"extra": {
"branch-alias": {
@@ -8232,11 +9089,17 @@
}
},
"autoload": {
- "files": ["src/Framework/Assert/Functions.php"],
- "classmap": ["src/"]
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8246,10 +9109,14 @@
],
"description": "The PHP Unit Testing framework.",
"homepage": "https://phpunit.de/",
- "keywords": ["phpunit", "testing", "xunit"],
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27"
},
"funding": [
{
@@ -8259,9 +9126,13 @@
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
}
],
- "time": "2022-06-19T12:14:25+00:00"
+ "time": "2022-12-09T07:31:23+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -8290,10 +9161,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8342,10 +9217,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8394,10 +9273,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8420,16 +9303,16 @@
},
{
"name": "sebastian/comparator",
- "version": "4.0.6",
+ "version": "4.0.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
"shasum": ""
},
"require": {
@@ -8447,10 +9330,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8471,10 +9358,14 @@
],
"description": "Provides the functionality to compare PHP values for equality",
"homepage": "https://github.com/sebastianbergmann/comparator",
- "keywords": ["comparator", "compare", "equality"],
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
},
"funding": [
{
@@ -8482,7 +9373,7 @@
"type": "github"
}
],
- "time": "2020-10-26T15:49:45+00:00"
+ "time": "2022-09-14T12:41:17+00:00"
},
{
"name": "sebastian/complexity",
@@ -8512,10 +9403,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8565,10 +9460,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8581,7 +9480,12 @@
],
"description": "Diff implementation",
"homepage": "https://github.com/sebastianbergmann/diff",
- "keywords": ["diff", "udiff", "unidiff", "unified diff"],
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
@@ -8624,10 +9528,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8636,7 +9544,11 @@
],
"description": "Provides functionality to handle HHVM/PHP environments",
"homepage": "http://www.github.com/sebastianbergmann/environment",
- "keywords": ["Xdebug", "environment", "hhvm"],
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
@@ -8651,16 +9563,16 @@
},
{
"name": "sebastian/exporter",
- "version": "4.0.4",
+ "version": "4.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
- "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
"shasum": ""
},
"require": {
@@ -8678,10 +9590,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8706,10 +9622,13 @@
],
"description": "Provides the functionality to export PHP variables for visualization",
"homepage": "https://www.github.com/sebastianbergmann/exporter",
- "keywords": ["export", "exporter"],
+ "keywords": [
+ "export",
+ "exporter"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
},
"funding": [
{
@@ -8717,7 +9636,7 @@
"type": "github"
}
],
- "time": "2021-11-11T14:18:36+00:00"
+ "time": "2022-09-14T06:03:37+00:00"
},
{
"name": "sebastian/global-state",
@@ -8752,10 +9671,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8764,7 +9687,9 @@
],
"description": "Snapshotting of global state",
"homepage": "http://www.github.com/sebastianbergmann/global-state",
- "keywords": ["global state"],
+ "keywords": [
+ "global state"
+ ],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
"source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
@@ -8805,10 +9730,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8859,10 +9788,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8910,10 +9843,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -8961,10 +9898,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -9020,10 +9961,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -9046,16 +9991,16 @@
},
{
"name": "sebastian/type",
- "version": "3.0.0",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad"
+ "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
- "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
+ "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
"shasum": ""
},
"require": {
@@ -9067,14 +10012,18 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "3.2-dev"
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -9086,7 +10035,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/3.0.0"
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
},
"funding": [
{
@@ -9094,7 +10043,7 @@
"type": "github"
}
],
- "time": "2022-03-15T09:54:48+00:00"
+ "time": "2022-09-12T14:47:03+00:00"
},
{
"name": "sebastian/version",
@@ -9120,10 +10069,14 @@
}
},
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Sebastian Bergmann",
@@ -9145,6 +10098,302 @@
],
"time": "2020-09-28T06:39:44+00:00"
},
+ {
+ "name": "spatie/backtrace",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/backtrace.git",
+ "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/backtrace/zipball/4ee7d41aa5268107906ea8a4d9ceccde136dbd5b",
+ "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "phpunit/phpunit": "^9.3",
+ "symfony/var-dumper": "^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Backtrace\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van de Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A better backtrace",
+ "homepage": "https://github.com/spatie/backtrace",
+ "keywords": [
+ "Backtrace",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/backtrace/issues",
+ "source": "https://github.com/spatie/backtrace/tree/1.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spatie",
+ "type": "github"
+ },
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
+ }
+ ],
+ "time": "2021-11-09T10:57:15+00:00"
+ },
+ {
+ "name": "spatie/flare-client-php",
+ "version": "1.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/flare-client-php.git",
+ "reference": "609903bd154ba3d71f5e23a91c3b431fa8f71868"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/609903bd154ba3d71f5e23a91c3b431fa8f71868",
+ "reference": "609903bd154ba3d71f5e23a91c3b431fa8f71868",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/pipeline": "^8.0|^9.0",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.2",
+ "symfony/http-foundation": "^5.0|^6.0",
+ "symfony/mime": "^5.2|^6.0",
+ "symfony/process": "^5.2|^6.0",
+ "symfony/var-dumper": "^5.2|^6.0"
+ },
+ "require-dev": {
+ "dms/phpunit-arraysubset-asserts": "^0.3.0",
+ "pestphp/pest": "^1.20",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/phpunit-snapshot-assertions": "^4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\FlareClient\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Send PHP errors to Flare",
+ "homepage": "https://github.com/spatie/flare-client-php",
+ "keywords": [
+ "exception",
+ "flare",
+ "reporting",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/flare-client-php/issues",
+ "source": "https://github.com/spatie/flare-client-php/tree/1.3.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-26T14:36:46+00:00"
+ },
+ {
+ "name": "spatie/ignition",
+ "version": "1.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/ignition.git",
+ "reference": "dd3d456779108d7078baf4e43f8c2b937d9794a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/ignition/zipball/dd3d456779108d7078baf4e43f8c2b937d9794a1",
+ "reference": "dd3d456779108d7078baf4e43f8c2b937d9794a1",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "monolog/monolog": "^2.0",
+ "php": "^8.0",
+ "spatie/flare-client-php": "^1.1",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.4",
+ "pestphp/pest": "^1.20",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "symfony/process": "^5.4|^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ignition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for PHP applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/ignition/issues",
+ "source": "https://github.com/spatie/ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2022-08-26T11:51:15+00:00"
+ },
+ {
+ "name": "spatie/laravel-ignition",
+ "version": "1.6.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-ignition.git",
+ "reference": "1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc",
+ "reference": "1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "illuminate/support": "^8.77|^9.27",
+ "monolog/monolog": "^2.3",
+ "php": "^8.0",
+ "spatie/flare-client-php": "^1.0.1",
+ "spatie/ignition": "^1.4.1",
+ "symfony/console": "^5.0|^6.0",
+ "symfony/var-dumper": "^5.0|^6.0"
+ },
+ "require-dev": {
+ "filp/whoops": "^2.14",
+ "livewire/livewire": "^2.8|dev-develop",
+ "mockery/mockery": "^1.4",
+ "nunomaduro/larastan": "^1.0",
+ "orchestra/testbench": "^6.23|^7.0",
+ "pestphp/pest": "^1.20",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/laravel-ray": "^1.27"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\LaravelIgnition\\IgnitionServiceProvider"
+ ],
+ "aliases": {
+ "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare"
+ }
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\LaravelIgnition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for Laravel applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/laravel-ignition/issues",
+ "source": "https://github.com/spatie/laravel-ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2023-01-03T19:28:04+00:00"
+ },
{
"name": "theseer/tokenizer",
"version": "1.2.1",
@@ -9167,10 +10416,14 @@
},
"type": "library",
"autoload": {
- "classmap": ["src/"]
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
- "license": ["BSD-3-Clause"],
+ "license": [
+ "BSD-3-Clause"
+ ],
"authors": [
{
"name": "Arne Blankerts",
diff --git a/config/activitylog.php b/config/activitylog.php
new file mode 100644
index 00000000..5f6afcfa
--- /dev/null
+++ b/config/activitylog.php
@@ -0,0 +1,52 @@
+ env('ACTIVITY_LOGGER_ENABLED', true),
+
+ /*
+ * When the clean-command is executed, all recording activities older than
+ * the number of days specified here will be deleted.
+ */
+ 'delete_records_older_than_days' => 365,
+
+ /*
+ * If no log name is passed to the activity() helper
+ * we use this default log name.
+ */
+ 'default_log_name' => 'default',
+
+ /*
+ * You can specify an auth driver here that gets user models.
+ * If this is null we'll use the current Laravel auth driver.
+ */
+ 'default_auth_driver' => null,
+
+ /*
+ * If set to true, the subject returns soft deleted models.
+ */
+ 'subject_returns_soft_deleted_models' => false,
+
+ /*
+ * This model will be used to log activity.
+ * It should implement the Spatie\Activitylog\Contracts\Activity interface
+ * and extend Illuminate\Database\Eloquent\Model.
+ */
+ 'activity_model' => \Spatie\Activitylog\Models\Activity::class,
+
+ /*
+ * This is the name of the table that will be created by the migration and
+ * used by the Activity model shipped with this package.
+ */
+ 'table_name' => 'activity_log',
+
+ /*
+ * This is the database connection that will be used by the migration and
+ * the Activity model shipped with this package. In case it's not set
+ * Laravel's database.default will be used instead.
+ */
+ 'database_connection' => env('ACTIVITY_LOGGER_DB_CONNECTION'),
+];
diff --git a/config/app.php b/config/app.php
index 19e226d8..208e87ba 100644
--- a/config/app.php
+++ b/config/app.php
@@ -1,8 +1,10 @@
'0.8.3.2',
+ 'version' => '0.9',
/*
|--------------------------------------------------------------------------
@@ -41,7 +43,7 @@ return [
|
*/
- 'debug' => (bool)env('APP_DEBUG', false),
+ 'debug' => (bool) env('APP_DEBUG', false),
/*
|--------------------------------------------------------------------------
@@ -71,7 +73,6 @@ return [
'timezone' => env('APP_TIMEZONE', 'UTC'),
-
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
@@ -83,7 +84,7 @@ return [
|
*/
- 'locale' => "en",
+ 'locale' => 'en',
/*
|--------------------------------------------------------------------------
@@ -96,8 +97,7 @@ return [
|
*/
- 'available_locales' => array_map('basename', preg_replace('/\\.[^.\\s]{3,4}$/', '', glob(resource_path() . "/lang/*.json", GLOB_BRACE))),
-
+ 'available_locales' => array_map('basename', preg_replace('/\\.[^.\\s]{3,4}$/', '', glob(base_path("lang").'/*.json', GLOB_BRACE))),
/*
|--------------------------------------------------------------------------
@@ -140,6 +140,24 @@ return [
'cipher' => 'AES-256-CBC',
+ /*
+ |--------------------------------------------------------------------------
+ | Maintenance Mode Driver
+ |--------------------------------------------------------------------------
+ |
+ | These configuration options determine the driver used to determine and
+ | manage Laravel's "maintenance mode" status. The "cache" driver will
+ | allow maintenance mode to be controlled across multiple machines.
+ |
+ | Supported drivers: "file", "cache"
+ |
+ */
+
+ 'maintenance' => [
+ 'driver' => 'file',
+ // 'store' => 'redis',
+ ],
+
/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
@@ -179,7 +197,6 @@ return [
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
-
/*
* Package Service Providers...
*/
@@ -196,7 +213,6 @@ return [
KKomelin\TranslatableStringExporter\Providers\ExporterServiceProvider::class,
-
],
/*
@@ -210,46 +226,8 @@ return [
|
*/
- 'aliases' => [
-
- 'App' => Illuminate\Support\Facades\App::class,
- 'Arr' => Illuminate\Support\Arr::class,
- 'Artisan' => Illuminate\Support\Facades\Artisan::class,
- 'Auth' => Illuminate\Support\Facades\Auth::class,
- 'Blade' => Illuminate\Support\Facades\Blade::class,
- 'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
- 'Bus' => Illuminate\Support\Facades\Bus::class,
- 'Cache' => Illuminate\Support\Facades\Cache::class,
- 'Config' => Illuminate\Support\Facades\Config::class,
- 'Cookie' => Illuminate\Support\Facades\Cookie::class,
- 'Crypt' => Illuminate\Support\Facades\Crypt::class,
- 'DB' => Illuminate\Support\Facades\DB::class,
- 'Eloquent' => Illuminate\Database\Eloquent\Model::class,
- 'Event' => Illuminate\Support\Facades\Event::class,
- 'File' => Illuminate\Support\Facades\File::class,
- 'Gate' => Illuminate\Support\Facades\Gate::class,
- 'Hash' => Illuminate\Support\Facades\Hash::class,
- 'Http' => Illuminate\Support\Facades\Http::class,
- 'Lang' => Illuminate\Support\Facades\Lang::class,
- 'Log' => Illuminate\Support\Facades\Log::class,
- 'Mail' => Illuminate\Support\Facades\Mail::class,
- 'Notification' => Illuminate\Support\Facades\Notification::class,
- 'Password' => Illuminate\Support\Facades\Password::class,
- 'Queue' => Illuminate\Support\Facades\Queue::class,
- 'Redirect' => Illuminate\Support\Facades\Redirect::class,
- // 'Redis' => Illuminate\Support\Facades\Redis::class,
- 'Request' => Illuminate\Support\Facades\Request::class,
- 'Response' => Illuminate\Support\Facades\Response::class,
- 'Route' => Illuminate\Support\Facades\Route::class,
- 'Schema' => Illuminate\Support\Facades\Schema::class,
- 'Session' => Illuminate\Support\Facades\Session::class,
- 'Storage' => Illuminate\Support\Facades\Storage::class,
- 'Str' => Illuminate\Support\Str::class,
- 'URL' => Illuminate\Support\Facades\URL::class,
- 'Validator' => Illuminate\Support\Facades\Validator::class,
- 'View' => Illuminate\Support\Facades\View::class,
+ 'aliases' => Facade::defaultAliases()->merge([
'DataTables' => Yajra\DataTables\Facades\DataTables::class,
-
- ],
+ ])->toArray(),
];
diff --git a/config/auth.php b/config/auth.php
index ba1a4d8c..963c5ee7 100644
--- a/config/auth.php
+++ b/config/auth.php
@@ -31,7 +31,7 @@ return [
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
- | Supported: "session", "token"
+ | Supported: "session"
|
*/
@@ -86,7 +86,7 @@ return [
| than one user table or model in the application and you want to have
| separate password reset settings based on the specific user types.
|
- | The expire time is the number of minutes that the reset token should be
+ | The expire time is the number of minutes that each reset token will be
| considered valid. This security feature keeps tokens short-lived so
| they have less time to be guessed. You may change this as needed.
|
diff --git a/config/broadcasting.php b/config/broadcasting.php
index ef208598..9e4d4aa4 100644
--- a/config/broadcasting.php
+++ b/config/broadcasting.php
@@ -11,7 +11,7 @@ return [
| framework when an event needs to be broadcast. You may set this to
| any of the connections defined in the "connections" array below.
|
- | Supported: "pusher", "redis", "log", "null"
+ | Supported: "pusher", "ably", "redis", "log", "null"
|
*/
@@ -36,8 +36,14 @@ return [
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
- 'cluster' => env('PUSHER_APP_CLUSTER'),
- 'useTLS' => true,
+ 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com',
+ 'port' => env('PUSHER_PORT', 443),
+ 'scheme' => env('PUSHER_SCHEME', 'https'),
+ 'encrypted' => true,
+ 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https',
+ ],
+ 'client_options' => [
+ // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html
],
],
diff --git a/config/cache.php b/config/cache.php
index e32a2fd3..33bb2954 100644
--- a/config/cache.php
+++ b/config/cache.php
@@ -27,7 +27,7 @@ return [
| same cache driver to group types of items stored in your caches.
|
| Supported drivers: "apc", "array", "database", "file",
- | "memcached", "redis", "dynamodb", "null"
+ | "memcached", "redis", "dynamodb", "octane", "null"
|
*/
@@ -88,6 +88,10 @@ return [
'endpoint' => env('DYNAMODB_ENDPOINT'),
],
+ 'octane' => [
+ 'driver' => 'octane',
+ ],
+
],
/*
@@ -95,12 +99,12 @@ return [
| Cache Key Prefix
|--------------------------------------------------------------------------
|
- | When utilizing a RAM based store such as APC or Memcached, there might
- | be other applications utilizing the same cache. So, we'll specify a
- | value to get prefixed to all our keys so we can avoid collisions.
+ | When utilizing the APC, database, memcached, Redis, or DynamoDB cache
+ | stores there might be other applications using the same cache. For
+ | that reason, you may prefix every cache key to avoid collisions.
|
*/
- 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
+ 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
];
diff --git a/config/currency_codes.php b/config/currency_codes.php
index 6fee59c7..5c3800f4 100644
--- a/config/currency_codes.php
+++ b/config/currency_codes.php
@@ -1,5 +1,5 @@
'utf8',
'prefix' => '',
'prefix_indexes' => true,
- 'schema' => 'public',
+ 'search_path' => 'public',
'sslmode' => 'prefer',
],
diff --git a/config/filesystems.php b/config/filesystems.php
index 2f9c7e7c..f7483fdf 100644
--- a/config/filesystems.php
+++ b/config/filesystems.php
@@ -13,7 +13,7 @@ return [
|
*/
- 'default' => env('FILESYSTEM_DRIVER', 'local'),
+ 'default' => env('FILESYSTEM_DISK', 'local'),
/*
|--------------------------------------------------------------------------
@@ -22,7 +22,7 @@ return [
|
| Here you may configure as many filesystem "disks" as you wish, and you
| may even configure multiple disks of the same driver. Defaults have
- | been setup for each driver as an example of the required options.
+ | been set up for each driver as an example of the required values.
|
| Supported Drivers: "local", "ftp", "sftp", "s3"
|
@@ -33,6 +33,7 @@ return [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
+ 'throw' => false,
],
'logs' => [
@@ -45,9 +46,9 @@ return [
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
+ 'throw' => false,
],
-
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
@@ -56,6 +57,8 @@ return [
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
+ 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
+ 'throw' => false,
],
],
diff --git a/config/hashing.php b/config/hashing.php
index 84257708..bcd3be4c 100644
--- a/config/hashing.php
+++ b/config/hashing.php
@@ -44,9 +44,9 @@ return [
*/
'argon' => [
- 'memory' => 1024,
- 'threads' => 2,
- 'time' => 2,
+ 'memory' => 65536,
+ 'threads' => 1,
+ 'time' => 4,
],
];
diff --git a/config/invoices.php b/config/invoices.php
index 772ef1fd..7944c13d 100644
--- a/config/invoices.php
+++ b/config/invoices.php
@@ -13,13 +13,13 @@ return [
],
'serial_number' => [
- 'series' => 'AA',
+ 'series' => 'AA',
'sequence' => 1,
/*
* Sequence will be padded accordingly, for ex. 00001
*/
'sequence_padding' => 5,
- 'delimiter' => '.',
+ 'delimiter' => '.',
/*
* Supported tags {SERIES}, {DELIMITER}, {SEQUENCE}
* Example: AA.00001
@@ -36,7 +36,7 @@ return [
* Example: Amount in words: Eight hundred fifty thousand sixty-eight EUR and fifteen ct.
*/
'fraction' => 'ct.',
- 'symbol' => '€',
+ 'symbol' => '€',
/*
* Example: 19.00
*/
@@ -59,7 +59,7 @@ return [
'paper' => [
// A4 = 210 mm x 297 mm = 595 pt x 842 pt
- 'size' => 'a4',
+ 'size' => 'a4',
'orientation' => 'portrait',
],
@@ -78,11 +78,11 @@ return [
* Default attributes for Seller::class
*/
'attributes' => [
- 'name' => 'Towne, Smith and Ebert',
- 'address' => '89982 Pfeffer Falls Damianstad, CO 66972-8160',
- 'code' => '41-1985581',
- 'vat' => '123456789',
- 'phone' => '760-355-3930',
+ 'name' => 'Towne, Smith and Ebert',
+ 'address' => '89982 Pfeffer Falls Damianstad, CO 66972-8160',
+ 'code' => '41-1985581',
+ 'vat' => '123456789',
+ 'phone' => '760-355-3930',
'custom_fields' => [
/*
* Custom attributes for Seller::class
diff --git a/config/logging.php b/config/logging.php
index 6aa77fe2..5aa1dbb7 100644
--- a/config/logging.php
+++ b/config/logging.php
@@ -19,6 +19,22 @@ return [
'default' => env('LOG_CHANNEL', 'stack'),
+ /*
+ |--------------------------------------------------------------------------
+ | Deprecations Log Channel
+ |--------------------------------------------------------------------------
+ |
+ | This option controls the log channel that should be used to log warnings
+ | regarding deprecated PHP and library features. This allows you to get
+ | your application ready for upcoming major versions of dependencies.
+ |
+ */
+
+ 'deprecations' => [
+ 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
+ 'trace' => false,
+ ],
+
/*
|--------------------------------------------------------------------------
| Log Channels
@@ -65,15 +81,17 @@ return [
'papertrail' => [
'driver' => 'monolog',
'level' => env('LOG_LEVEL', 'debug'),
- 'handler' => SyslogUdpHandler::class,
+ 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class),
'handler_with' => [
'host' => env('PAPERTRAIL_URL'),
'port' => env('PAPERTRAIL_PORT'),
+ 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'),
],
],
'stderr' => [
'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
'handler' => StreamHandler::class,
'formatter' => env('LOG_STDERR_FORMATTER'),
'with' => [
diff --git a/config/mail.php b/config/mail.php
index 3addd6aa..534395a3 100644
--- a/config/mail.php
+++ b/config/mail.php
@@ -29,7 +29,7 @@ return [
| mailers below. You are free to add additional mailers as required.
|
| Supported: "smtp", "sendmail", "mailgun", "ses",
- | "postmark", "log", "array"
+ | "postmark", "log", "array", "failover"
|
*/
@@ -42,25 +42,42 @@ return [
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'timeout' => null,
- 'auth_mode' => null,
+ 'local_domain' => env('MAIL_EHLO_DOMAIN'),
],
- // 'ses' => [
- // 'transport' => 'ses',
- // ],
- //
- // 'mailgun' => [
- // 'transport' => 'mailgun',
- // ],
- //
- // 'postmark' => [
- // 'transport' => 'postmark',
- // ],
- //
- // 'sendmail' => [
- // 'transport' => 'sendmail',
- // 'path' => '/usr/sbin/sendmail -bs',
- // ],
+ 'ses' => [
+ 'transport' => 'ses',
+ ],
+
+ 'mailgun' => [
+ 'transport' => 'mailgun',
+ ],
+
+ 'postmark' => [
+ 'transport' => 'postmark',
+ ],
+
+ 'sendmail' => [
+ 'transport' => 'sendmail',
+ 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
+ ],
+
+ 'log' => [
+ 'transport' => 'log',
+ 'channel' => env('MAIL_LOG_CHANNEL'),
+ ],
+
+ 'array' => [
+ 'transport' => 'array',
+ ],
+
+ 'failover' => [
+ 'transport' => 'failover',
+ 'mailers' => [
+ 'smtp',
+ 'log',
+ ],
+ ],
],
/*
diff --git a/config/queue.php b/config/queue.php
index 12222966..25ea5a81 100644
--- a/config/queue.php
+++ b/config/queue.php
@@ -39,6 +39,7 @@ return [
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
+ 'after_commit' => false,
],
'beanstalkd' => [
@@ -47,6 +48,7 @@ return [
'queue' => 'default',
'retry_after' => 90,
'block_for' => 0,
+ 'after_commit' => false,
],
'sqs' => [
@@ -54,9 +56,10 @@ return [
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
- 'queue' => env('SQS_QUEUE', 'your-queue-name'),
+ 'queue' => env('SQS_QUEUE', 'default'),
'suffix' => env('SQS_SUFFIX'),
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'after_commit' => false,
],
'redis' => [
@@ -65,6 +68,7 @@ return [
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
+ 'after_commit' => false,
],
],
diff --git a/config/recaptcha.php b/config/recaptcha.php
index be52269f..ce76c3e1 100644
--- a/config/recaptcha.php
+++ b/config/recaptcha.php
@@ -14,134 +14,119 @@
return [
/**
- *
* The site key
* get site key @ www.google.com/recaptcha/admin
- *
*/
- 'api_site_key' => env('RECAPTCHA_SITE_KEY', ''),
+ 'api_site_key' => env('RECAPTCHA_SITE_KEY', ''),
/**
- *
* The secret key
* get secret key @ www.google.com/recaptcha/admin
- *
*/
- 'api_secret_key' => env('RECAPTCHA_SECRET_KEY', ''),
+ 'api_secret_key' => env('RECAPTCHA_SECRET_KEY', ''),
/**
- *
* ReCATCHA version
* Supported: "v2", "invisible", "v3",
*
* get more info @ https://developers.google.com/recaptcha/docs/versions
- *
*/
- 'version' => 'v2',
+ 'version' => 'v2',
/**
- *
* The curl timout in seconds to validate a recaptcha token
+ *
* @since v3.5.0
- *
*/
- 'curl_timeout' => 10,
+ 'curl_timeout' => 10,
/**
- *
* IP addresses for which validation will be skipped
- *
*/
- 'skip_ip' => [],
+ 'skip_ip' => [],
/**
- *
* Default route called to check the Google reCAPTCHA token
- * @since v3.2.0
*
+ * @since v3.2.0
*/
- 'default_validation_route' => 'biscolab-recaptcha/validate',
+ 'default_validation_route' => 'biscolab-recaptcha/validate',
/**
- *
* The name of the parameter used to send Google reCAPTCHA token to verify route
- * @since v3.2.0
*
+ * @since v3.2.0
*/
'default_token_parameter_name' => 'token',
/**
- *
* The default Google reCAPTCHA language code
* It has no effect with v3
+ *
* @see https://developers.google.com/recaptcha/docs/language
* @since v3.6.0
- *
*/
- 'default_language' => null,
+ 'default_language' => null,
/**
- *
* The default form ID. Only for "invisible" reCAPTCHA
- * @since v4.0.0
*
+ * @since v4.0.0
*/
- 'default_form_id' => 'biscolab-recaptcha-invisible-form',
+ 'default_form_id' => 'biscolab-recaptcha-invisible-form',
/**
- *
* Deferring the render can be achieved by specifying your onload callback function and adding parameters to the JavaScript resource.
* It has no effect with v3 and invisible
+ *
* @see https://developers.google.com/recaptcha/docs/display#explicit_render
* @since v4.0.0
* Supported true, false
- *
*/
- 'explicit' => false,
+ 'explicit' => false,
/**
- *
* Set API domain. You can use "www.recaptcha.net" in case "www.google.com" is not accessible.
* (no check will be made on the entered value)
+ *
* @see https://developers.google.com/recaptcha/docs/faq#can-i-use-recaptcha-globally
* @since v4.3.0
* Default 'www.google.com' (ReCaptchaBuilder::DEFAULT_RECAPTCHA_API_DOMAIN)
- *
*/
- 'api_domain' => 'www.google.com',
+ 'api_domain' => 'www.google.com',
/**
- *
* g-recaptcha tag attributes and grecaptcha.render parameters (v2 only)
+ *
* @see https://developers.google.com/recaptcha/docs/display#render_param
* @since v4.0.0
*/
- 'tag_attributes' => [
+ 'tag_attributes' => [
/**
* The color theme of the widget.
* Supported "light", "dark"
*/
- 'theme' => 'dark',
+ 'theme' => 'dark',
/**
* The size of the widget.
* Supported "normal", "compact"
*/
- 'size' => 'normal',
+ 'size' => 'normal',
/**
* The tabindex of the widget and challenge.
* If other elements in your page use tabindex, it should be set to make user navigation easier.
*/
- 'tabindex' => 0,
+ 'tabindex' => 0,
/**
* The name of your callback function, executed when the user submits a successful response.
* The g-recaptcha-response token is passed to your callback.
* DO NOT SET "biscolabOnloadCallback"
*/
- 'callback' => null,
+ 'callback' => null,
/**
* The name of your callback function, executed when the reCAPTCHA response expires and the user needs to re-verify.
@@ -154,6 +139,6 @@ return [
* If you specify a function here, you are responsible for informing the user that they should retry.
* DO NOT SET "biscolabOnloadCallback"
*/
- 'error-callback' => null,
- ]
+ 'error-callback' => null,
+ ],
];
diff --git a/config/services.php b/config/services.php
index 5cfe5840..aedb7007 100644
--- a/config/services.php
+++ b/config/services.php
@@ -18,6 +18,7 @@ return [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
+ 'scheme' => 'https',
],
'postmark' => [
@@ -33,10 +34,10 @@ return [
'discord' => [
'client_id' => env('DISCORD_CLIENT_ID'),
'client_secret' => env('DISCORD_CLIENT_SECRET'),
- 'redirect' => env('APP_URL' , 'http://localhost') . "/auth/callback",
+ 'redirect' => env('APP_URL', 'http://localhost').'/auth/callback',
// optional
- 'allow_gif_avatars' => (bool)env('DISCORD_AVATAR_GIF', true),
+ 'allow_gif_avatars' => (bool) env('DISCORD_AVATAR_GIF', true),
'avatar_default_extension' => env('DISCORD_EXTENSION_DEFAULT', 'jpg'), // only pick from jpg, png, webp
],
diff --git a/config/session.php b/config/session.php
index a9ea6ba7..8fed97c0 100644
--- a/config/session.php
+++ b/config/session.php
@@ -31,7 +31,7 @@ return [
|
*/
- 'lifetime' => env('SESSION_LIFETIME', 240),
+ 'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
@@ -72,7 +72,7 @@ return [
|
*/
- 'connection' => env('SESSION_CONNECTION', null),
+ 'connection' => env('SESSION_CONNECTION'),
/*
|--------------------------------------------------------------------------
@@ -100,7 +100,7 @@ return [
|
*/
- 'store' => env('SESSION_STORE', null),
+ 'store' => env('SESSION_STORE'),
/*
|--------------------------------------------------------------------------
@@ -155,7 +155,7 @@ return [
|
*/
- 'domain' => env('SESSION_DOMAIN', null),
+ 'domain' => env('SESSION_DOMAIN'),
/*
|--------------------------------------------------------------------------
@@ -164,7 +164,7 @@ return [
|
| By setting this option to true, session cookies will only be sent back
| to the server if the browser has a HTTPS connection. This will keep
- | the cookie from being sent to you if it can not be done securely.
+ | the cookie from being sent to you when it can't be done securely.
|
*/
diff --git a/config/theme.php b/config/theme.php
new file mode 100644
index 00000000..6cabba75
--- /dev/null
+++ b/config/theme.php
@@ -0,0 +1,34 @@
+ null,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Parent Theme
+ |--------------------------------------------------------------------------
+ |
+ | This is a parent theme for the theme specified in the active config
+ | option. It works like the WordPress style theme hierarchy, if the blade
+ | file is not found in the currently active theme, then it will look for it
+ | in the parent theme.
+ */
+ 'parent' => "default",
+
+ /*
+ |--------------------------------------------------------------------------
+ | Base Path
+ |--------------------------------------------------------------------------
+ |
+ | The base path where all the themes are located.
+ */
+ 'base_path' => base_path('themes')
+];
diff --git a/config/trustedproxy.php b/config/trustedproxy.php
index 8cfd785e..dc46c31b 100644
--- a/config/trustedproxy.php
+++ b/config/trustedproxy.php
@@ -1,5 +1,7 @@
\Illuminate\Http\Request::HEADER_X_FORWARDED_ALL,
-];
\ No newline at end of file
+ 'headers' => \Illuminate\Http\Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO | Request::HEADER_X_FORWARDED_AWS_ELB,
+];
diff --git a/database/factories/ApplicationApiFactory.php b/database/factories/ApplicationApiFactory.php
index 13c666db..c85149ae 100644
--- a/database/factories/ApplicationApiFactory.php
+++ b/database/factories/ApplicationApiFactory.php
@@ -2,18 +2,10 @@
namespace Database\Factories;
-use App\Models\ApplicationApi;
use Illuminate\Database\Eloquent\Factories\Factory;
class ApplicationApiFactory extends Factory
{
- /**
- * The name of the factory's corresponding model.
- *
- * @var string
- */
- protected $model = ApplicationApi::class;
-
/**
* Define the model's default state.
*
@@ -22,7 +14,7 @@ class ApplicationApiFactory extends Factory
public function definition()
{
return [
- 'memo' => $this->faker->word()
+ 'memo' => $this->faker->word(),
];
}
}
diff --git a/database/factories/DiscordUserFactory.php b/database/factories/DiscordUserFactory.php
index e4a7345b..760aaad7 100644
--- a/database/factories/DiscordUserFactory.php
+++ b/database/factories/DiscordUserFactory.php
@@ -2,20 +2,12 @@
namespace Database\Factories;
-use App\Models\DiscordUser;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class DiscordUserFactory extends Factory
{
- /**
- * The name of the factory's corresponding model.
- *
- * @var string
- */
- protected $model = DiscordUser::class;
-
/**
* Define the model's default state.
*
@@ -24,18 +16,18 @@ class DiscordUserFactory extends Factory
public function definition()
{
return [
- 'id' => $this->faker->numberBetween(186902438396035072 , 986902438396035072),
+ 'id' => $this->faker->numberBetween(186902438396035072, 986902438396035072),
'user_id' => function () {
return User::factory()->create()->id;
},
- 'username' => $this->faker->userName,
- 'avatar' => $this->faker->uuid,
+ 'username' => $this->faker->userName(),
+ 'avatar' => $this->faker->uuid(),
'discriminator' => $this->faker->randomNumber(4),
- 'email' => $this->faker->safeEmail,
- 'verified' => $this->faker->boolean,
+ 'email' => $this->faker->safeEmail(),
+ 'verified' => $this->faker->boolean(),
'public_flags' => $this->faker->randomNumber(1),
'locale' => Str::random(2),
- 'mfa_enabled' => $this->faker->boolean,
+ 'mfa_enabled' => $this->faker->boolean(),
'premium_type' => $this->faker->randomNumber(1),
];
}
diff --git a/database/factories/PaymentFactory.php b/database/factories/PaymentFactory.php
index ad85e725..5a6312a2 100644
--- a/database/factories/PaymentFactory.php
+++ b/database/factories/PaymentFactory.php
@@ -2,20 +2,12 @@
namespace Database\Factories;
-use App\Models\Payment;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class PaymentFactory extends Factory
{
- /**
- * The name of the factory's corresponding model.
- *
- * @var string
- */
- protected $model = Payment::class;
-
/**
* Define the model's default state.
*
@@ -27,11 +19,11 @@ class PaymentFactory extends Factory
'payment_id' => Str::random(30),
'payer_id' => Str::random(30),
'user_id' => User::factory(),
- 'type' => "Credits",
- 'status' => "Completed",
+ 'type' => 'Credits',
+ 'status' => 'Completed',
'amount' => $this->faker->numberBetween(10, 10000),
'price' => $this->faker->numerify('##.##'),
- 'currency_code' => ['EUR', 'USD'][rand(0,1)],
+ 'currency_code' => ['EUR', 'USD'][rand(0, 1)],
'payer' => '{}',
];
}
diff --git a/database/factories/ProductFactory.php b/database/factories/ProductFactory.php
index 323317cb..abf3ae48 100644
--- a/database/factories/ProductFactory.php
+++ b/database/factories/ProductFactory.php
@@ -2,18 +2,10 @@
namespace Database\Factories;
-use App\Models\Product;
use Illuminate\Database\Eloquent\Factories\Factory;
class ProductFactory extends Factory
{
- /**
- * The name of the factory's corresponding model.
- *
- * @var string
- */
- protected $model = Product::class;
-
/**
* Define the model's default state.
*
@@ -22,12 +14,12 @@ class ProductFactory extends Factory
public function definition()
{
return [
- 'name' => $this->faker->name,
+ 'name' => $this->faker->name(),
'description' => $this->faker->text(60),
- 'price' => $this->faker->numberBetween(0 , 1000),
- 'memory' => $this->faker->numberBetween(32 , 1024),
- 'disk' => $this->faker->numberBetween(500 , 5000),
- 'databases' => $this->faker->numberBetween(1 , 10)
+ 'price' => $this->faker->numberBetween(0, 1000),
+ 'memory' => $this->faker->numberBetween(32, 1024),
+ 'disk' => $this->faker->numberBetween(500, 5000),
+ 'databases' => $this->faker->numberBetween(1, 10),
];
}
}
diff --git a/database/factories/ServerFactory.php b/database/factories/ServerFactory.php
index b15e981c..96c8e586 100644
--- a/database/factories/ServerFactory.php
+++ b/database/factories/ServerFactory.php
@@ -3,19 +3,11 @@
namespace Database\Factories;
use App\Models\Product;
-use App\Models\Server;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class ServerFactory extends Factory
{
- /**
- * The name of the factory's corresponding model.
- *
- * @var string
- */
- protected $model = Server::class;
-
/**
* Define the model's default state.
*
@@ -24,11 +16,11 @@ class ServerFactory extends Factory
public function definition()
{
return [
- 'name' => $this->faker->name,
+ 'name' => $this->faker->name(),
'description' => $this->faker->text(60),
'identifier' => Str::random(30),
- 'pterodactyl_id' => $this->faker->numberBetween(1000000,1000000000),
- 'product_id' => Product::factory()
+ 'pterodactyl_id' => $this->faker->numberBetween(1000000, 1000000000),
+ 'product_id' => Product::factory(),
];
}
}
diff --git a/database/factories/UsefulLinkFactory.php b/database/factories/UsefulLinkFactory.php
index 1bfde967..5c7722c7 100644
--- a/database/factories/UsefulLinkFactory.php
+++ b/database/factories/UsefulLinkFactory.php
@@ -2,18 +2,10 @@
namespace Database\Factories;
-use App\Models\UsefulLink;
use Illuminate\Database\Eloquent\Factories\Factory;
class UsefulLinkFactory extends Factory
{
- /**
- * The name of the factory's corresponding model.
- *
- * @var string
- */
- protected $model = UsefulLink::class;
-
/**
* Define the model's default state.
*
@@ -24,8 +16,8 @@ class UsefulLinkFactory extends Factory
return [
'icon' => 'fas fa-user',
'title' => $this->faker->text(30),
- 'link' => $this->faker->url,
- 'description' => $this->faker->text,
+ 'link' => $this->faker->url(),
+ 'description' => $this->faker->text(),
];
}
}
diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php
index 822e4978..b0ae6fc6 100644
--- a/database/factories/UserFactory.php
+++ b/database/factories/UserFactory.php
@@ -2,19 +2,11 @@
namespace Database\Factories;
-use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class UserFactory extends Factory
{
- /**
- * The name of the factory's corresponding model.
- *
- * @var string
- */
- protected $model = User::class;
-
/**
* Define the model's default state.
*
@@ -23,14 +15,13 @@ class UserFactory extends Factory
public function definition()
{
return [
- 'name' => $this->faker->name,
- 'email' => $this->faker->unique()->safeEmail,
+ 'name' => $this->faker->name(),
+ 'email' => $this->faker->unique()->safeEmail(),
'credits' => $this->faker->numberBetween(0, 1500),
'last_seen' => $this->faker->dateTimeBetween(now(), '+30 days'),
'email_verified_at' => $this->faker->dateTimeBetween('-30 days', now()),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
- 'email_verified' => true,
];
}
}
diff --git a/database/factories/VoucherFactory.php b/database/factories/VoucherFactory.php
index 9a381296..02cbf614 100644
--- a/database/factories/VoucherFactory.php
+++ b/database/factories/VoucherFactory.php
@@ -23,12 +23,11 @@ class VoucherFactory extends Factory
public function definition()
{
return [
- 'memo' => $this->faker->word(),
- 'code' => Str::random(36),
- 'credits' => $this->faker->numberBetween(100, 1000),
- 'uses' => $this->faker->numberBetween(1, 1000),
- 'expires_at' => now()->addDays($this->faker->numberBetween(1, 90))->format('d-m-Y')
+ 'memo' => $this->faker->word(),
+ 'code' => Str::random(36),
+ 'credits' => $this->faker->numberBetween(100, 1000),
+ 'uses' => $this->faker->numberBetween(1, 1000),
+ 'expires_at' => now()->addDays($this->faker->numberBetween(1, 90))->format('d-m-Y'),
];
-
}
}
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
index d37bbc76..c28f40d8 100644
--- a/database/migrations/2014_10_12_000000_create_users_table.php
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -4,9 +4,10 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateUsersTable extends Migration
+return new class extends Migration
{
protected $defaultAvatar = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAgAElEQVR4Xu3dCbht5RgH8HUUGqRBqO6gwi1xhZIGlCYSUlGmkjGVaFJCSinNhWgwplCh2ayQoQxFGg0paUaDBlMcz+97+p9n3d05Z9179tn3nnP2Ws9znrP3XtO3vvf/zu/7rYHZs2cP/utf/6r++c9/Vv/973+rRzziEeVvcHCwfB8YGKjabfLOADoutNBChY7/+9//yp/viyyySPXoRz+6Gpg1a9bgf/7zn+rf//53IbqdAYCD223yzwB6BgBh6kc96lHVIx/5yGpg5syZg37MjoUXXrgFwOSn+RxPUAfAgw8+OMToRTJMmzZtEOf7i/iHFt9JgFYFTG40hK51moaufhuYPn36YB6x/PCQzo++AIp2m7wzgI5hbE8RZh+iORXQ+Xjhfr+3EmDyEj8E9z9qoPNpBmbMmDEYIj8MHQ+pgsk9Bf09+oj+4aQ8es+hAoZDTOsJTG4AdXp0nRL9YQCY3I/bjn5eZ6AFwLzO2BQ7vgXAFCPovD5OC4B5nbEpdnwLgClG0Hl9nBYA8zpjU+z4FgBTjKDz+jgtAOZ1xqbY8ZMeADJaIlr1IFb9u1qHRRddtJLlTH5D5tPm3GRBBUikSP3/xz/+Ua65xBJLlM+jbbnXZMXFpAdAklWdhMh3xEfov/zlL4XYyy23XKX+4d57762WXnrpavHFF69uu+22sg8A7FMoATB33313tdhii7UAmAzofliI86Gs5n333VeIueSSSxYJ8Pe//71UwwDFHXfcUT3wwAPVSiutVI65//77yz7FMYDw+Mc/vrrnnntaAExkAJSExkPEHu6//Spf7rrrrvJ/qaWWKtIAcbfZZptqlVVWqY466qjqN7/5TbXyyiuXY4DEeZEGrQqYwAhoAgARjssRVt0jm+BFL3pRteuuu1bPf/7zKxKCOvj0pz9dHX/88YX4j3vc4wqoSAXSoAXABAZAhjaSCkDQxz72sUWfz5o1q9p///2rl73sZeU0wKDvEdn/yy+/vEiDb3zjG0VFMAKVULUAmMAAaDICifGZM2dWr3nNa6o3vvGNhbtxPXsAMCJBIvIZgxdddFH1sY99rABhxowZLQAmMP0Lp47mBm677bbVDjvsUM2ePbs8BhXgnJRK+07U2+IJ+Pz73/++uuCCC6pDDjmkBcCCBADXjI7GsUSy74iGsxExNW9EuO1vf/tb0d+vfOUrq3e84x3Vc5/73CEut59IR2jnuYZrcQddy+d66RS74dprr61OOeWU6stf/nIxHnkT7hXVECBRJ67L7fTftXkUTXGCpv29nvsJHwcQiFlmmWUK4elzrhrChODx1xPweeYzn1m96U1vqrbYYosCGBtiIKxjnOvvpz/9aeHuv/71r9W+++5bjkfU2Ayuy2hERMS98MILq89//vPlPODxewAUW8EYAQQIeR3UTYJOIxGyBUADxE00X9xkm+j46Qw3RDXpJtHEb7XVVtXOO+9cLbvssoWQaXJxLqLjzt/97nfVkUceWZ155plDFbIISlLsueee1Ute8pIyIgQEAvfM+X4//fTTy/m//e1vi21hu/POO4ekgtgCF9PfrbfeWsY3kY3IBS4BmqqO66HciG/nIAoORdjNNtus2nvvvaunP/3p5XcEJSHqLiIQfeELX6g+8pGPFA5dccUVi2oBIoQGGMQGore+9a3lWjYSCHDqnx37qU99qjrssMOKRCKhjMMGdH4DUNdrJUADhzcBgB/PanccQsRvnz59evWsZz2r2mWXXap11123EBKRhXZ9RjjnIgAdfswxx1Q33HBDNW3atAIQx5Ia9qcM3meAI7oFidgQPgNeJM5jHvOYMhZqAbefcMIJ1ec+97kiMZ785CcXULqee99+++1lPK0EGGUGmhpPEMRWGhkHBgoAVlhhheotb3lLtdNOOxXuxckm2mdExIWIJrpHMhD7fnMNcX/cyvATG4g+d24kCw52PSJeXEC0EJfbACF9dgkd//CHP6xOPPHE6vvf/365XuyMuJwtALoAgMmMcYZo2223XfXud7+7EBAYEARxTDwuRLibbrqpcOVpp51WOJUedtxwngSOxrFA5D5J/uBkGwAKHG2//fbV8573vMrxjovrGDVjLF/96lerz3zmM8U+cM9kIFsAdAEAXMrwe/GLX1zttttu1XOe85xCTIQV148ljjB+/9KXvlTE/TXXXFNAQswHBKQNQvkfYxIxo7/9jw73e8Q9QFEdb3vb2woQfLY/QAAsQCBhbrnllurjH/94deqppxZbwDX6GgAmO3l4ojONCp3tZ6VVeWBgKD+PsIytF7zgBdUb3vCGEslDHMSMOI91jhDf/va3q6OPPrr6+c9/XvR2dHBTOrfBRClEfsITnlDUxY033lg94xnPqPbYY49iLCbDGJuDtABKG3UgdnD22WcPeSuZC/vr/fokReIJ7ue5ckyTimwaf9P+nnsBsYY9MIKGs3ALfe17dDZQZLGKNddcsxAdx+FWm0CMz8R8Jkmg5vDDD6/OOOOMQnTGIc4LMXB8N1vGLWz8xCc+sYxB7EBC6c1vfnP18pe/vEieAM39PBtAG4NoIon0s5/9bCjJZHxURAJZqUOIVwJYiUP0ujNrvgAAATxkCMlCR/h0rWYCAcIxuOvtb397sapNaKpzYoS5Fosedx100EFDq11kf66NCN1OYIiUNRSi8xNjYB9QTQxF0sn+ANRz+czj4IkwFMUGqCYA9jvgpBopQDA/MSa7Ae/cnNtzAJgoW8Sfh/PwHpy4NLEmwu+CMPvss0+J2zPC4kLFSEvyhqHFB//DH/5QOD6hXZwXNxA3EdvO6WZLriE99UDlWRDXGD2L8YkdvO997yvE9TxZgsW9SQzBKR4IwAom2e83YycZE9PwDO4FxAlzdzP+pnN7DoBwYdw5BEF8FvvNN99cJIPw7bve9a5qyy23LNxgQiMtTELWLuJuITxxaqITdzd5zouNELeQyHafbjbXRexEEmObGDdbI4RDXGDkdkpAJWcR/e4ZjMuzc09FEwHBmJWpmRdzRIo4x595aAokdfNsxc6oLxDR7cWGOz++e3xvyBY69Z1xtfvuu1eveMUrCjeYTBMXaz0+Oj9ewOUrX/lKIQYuNzkAgNtY2s4xef6bZPchAZqs8KZnNgZjcr0QB7F8T7jYMcbvN1FGgSlAYCfYZxwAmziDZ6fafvSjH1UHH3xwMS6Bg+53L/sQvm7rNI1zrPt7DoBYszjaQyU6xsCj51ddddXy8ESfY8JRCGmC+fMnn3xydeWVVxb3K7kB+02QyaQ+XDt+d7yDVAONdXKcFxsifn241H2TmwCMGHaOZyguv/zy1UYbbVQSTcLOyTY6FhAydjYB24DbGKC4r/vEU+hm/E3n9hwAMZZwvclhNEm6rLHGGmVsibXjbJ8TnmU0KdH61a9+VSYT4VOijdBZ2SwuYbjL/6gdYErApmkiRtrvev7ingFCQsyIntKx3DN5iEggYxdWFkNI/CBjQnAg8gzsGWqBlEuKOupwrGOfm/O6BsBwg8ykZXKgfK211iouXfxnho+JJMoRKqlbbtNHP/rR6ic/+UmZmCRiRnqYbq38uZmk0Y5pymWkBP3Zz352sXOoO9IOmJNSdkzUmudn5J577rllfurP31n4EunazTP0HAD0mbj9O9/5zqHyqvj7SeUiND0vkHPOOecUSZEoX5MRNNEBUI9heG51ByQgw5c6AATGZPIK5oJKBID3vve9c6zRNCkBQMzR4yx8D8kGYPVCN+IxmqRWHWMfY4mIrLuLoyF8ogMgnO55STrPKHdBGlILYh02mUXGJcBQAULKgkwkpa2zcCTfmyRQk3TouQSAZlG6DTfccMjAQ2AP/N3vfrf65Cc/WYIjuCF+v4d2jIly/mhbtxU13U5g0wQjfJpL4j1gCmoAI7zuda8rUuGpT31quZR5iI3ht0Q8m+4z1v09BwAXBwBe+tKXDoVLEf/AAw8s1n09YMIQJAJjG+CeJGpGesCJDgDc7Hl4LakVoPqoNhIRwTfddNPquOOOK8auOTAnJOPqq6/etRHbBIyeAwCHyY6RAImXC+PuuOOOlcDOk570pPLQCfawnlOcmUBP00N0s7/bZEsTAEkyRPZcnid2jzFnWV6fzzrrrOppT3vakGdEVahm5h0MZ+xFcjXdv2lueg4AXCwZwvqF7Oh3NsEVV1wxFNCJN4DjqQIgwAXxDpoeZKz7ew0AKkx9oGf32XPVu5D9hgkUnSbRZQ5EFgWU6p1JIXpdbU14ANB/jLxXvepVhQsMnijceOONq+uvv36odDqESPuWyaAziclebr0GQFrS0nOQeIVnSl7BsypSFUoGeEQH/he+8IVztKdPSAB0iqcgMpm+eAEMnUTrGHnq9kkALhAp4aEjElOnlzSxewgQiQwyioRd0xtQD/SMxU2K6knMwdh4FkLIidq5f6zzFJsaS7qHAdW4EtRKCXqsd+NCbGPlFrsXQruG65EIDGIRQ+e6lnkjATBAagWSkApojb1bI7ZrFdAtAEyMCUp1bsKfSbum5s+kqAUEFC4SfZq8eyTEWADgukBIUqWkDEGTm2e3pFyMakrQCgjFLjJ+0g1IADV2jPElYpkqpMQ1EsJOKrhvAZDFGBJuDcoR1WeTjgtwjHAyrhRVFC+47LLL5vCPxwIAQMK5rs1OkckDCEGYP/7xj0N9ASQOqeD/n/70pzIu1UHCu/H15QCErhGddHBssnyeBScnPZ74hTH3tQQwQdGL9QpgHINb6MJU+eAa5Vg8CJMunawnoBsJYPIRTq0ht1Ql8NVXX11qExApqWCAY7OIUGoyVaOomcRGShgP9cFqP+mkk6pvfetbJY4RNYLwyWWk8MPzxDboWwlAbKYAwmSSCNGz6a9Lo4UcAVvCpBLBMoSbb755VwAgATSCahPD9XT0XnvtVSKTVg5JQunPf/5z0dEaS+QzgBXBcXpqFhA4BSiMOi1qSW+TKsYNUCSJ68bG6WsJAAB0pi0p1+hQ3BG3UMpULCG2AX1Nb6+//vpdAcA9if9vfvObpRIJlwvTpuQ89QA4X8UP9xUhjRsAfvnLX1a//vWviw+/3nrrFY4OCH784x+XHAhVojglxaPxbqIW+hoA0ZHUQMCQ0m161m+XXHJJIXIKP4SORc0YYZtssklXAAAkUkQPge3YY4+t9ttvv2JjIDSjDgGlaiVxWOe2X/ziF0UVGAvuZiiuttpq5VxRT89DkpEsonykmfGnYynFK6RAXwMg7hbuII5T509/0sfCyJECVAFRLHDi2PFQAQiBaIpTeBziFQCHKMYGIGLysnNAQXQrSSMJgNM4U9xJkhgXNfH617++SAgif+utty5t5uH8NKo41v6+BgAxKCmCs5IHYEjhtve///1l0hINUz5GKhx66KFFnDqOBHCNWNWdUbLUCaYqOR1C8bdZ8VYCUZ5GDSjujM8PEIiLoPoEk77F4bp/SCGcn/qHlKipctIllKJPxqVuJsYiUNVtnhSwMAIB27hSTEKlJG4Q99j/KRUHMIm4OsYfLldKpSgiuXREs6jTZz/72bJ0i8840XkSKaMBIO5k3C8TSE/T6US7km7rBpEyjD+qIGKZuAYM9+UlMPw0oCCmfWkTy/oDniG1fVQJT8G1FLdoacs5iBrJZ7979y0ATABOS308t4/oP+KII4rRxyXTAZy8AYK95z3vKRMrIJTCy5EkQJIw6fyNmiG6AQjXr7322sX4QzBEBji6n34HMGVa8fVV9eDodA2n1q8exQQCksQzpLZRWZhqYBKNqmAUki59DwCE94cYJgfHXXfddaVQ4tWvfnUh0FVXXVUCLrKIiI9jTbKMWZMKwJ3pD0zzZ4is+whxqRX5CpztPq5tLO7nN4RMx7D7XXzxxUX8ZxFKnkk6eZwn3S1Y9Z3vfGdocQnA5VoCXlLE6SnoawkQTjDBaRSpu3p+15Ur6KO2QGqZa2USiXD6eDQVgPNFERE17VjUByJRM1w+HMlnZ9wlqENSAJgyNSVtyVaSSgCakrW4iVQLO4Y9w/ij/wGFBKAaqBHjFjfwPeXsqWDuWxWQUikTatIZVybJdyIepxHP6c8nWkUD6VAAYC802QAmHJBShpawrrp8ANTIyaVLG1cCUkDzxS9+sQDQeBBeuBh4UuSRtra0epFg6W/43ve+N7SMjHQvz4HqYNtI9/Iq0p3ctwBInz8LOz1zCEG8AgQi4D6umAWaROtY5Vmho8kGqJd1kwDAAgAIrssI4dTuWwAKyHBvAlLuLaKnhB3B2SGigOnwSbkWEZ6ilvQiGLtzrWJi/MDmXM/oWGNIxLOvVYCJimVu8ohR3JZFnUNABMdZH/zgB0t5NeOJtJALGE0C1N2nRIyyjgDpQbXgTGsA2NJngGhyBF/72tdK7YLv1hwgAYwjMQLcbF9Ku43F2D0Dj0K+wG84nCcAAHoFkzVMXUDfSoDU/yV3Xk8vh3jJh/MQSAANpCkl7zQC6dx6uZTvxD/dTO8iHq7k++M8zSeuSdWk9Sv/EdWCEww6dgSVwzdHvHQtBwiInNoG3E2NSQrpBwByncxsgCxFkyLYvlcBYwEAgiGsUHBnHKATAAERYiIE7tSPx5bwmwigoE2s/ywC6VjGoUWkRfIAx3ccjXhsB/9tVIJaBQBzP4CzX/QwZd84nMHpuukudq7Pfa0CxgsA9Tr5ugTwe4xAXIpQmk/EGqwmIv9PsmQVkDSW4nJuoICO9DOi4voNNtigGKckStYDSP4fQCLBSAzXTxEJl5DdQQXUy98QvwVAxytf6rVvCBgVkFU9qQCTKI07XBzA+c7LHz3tz/FCzOwInPihD32o+PhZiRSBU4CCUES+cLTj2Q2kh6ZWtkBUlusaH+7PK2YYkQDFDaQOHCN8bW0AwEkpV4pfWgDMJQBiA6Rlqg6AlFrFaAzxASUNqoh0/vnnF72Mo6kPsQU+u+/OAQwJIADgqkkOiRdkUSj5CK6h/YkBICCDkeHn/s4T+eP7R9czNLmbaYM3XvdqbYCHGkRHMgLrEmA4AMQGqAMg10oxpu/CujwGxMOR6vBl7Bh/CBivI6uGJnOnKIT+TtGodQqsTyjhg7vTxh2XFQgAU9SPzjcugLLYFQnjXsl41pehbb2AWv9bZ/nzcF6AY2QDxe/jBiaCWAdAzhXV04am2YKriYhsASI5PjwiImhqEf2OQ4WJ3Qc4xPNFDYExmTsGYhaQ8hvQWJbWK2iMU4xBoilxhnQFZxWQVgWMogLim5vIugTwOwAIBWeNoE4AIGTi9CYZ11sDWG5BEYj9adlC/KR/064GDAw7/jt3kTiP7WBlMq5eUsDOcS3xhAMOOKC4limDf+1rX1udd955xdMgiZxnSwdUXwOAHx0Cpo0qTSGqb5POZZ2bMG6b6hybghBBGhwoW5eiEscm/ZtVSRh/In6se8Rj3HkbSMrRhsqKOj4gDhCQFur0E/ThRn79618vIOJREPtEOwNVwipLxWt/0wCaWgcg5olk7aJUDlkXwHVSIMte6Yt6gIjDFH6EI02E9mhiE4ETYvWiJyFVhGV4SdYgQiJx9CzxG2Mr8X9LsCTtSzcT5cR/04shXTvEcF3WfRaalhbm68sNsAm4lMLGWVMIWEgaEodaYGjyZNL1zOOgZripfQsAhGeAsaoR1AQjokn8wQ9+UKpkEMkkpa06vjWwOM6WrBq1gFNxmes5B1HE5YECEVnyKUdvkgAASmTLQ+BkgaF0LqVvMcvAGQcweAaeAJdR7aD7GrPjSBSg9MzpM+hrACB8LHCiNmVWJkcGTU8AItUXZ8ZZ9HHKq9KKZXKpBQYbLkME54r8CcPaLDvL4nZuVvUcSfz7PW8PBQIqiZhW6CknkCggIMSecD+SQdpaniGvowFG40xdIXWWJti+BkAWQ0h0zKTQkwiewssUcsS6j/WNO9NTmAaLlHinpczkKirxyjjFnsK6pEUWnZwbCeAayRKmH0CJGNdOOXikkwAR1aIAlNTiElJfxuY+QJnGTwDMYld9DYAs146j84YNk5eIXAI60fOx9LNqV6xv3wHDcQy9LEerduADH/hAsc65gfzzuhhuWoSKBHCM+2YFk5SfCSIhchZ0SKjZWOh7qgBgEuyhrlzPOJ2X/sO+BoCJwBUpuUpghd7ku6er1uTWF1RIW1UaS10jFrpzk6gBKtxPN+sldA33TNNniDmSGsC1CkGoIpKDdAIwRCRFWPPGzKBk6RP77pmCFedlgQjSIOdFjaViqG+NQIRAPBOBw0xWauaynkAWgKyv2JmmUscmoIITs75AQsB1yZEVOvxGQqQgdTQbIF2/7AWfsyIoVWO8afi0j6j3PUZiGk95NBm7c9zf+WkXm9QSIImX+iQmHu+/wAcdzKdNUMfD86NZ+Ymf19O2aQlLanY0AiULONIxsS1G2t8kAUa799zsA0jPARjulZJzzwiEwAu4Ygp5i7nfqQoxjqwSNjf3GssxXa8P0AQADyB+zqePOKf7fFeEGXGahE0IZrJwVQI6Iz3cRAdAun8CtOQP/A78XENhZOliaiNShcoS82iKU4yF6HMwa7eLRTcBAMKlQYVD4yoBAAufxeyBs5BC6v/8lsKKNIdMVgAkkhn1kJBzVhRBfGlnNoAydRID8BFeqpvN0cut5xLAA2jrloRJxk4kzds2xMdjJAFKpEFW5ACMpq1JAiSxNFYANd2/aX/8/bi7eTcCIDAihZAVtkoYCU3Hy2ELPeUpT2mUgE33b9rfcwAgpuibVCxkJ3LnVe1y8zpnY5zhivpaeo71vRsbYEEDIG4mjk5IO4UjxLywtqXldRbzhBxPUgpiqT6qrxLWRMyx7O85ALhJXp4ka4cbSIS87AHaiT/VMkBCCmTdQMCZGyu9SQKMZVLG8xzPQM+TAMR93itsBRItbww9W95ZnG4hgAEA5/Zy6zkAIFgmjshHeFteBcfgS2UMjwAQ1M8LoOASHkRToGaiAwBBxQgAWuBI5FBZu4qhJMCoBZ9Tu0jyWXSC1Gx6/m7B0XMAeHAPwerX6wfVKdWOLx9Xia9tPQAZProxeYBuVEC3E9Tt+dHzQK3FXJuZfAfgp7GkvkyOQJJopfoDxnDspm7HMdL5XQOgaWCx8IkygQ/VNKpsZesi7hIk8bCOl3T5xCc+UerqqQ3Bl8T93S8hX9zfWQuYGETG1a2fTy1lUae8ICJL3jLUiHiSjchOx5DxZZ/fZBFJQEvEZ6lYxxh/7CLXlmlUfaTqGHAcE5A0zfNY9/ccAEmKpHnSA2nz4hWYlJRhZb29LKGCcDqGZd4UUzKKZORMmslyPLD4n7BvYvZ55479TUZg08QZr7+sGOL+eZl11gegv1MaDhxUF2BYRo76U4SK621ZdMp+n41ZrQLia4W3JT+Sl2E3jbGb/T0HQMKhJi4191KjxBvLV1k2zkixpP+2FFACgi4e6w1feumlpawqlbs4hCVNVbi2CGO4MNZ0tyI0/YQIbCwpMWfbJG4RYBoLogK4ohN9AGlq9UzGZ5yRZhpbVCbxiOxL6jggcWyvl8rtOQA8eOLxWUnTA7KGM6mCRMq1dNEAhwcHkOQCwi04RWMoyYDoKctGiHT+hPC5djfc4VwSJNk84ARMHM9IpcYQiNTi7VBxysiVrXmRpM3+1P8nwMUY5PV4bRx1FzUSglN7TRHQbp8r5/ccADgla+kSaanbA4aI/3gF7AP1dERgXvkWfYqgqdVX4OGlUlmDz/EBSfIIJA7CJO4w1gnLCiPOT+IpQZ30BwIg41baWdmZDcCpoHrVj7lQmKqm0YqinodEC4iSCU2lEanQ7Wvvmp675wAIkhHQ51TBZFHmcCxOM0HEp9U01NfZEkL1OSFSk6JEi7fAfQwQ6hm52AfdBlJcO4WaqfJN8SqQcutUAPNwbKx4Mf68BCrSg3vLnlGNJOLJJkh6OXrfmIEWeHPfrJ7aRMix7u85AMKFJjEWdVbqSmrUJCVTlgUgvV6OfjTBWVnTceEO1wAojR46cCzKSCQLtqgjwJ28h26TKe7heqQYtcNCZ5CyX/IyrCz1VjfsIrmIeNFOreIIKyaA8FldzPNkXcTYQSll79aDmRtQ9BwABpF35eB6QEhqNBZ6OCueQDifdc9lBIZ11lmnPE/EIg7JIguqfUwwt9GEi6lTMazxuGxzMxnDHYOQAEhMM/IATFmZ2kJt5vUt3IqTNZYqJZcHCVfXVz2LKkyRiDkBjKw4kpK2GMVjHX/TefMFAKMNoilfHxtCG5dAioBKCi5wiP0p1WJNM64s6sDeiJhNWDleSIzL+OAmP7WBKUvHhUS1fQzThGbF7bM8bcK3sQ+y4odgluXs6HlSaLRtQUcyJzwAEA8XIIyuHoUkLO2syoWr6nYCwiuu4DFYny+Wd2IEeQFDJENeS4MQwOR6WfIFwEghhhq7RNzCcdRUwGF/spaKTgWw3N8WL6EFwCgz0CQBsnATIiMQ4ij71ttHLSBGLOW6xU78Kzj58Ic/XApC86IHqiPXQjz9e6KUgIGoiInj3Yu4J+qpIbo72brkMKgwnyW0qB/SB2C5gylTa4rk9b0EaIrUEb0IEV8f5yIoguDIqIXYB/4n+MJeIBGsNG49wFT4pjIJ8ZKpi9VOz9ukafUSiOIlZA1g9DzDDYEBxXsBJLGsVySTGfVC4rhW1NNIPNACYGBgVB1pQpNHT3IEaACDdW7SdfpQDcmmxcBKcYUbiCKKs/PDERGX2g8kRDxJgqDazbl1av5tLPQUdcSI85taBmpGlFKzSELSAXTcvyaA9z0AmqxU3Mf9oqsRnBGY6t/U/yMci5yBljeIpOsnXMs3twGAZV9SIg5A2slIFHF7QEJMkoO6SDo2fQiikNw64t5vopckEqngj5uI6HllTIzLVgI0UXqE/YhBTNPzJpgYN8EIg8hZ0DkulKXfSASLOcXFSgbOuaQI8S0MK6LIXUN4NkXWCsgqYe5J9aSMW8xBy5d74nog4QmwI9gH4h6Dl00AAALgSURBVAPUj/OM2fjquYDhHrGVAA3AiMGF6xE+L1oAjMQBEkfwP/X2wsqIigAIGH86nUYIy1B0DXF710dQ4IjeToAKWEgNRaxUR7051XmuAWxJFAGDc927KZnTAmCMkmG406Jv63r3qKOOKquOBwh5V49jEniKJ5JmERID9/LjJamI+CwCFfWTGEK32cZxfPwxXWqBxwHGNOoRThoOAHQyi179neaUepYtLeUIj5BxJzV5cuv8adZAfG4hteP8LCMzN40r4/l8vbjWlAdAxDhwCCnjaETNGgRZWMLkSuQozBDJY3AieDicakgIO4Zd+hN7QZj5dc0pDwA6NoRjH/Ai2AYqkuhzwMDh3gSC40UPGZt5FxBiJ7OYpWwQJyVd84tQvbrPlAdA3vSB09OTz/JfffXVS/4esaWVBXTk57NgBWJLYsUjSP0eQmSxCuBoimT2inDjdd0pD4C4jiaMJEhpGmNQ5hAoiPqkpgMYv0XUp08RKBA8Yd4WAOMFw3G6znBGYN7uGVdNKDlGn7QxNy3VvkQ9Iqdkm6sooBPRj/jpYjbk4foix+lR5ttlprwEQCTER0QuXN7Zl1Ct7wCAqxl1AQeJ4HggCOfHbUyVURJL841aPbjRlAJAD+Znyl+yBcCUJ/HoD9gCoAXA9ME+n4O+fvxWAvQ1+auqBUALgFYF9DMGWgnQz9QXzOpcJSwFCp1Rrz6fp0n7+Elapcuos0ZxYMaMGYP5MdUyedqpEOqctJQbp4F30rC+gEYpmp05c+bD3EA7RkLMOI2rvcx8moFOid552zlUQB0dAJCFHefTWNvb9GAGQsOkrR8m5adNmzaYHx0U3R8p0FTX3oMxt5ccxxlAx06aZsGKwvBUQFKgaeHuNBzGcTztpRbADNQNelnQVEmpjxiYNWvWYGrqs6MFwAKgUg9vWQcAZsfoUtnS2wOzZ88eTLFE8t4BQA7u4djaS/d4BsLUKWTJQhx5N+L/AfjNYarLl7XXAAAAAElFTkSuQmCC';
+
/**
* Run the migrations.
*
@@ -39,4 +40,4 @@ class CreateUsersTable extends Migration
{
Schema::dropIfExists('users');
}
-}
+};
diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php
index 0ee0a36a..fcacb80b 100644
--- a/database/migrations/2014_10_12_100000_create_password_resets_table.php
+++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePasswordResetsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class CreatePasswordResetsTable extends Migration
{
Schema::dropIfExists('password_resets');
}
-}
+};
diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
index 6aa6d743..17191986 100644
--- a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
+++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateFailedJobsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -33,4 +33,4 @@ class CreateFailedJobsTable extends Migration
{
Schema::dropIfExists('failed_jobs');
}
-}
+};
diff --git a/database/migrations/2021_02_06_182407_create_notifications_table.php b/database/migrations/2021_02_06_182407_create_notifications_table.php
index 9797596d..4357c9ef 100644
--- a/database/migrations/2021_02_06_182407_create_notifications_table.php
+++ b/database/migrations/2021_02_06_182407_create_notifications_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateNotificationsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -32,4 +32,4 @@ class CreateNotificationsTable extends Migration
{
Schema::dropIfExists('notifications');
}
-}
+};
diff --git a/database/migrations/2021_02_07_173938_create_locations_table.php b/database/migrations/2021_02_07_173938_create_locations_table.php
index 921f766a..cbb83909 100644
--- a/database/migrations/2021_02_07_173938_create_locations_table.php
+++ b/database/migrations/2021_02_07_173938_create_locations_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateLocationsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -30,4 +30,4 @@ class CreateLocationsTable extends Migration
{
Schema::dropIfExists('locations');
}
-}
+};
diff --git a/database/migrations/2021_02_07_173939_create_nodes_table.php b/database/migrations/2021_02_07_173939_create_nodes_table.php
index e24a2b5d..839afb3e 100644
--- a/database/migrations/2021_02_07_173939_create_nodes_table.php
+++ b/database/migrations/2021_02_07_173939_create_nodes_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateNodesTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -31,4 +31,4 @@ class CreateNodesTable extends Migration
{
Schema::dropIfExists('nodes');
}
-}
+};
diff --git a/database/migrations/2021_02_07_173940_create_nests_table.php b/database/migrations/2021_02_07_173940_create_nests_table.php
index d9ced417..fe06c8da 100644
--- a/database/migrations/2021_02_07_173940_create_nests_table.php
+++ b/database/migrations/2021_02_07_173940_create_nests_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateNestsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -30,4 +30,4 @@ class CreateNestsTable extends Migration
{
Schema::dropIfExists('nests');
}
-}
+};
diff --git a/database/migrations/2021_02_07_173941_create_eggs_table.php b/database/migrations/2021_02_07_173941_create_eggs_table.php
index 57aba4e3..20ad4243 100644
--- a/database/migrations/2021_02_07_173941_create_eggs_table.php
+++ b/database/migrations/2021_02_07_173941_create_eggs_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateEggsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -34,4 +34,4 @@ class CreateEggsTable extends Migration
{
Schema::dropIfExists('eggs');
}
-}
+};
diff --git a/database/migrations/2021_02_07_173942_create_products_table.php b/database/migrations/2021_02_07_173942_create_products_table.php
index 1cb9ef67..7cbacb49 100644
--- a/database/migrations/2021_02_07_173942_create_products_table.php
+++ b/database/migrations/2021_02_07_173942_create_products_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateProductsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -39,4 +39,4 @@ class CreateProductsTable extends Migration
{
Schema::dropIfExists('products');
}
-}
+};
diff --git a/database/migrations/2021_02_07_173943_create_servers_table.php b/database/migrations/2021_02_07_173943_create_servers_table.php
index 6a90c693..e5f03205 100644
--- a/database/migrations/2021_02_07_173943_create_servers_table.php
+++ b/database/migrations/2021_02_07_173943_create_servers_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateServersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -37,4 +37,4 @@ class CreateServersTable extends Migration
{
Schema::dropIfExists('servers');
}
-}
+};
diff --git a/database/migrations/2021_02_08_190205_create_activity_log_table.php b/database/migrations/2021_02_08_190205_create_activity_log_table.php
index cb4f3cc5..69a504e1 100644
--- a/database/migrations/2021_02_08_190205_create_activity_log_table.php
+++ b/database/migrations/2021_02_08_190205_create_activity_log_table.php
@@ -1,10 +1,10 @@
dropIfExists(config('activitylog.table_name'));
}
-}
+};
diff --git a/database/migrations/2021_02_16_162655_create_payments_table.php b/database/migrations/2021_02_16_162655_create_payments_table.php
index 7c7d6f07..39710646 100644
--- a/database/migrations/2021_02_16_162655_create_payments_table.php
+++ b/database/migrations/2021_02_16_162655_create_payments_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePaymentsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -17,12 +17,12 @@ class CreatePaymentsTable extends Migration
$table->uuid('id');
$table->foreignId('user_id')->references('id')->on('users');
$table->string('payment_id')->nullable();
- $table->string('payer_id')->nullable();;
- $table->string('type')->nullable();;
- $table->string('status')->nullable();;
- $table->string('amount')->nullable();;
- $table->string('price')->nullable();;
- $table->text('payer')->nullable();;
+ $table->string('payer_id')->nullable();
+ $table->string('type')->nullable();
+ $table->string('status')->nullable();
+ $table->string('amount')->nullable();
+ $table->string('price')->nullable();
+ $table->text('payer')->nullable();
$table->timestamps();
});
}
@@ -36,4 +36,4 @@ class CreatePaymentsTable extends Migration
{
Schema::dropIfExists('payments');
}
-}
+};
diff --git a/database/migrations/2021_03_24_073828_add_ip_and_last_seen_to_users_table.php b/database/migrations/2021_03_24_073828_add_ip_and_last_seen_to_users_table.php
index 88f16ddd..30efcff8 100644
--- a/database/migrations/2021_03_24_073828_add_ip_and_last_seen_to_users_table.php
+++ b/database/migrations/2021_03_24_073828_add_ip_and_last_seen_to_users_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddIpAndLastSeenToUsersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -31,4 +31,4 @@ class AddIpAndLastSeenToUsersTable extends Migration
$table->dropColumn('last_seen');
});
}
-}
+};
diff --git a/database/migrations/2021_04_11_190944_create_discord_users_table.php b/database/migrations/2021_04_11_190944_create_discord_users_table.php
index 6d556704..dcbccc70 100644
--- a/database/migrations/2021_04_11_190944_create_discord_users_table.php
+++ b/database/migrations/2021_04_11_190944_create_discord_users_table.php
@@ -3,9 +3,8 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-use Illuminate\Support\Str;
-class CreateDiscordUsersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -40,4 +39,4 @@ class CreateDiscordUsersTable extends Migration
{
Schema::dropIfExists('discord_users');
}
-}
+};
diff --git a/database/migrations/2021_04_11_195141_add_discord_verified_at_to_users_table.php b/database/migrations/2021_04_11_195141_add_discord_verified_at_to_users_table.php
index fc552065..406e708f 100644
--- a/database/migrations/2021_04_11_195141_add_discord_verified_at_to_users_table.php
+++ b/database/migrations/2021_04_11_195141_add_discord_verified_at_to_users_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddDiscordVerifiedAtToUsersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class AddDiscordVerifiedAtToUsersTable extends Migration
$table->removeColumn('discord_verified_at');
});
}
-}
+};
diff --git a/database/migrations/2021_05_04_155305_add_disabled_to_products_table.php b/database/migrations/2021_05_04_155305_add_disabled_to_products_table.php
index 8889e0bf..d10d893f 100644
--- a/database/migrations/2021_05_04_155305_add_disabled_to_products_table.php
+++ b/database/migrations/2021_05_04_155305_add_disabled_to_products_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddDisabledToProductsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class AddDisabledToProductsTable extends Migration
$table->dropColumn('disabled');
});
}
-}
+};
diff --git a/database/migrations/2021_05_06_123125_update_make_description_nullable_to_locations_table.php b/database/migrations/2021_05_06_123125_update_make_description_nullable_to_locations_table.php
index 141c1756..f5d5a750 100644
--- a/database/migrations/2021_05_06_123125_update_make_description_nullable_to_locations_table.php
+++ b/database/migrations/2021_05_06_123125_update_make_description_nullable_to_locations_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdateMakeDescriptionNullableToLocationsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class UpdateMakeDescriptionNullableToLocationsTable extends Migration
$table->string('description')->nullable(false)->change();
});
}
-}
+};
diff --git a/database/migrations/2021_05_06_131634_update_make_description_nullable_add_disabled_to_nodes_table.php b/database/migrations/2021_05_06_131634_update_make_description_nullable_add_disabled_to_nodes_table.php
index 152c39ac..a5616780 100644
--- a/database/migrations/2021_05_06_131634_update_make_description_nullable_add_disabled_to_nodes_table.php
+++ b/database/migrations/2021_05_06_131634_update_make_description_nullable_add_disabled_to_nodes_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdateMakeDescriptionNullableAddDisabledToNodesTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -31,4 +31,4 @@ class UpdateMakeDescriptionNullableAddDisabledToNodesTable extends Migration
$table->dropColumn('disabled');
});
}
-}
+};
diff --git a/database/migrations/2021_05_06_140859_update_make_description_nullable_add_disabled_to_nest_table.php b/database/migrations/2021_05_06_140859_update_make_description_nullable_add_disabled_to_nest_table.php
index 5bbc48d6..02111c50 100644
--- a/database/migrations/2021_05_06_140859_update_make_description_nullable_add_disabled_to_nest_table.php
+++ b/database/migrations/2021_05_06_140859_update_make_description_nullable_add_disabled_to_nest_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdateMakeDescriptionNullableAddDisabledToNestTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -31,4 +31,4 @@ class UpdateMakeDescriptionNullableAddDisabledToNestTable extends Migration
$table->dropColumn('disabled');
});
}
-}
+};
diff --git a/database/migrations/2021_05_06_150709_update_make_description_nullable_to_eggs_table.php b/database/migrations/2021_05_06_150709_update_make_description_nullable_to_eggs_table.php
index 23958ae9..5c42ff09 100644
--- a/database/migrations/2021_05_06_150709_update_make_description_nullable_to_eggs_table.php
+++ b/database/migrations/2021_05_06_150709_update_make_description_nullable_to_eggs_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdateMakeDescriptionNullableToEggsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class UpdateMakeDescriptionNullableToEggsTable extends Migration
$table->text('description')->nullable(false)->change();
});
}
-}
+};
diff --git a/database/migrations/2021_05_07_065911_update_to_servers_table.php b/database/migrations/2021_05_07_065911_update_to_servers_table.php
index 862b81f5..90e6c050 100644
--- a/database/migrations/2021_05_07_065911_update_to_servers_table.php
+++ b/database/migrations/2021_05_07_065911_update_to_servers_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdateToServersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -35,4 +35,4 @@ class UpdateToServersTable extends Migration
$table->dropColumn('config');
});
}
-}
+};
diff --git a/database/migrations/2021_05_07_162701_remove_config_from_servers_table.php b/database/migrations/2021_05_07_162701_remove_config_from_servers_table.php
index 1fb904fa..e519f45d 100644
--- a/database/migrations/2021_05_07_162701_remove_config_from_servers_table.php
+++ b/database/migrations/2021_05_07_162701_remove_config_from_servers_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class RemoveConfigFromServersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class RemoveConfigFromServersTable extends Migration
$table->string('config')->nullable();
});
}
-}
+};
diff --git a/database/migrations/2021_05_08_081218_create_paypal_products_table.php b/database/migrations/2021_05_08_081218_create_paypal_products_table.php
index 207e4313..2fd8f2f4 100644
--- a/database/migrations/2021_05_08_081218_create_paypal_products_table.php
+++ b/database/migrations/2021_05_08_081218_create_paypal_products_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePaypalProductsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -34,4 +34,4 @@ class CreatePaypalProductsTable extends Migration
{
Schema::dropIfExists('paypal_products');
}
-}
+};
diff --git a/database/migrations/2021_05_08_164658_create_configurations_table.php b/database/migrations/2021_05_08_164658_create_configurations_table.php
index ca5cb6f0..0c0f03ec 100644
--- a/database/migrations/2021_05_08_164658_create_configurations_table.php
+++ b/database/migrations/2021_05_08_164658_create_configurations_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateConfigurationsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -21,6 +21,7 @@ class CreateConfigurationsTable extends Migration
$table->timestamps();
});
}
+
/**
* Reverse the migrations.
*
@@ -30,4 +31,4 @@ class CreateConfigurationsTable extends Migration
{
Schema::dropIfExists('configurations');
}
-}
+};
diff --git a/database/migrations/2021_05_09_153742_add_display_to_paypal_products_table.php b/database/migrations/2021_05_09_153742_add_display_to_paypal_products_table.php
index 26d61492..ff78e519 100644
--- a/database/migrations/2021_05_09_153742_add_display_to_paypal_products_table.php
+++ b/database/migrations/2021_05_09_153742_add_display_to_paypal_products_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddDisplayToPayPalProductsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class AddDisplayToPayPalProductsTable extends Migration
$table->dropColumn('display');
});
}
-}
+};
diff --git a/database/migrations/2021_05_15_211643_create_jobs_table.php b/database/migrations/2021_05_15_211643_create_jobs_table.php
index 1be9e8a8..a786a891 100644
--- a/database/migrations/2021_05_15_211643_create_jobs_table.php
+++ b/database/migrations/2021_05_15_211643_create_jobs_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateJobsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -33,4 +33,4 @@ class CreateJobsTable extends Migration
{
Schema::dropIfExists('jobs');
}
-}
+};
diff --git a/database/migrations/2021_06_06_144120_create_application_apis_table.php b/database/migrations/2021_06_06_144120_create_application_apis_table.php
index f429fecc..470a36b1 100644
--- a/database/migrations/2021_06_06_144120_create_application_apis_table.php
+++ b/database/migrations/2021_06_06_144120_create_application_apis_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateApplicationApisTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -30,4 +30,4 @@ class CreateApplicationApisTable extends Migration
{
Schema::dropIfExists('application_apis');
}
-}
+};
diff --git a/database/migrations/2021_06_09_213306_create_useful_links_table.php b/database/migrations/2021_06_09_213306_create_useful_links_table.php
index c6fc7337..64ed052a 100644
--- a/database/migrations/2021_06_09_213306_create_useful_links_table.php
+++ b/database/migrations/2021_06_09_213306_create_useful_links_table.php
@@ -2,10 +2,9 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
-class CreateUsefulLinksTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -33,4 +32,4 @@ class CreateUsefulLinksTable extends Migration
{
Schema::dropIfExists('useful_links');
}
-}
+};
diff --git a/database/migrations/2021_06_23_090026_update_price_to_payments_table.php b/database/migrations/2021_06_23_090026_update_price_to_payments_table.php
index a3bb56af..6686007a 100644
--- a/database/migrations/2021_06_23_090026_update_price_to_payments_table.php
+++ b/database/migrations/2021_06_23_090026_update_price_to_payments_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdatePriceToPaymentsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -26,7 +26,7 @@ class UpdatePriceToPaymentsTable extends Migration
public function down()
{
Schema::table('payments', function (Blueprint $table) {
- $table->string('price')->change()->nullable();;
+ $table->string('price')->change()->nullable();
});
}
-}
+};
diff --git a/database/migrations/2021_06_23_090806_add__currency_code_to_payments_table.php b/database/migrations/2021_06_23_090806_add__currency_code_to_payments_table.php
index 3e6710bb..4e3cbd81 100644
--- a/database/migrations/2021_06_23_090806_add__currency_code_to_payments_table.php
+++ b/database/migrations/2021_06_23_090806_add__currency_code_to_payments_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddCurrencyCodeToPaymentsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -14,7 +14,7 @@ class AddCurrencyCodeToPaymentsTable extends Migration
public function up()
{
Schema::table('payments', function (Blueprint $table) {
- $table->string('currency_code' , 3)->default('USD')->after('price');
+ $table->string('currency_code', 3)->default('USD')->after('price');
});
}
@@ -29,4 +29,4 @@ class AddCurrencyCodeToPaymentsTable extends Migration
$table->dropColumn('currency_code');
});
}
-}
+};
diff --git a/database/migrations/2021_07_06_152319_create_egg_product_table.php b/database/migrations/2021_07_06_152319_create_egg_product_table.php
index 4271f80b..0ebd0dc0 100644
--- a/database/migrations/2021_07_06_152319_create_egg_product_table.php
+++ b/database/migrations/2021_07_06_152319_create_egg_product_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateEggProductTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class CreateEggProductTable extends Migration
{
Schema::dropIfExists('egg_product');
}
-}
+};
diff --git a/database/migrations/2021_07_06_154314_create_node_product_table.php b/database/migrations/2021_07_06_154314_create_node_product_table.php
index 0bb798c6..b0d2c57c 100644
--- a/database/migrations/2021_07_06_154314_create_node_product_table.php
+++ b/database/migrations/2021_07_06_154314_create_node_product_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateNodeProductTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class CreateNodeProductTable extends Migration
{
Schema::dropIfExists('node_product');
}
-}
+};
diff --git a/database/migrations/2021_07_06_154658_add_disabled_to_eggs_table.php b/database/migrations/2021_07_06_154658_add_disabled_to_eggs_table.php
index 353cf99b..bbc9ff15 100644
--- a/database/migrations/2021_07_06_154658_add_disabled_to_eggs_table.php
+++ b/database/migrations/2021_07_06_154658_add_disabled_to_eggs_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddDisabledToEggsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class AddDisabledToEggsTable extends Migration
$table->dropColumn('disabled');
});
}
-}
+};
diff --git a/database/migrations/2021_07_09_190453_create_vouchers_table.php b/database/migrations/2021_07_09_190453_create_vouchers_table.php
index 30a58d92..481674b3 100644
--- a/database/migrations/2021_07_09_190453_create_vouchers_table.php
+++ b/database/migrations/2021_07_09_190453_create_vouchers_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateVouchersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -33,4 +33,4 @@ class CreateVouchersTable extends Migration
{
Schema::dropIfExists('vouchers');
}
-}
+};
diff --git a/database/migrations/2021_07_09_191913_create_user_voucher_table.php b/database/migrations/2021_07_09_191913_create_user_voucher_table.php
index b75f7d26..bebf1bb1 100644
--- a/database/migrations/2021_07_09_191913_create_user_voucher_table.php
+++ b/database/migrations/2021_07_09_191913_create_user_voucher_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateUserVoucherTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class CreateUserVoucherTable extends Migration
{
Schema::dropIfExists('user_voucher');
}
-}
+};
diff --git a/database/migrations/2021_07_10_062140_update_credits_to_users_table.php b/database/migrations/2021_07_10_062140_update_credits_to_users_table.php
index bce7b344..ef4e069d 100644
--- a/database/migrations/2021_07_10_062140_update_credits_to_users_table.php
+++ b/database/migrations/2021_07_10_062140_update_credits_to_users_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdateCreditsToUsersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class UpdateCreditsToUsersTable extends Migration
$table->unsignedFloat('credits')->change();
});
}
-}
+};
diff --git a/database/migrations/2021_09_26_150114_add_suspended_to_users_table.php b/database/migrations/2021_09_26_150114_add_suspended_to_users_table.php
index f3b83a55..9f95c486 100644
--- a/database/migrations/2021_09_26_150114_add_suspended_to_users_table.php
+++ b/database/migrations/2021_09_26_150114_add_suspended_to_users_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddSuspendedToUsersTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class AddSuspendedToUsersTable extends Migration
$table->dropColumn('suspended');
});
}
-}
+};
diff --git a/database/migrations/2021_10_01_200844_add_product_minimum_credits.php b/database/migrations/2021_10_01_200844_add_product_minimum_credits.php
index 162b52e8..8fcd83ff 100644
--- a/database/migrations/2021_10_01_200844_add_product_minimum_credits.php
+++ b/database/migrations/2021_10_01_200844_add_product_minimum_credits.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddProductMinimumCredits extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -29,4 +29,4 @@ class AddProductMinimumCredits extends Migration
$table->dropColumn('minimum_credits');
});
}
-}
+};
diff --git a/database/migrations/2021_11_05_071456_add_tax_to_paymentlogs.php b/database/migrations/2021_11_05_071456_add_tax_to_paymentlogs.php
index 3796ee9e..3ce272bf 100644
--- a/database/migrations/2021_11_05_071456_add_tax_to_paymentlogs.php
+++ b/database/migrations/2021_11_05_071456_add_tax_to_paymentlogs.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class AddTaxToPaymentlogs extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -14,9 +14,9 @@ class AddTaxToPaymentlogs extends Migration
public function up()
{
Schema::table('payments', function (Blueprint $table) {
- $table->decimal('tax_value',8,2)->after('price')->nullable();
+ $table->decimal('tax_value', 8, 2)->after('price')->nullable();
$table->integer('tax_percent')->after('tax_value')->nullable();
- $table->decimal('total_price',8,2)->after('tax_percent')->nullable();
+ $table->decimal('total_price', 8, 2)->after('tax_percent')->nullable();
});
}
@@ -33,4 +33,4 @@ class AddTaxToPaymentlogs extends Migration
$table->dropColumn('total_price');
});
}
-}
+};
diff --git a/database/migrations/2021_11_27_014226_create_invoices.php b/database/migrations/2021_11_27_014226_create_invoices.php
index f2716c05..eeb365e0 100644
--- a/database/migrations/2021_11_27_014226_create_invoices.php
+++ b/database/migrations/2021_11_27_014226_create_invoices.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreateInvoices extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -31,4 +31,4 @@ class CreateInvoices extends Migration
{
Schema::dropIfExists('invoices');
}
-}
+};
diff --git a/database/migrations/2021_12_15_120346_update_to_payments_table.php b/database/migrations/2021_12_15_120346_update_to_payments_table.php
index 50900f29..cfca690d 100644
--- a/database/migrations/2021_12_15_120346_update_to_payments_table.php
+++ b/database/migrations/2021_12_15_120346_update_to_payments_table.php
@@ -2,11 +2,10 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Schema;
-
-class UpdateToPaymentsTable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -39,4 +38,4 @@ class UpdateToPaymentsTable extends Migration
$table->dropColumn('credit_product_id');
});
}
-}
+};
diff --git a/database/migrations/2021_12_28_203515_rename_paypal_products_table.php b/database/migrations/2021_12_28_203515_rename_paypal_products_table.php
index b3b64dca..460983b6 100644
--- a/database/migrations/2021_12_28_203515_rename_paypal_products_table.php
+++ b/database/migrations/2021_12_28_203515_rename_paypal_products_table.php
@@ -1,10 +1,9 @@
where('key', 'SETTINGS::SERVER:CREDITS_DISPLAY_NAME')->update(['key' => 'SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME']);
DB::table('configurations')->where('key', 'SETTINGS::PAYMENTS:SALES_TAX')->update(['key' => 'SALES_TAX']);
}
-}
+};
diff --git a/database/migrations/2022_01_14_234418_update_settings_table_allow_nullable.php b/database/migrations/2022_01_14_234418_update_settings_table_allow_nullable.php
index 20d5a0c9..c30da274 100644
--- a/database/migrations/2022_01_14_234418_update_settings_table_allow_nullable.php
+++ b/database/migrations/2022_01_14_234418_update_settings_table_allow_nullable.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdateSettingsTableAllowNullable extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -31,4 +31,4 @@ class UpdateSettingsTableAllowNullable extends Migration
$table->string('value')->nullable(false)->change();
});
}
-}
+};
diff --git a/database/migrations/2022_05_30_085900_rename_credits_product.php b/database/migrations/2022_05_30_085900_rename_credits_product.php
index af4759b2..deaadcc9 100644
--- a/database/migrations/2022_05_30_085900_rename_credits_product.php
+++ b/database/migrations/2022_05_30_085900_rename_credits_product.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class RenameCreditsProduct extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -14,7 +14,7 @@ class RenameCreditsProduct extends Migration
public function up()
{
Schema::rename('credit_products', 'shop_products');
- Schema::table('payments', function(Blueprint $table) {
+ Schema::table('payments', function (Blueprint $table) {
$table->renameColumn('credit_product_id', 'shop_item_product_id');
});
}
@@ -28,8 +28,8 @@ class RenameCreditsProduct extends Migration
{
Schema::rename('shop_products', 'credit_products');
- Schema::table('payments', function(Blueprint $table) {
+ Schema::table('payments', function (Blueprint $table) {
$table->renameColumn('shop_item_product_id', 'credit_product_id');
});
}
-}
+};
diff --git a/database/migrations/2022_06_02_081655_referral_code.php b/database/migrations/2022_06_02_081655_referral_code.php
index 15cca0b7..8c86d2ec 100644
--- a/database/migrations/2022_06_02_081655_referral_code.php
+++ b/database/migrations/2022_06_02_081655_referral_code.php
@@ -7,20 +7,20 @@ use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Str;
-class ReferralCode extends Migration
+return new class extends Migration
{
-
- public function generateCode($userid){
-
- $random = STR::random(8);
- if (User::where('referral_code', '=', $random)->doesntExist()) {
- DB::table("users")
- ->where("id", "=", $userid)
+ public function generateCode($userid)
+ {
+ $random = STR::random(8);
+ if (User::where('referral_code', '=', $random)->doesntExist()) {
+ DB::table('users')
+ ->where('id', '=', $userid)
->update(['referral_code' => $random]);
- }else{
- $this->generateCode($userid);
- }
+ } else {
+ $this->generateCode($userid);
+ }
}
+
/**
* Run the migrations.
*
@@ -32,14 +32,12 @@ class ReferralCode extends Migration
$table->string('referral_code')->lenght(8)->nullable();
});
- $existing_user = User::where('referral_code', '')->orWhere('referral_code', NULL)->get();
+ $existing_user = User::where('referral_code', '')->orWhere('referral_code', null)->get();
foreach ($existing_user as $user) {
$this->generateCode($user->id);
- }
}
-
-
+ }
/**
* Reverse the migrations.
@@ -52,5 +50,4 @@ class ReferralCode extends Migration
$table->dropColumn('referral_code');
});
}
-
-}
+};
diff --git a/database/migrations/2022_06_02_091921_table-user-referrals.php b/database/migrations/2022_06_02_091921_table-user-referrals.php
index a6fdbd83..8f377d09 100644
--- a/database/migrations/2022_06_02_091921_table-user-referrals.php
+++ b/database/migrations/2022_06_02_091921_table-user-referrals.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class TableUserReferrals extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -16,11 +16,10 @@ class TableUserReferrals extends Migration
Schema::create('user_referrals', function (Blueprint $table) {
$table->unsignedBigInteger('referral_id');
$table->unsignedBigInteger('registered_user_id');
- $table->foreign('referral_id')->references('id')->on('users')->onDelete('cascade');;
- $table->foreign('registered_user_id')->references('id')->on('users')->onDelete('cascade');;
+ $table->foreign('referral_id')->references('id')->on('users')->onDelete('cascade');
+ $table->foreign('registered_user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
-
}
/**
@@ -32,4 +31,4 @@ class TableUserReferrals extends Migration
{
Schema::dropIfExists('user_referrals');
}
-}
+};
diff --git a/database/migrations/2022_07_12_051152_decimals-in-price.php b/database/migrations/2022_07_12_051152_decimals-in-price.php
index 4b5fff4a..cf1a35b4 100644
--- a/database/migrations/2022_07_12_051152_decimals-in-price.php
+++ b/database/migrations/2022_07_12_051152_decimals-in-price.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class DecimalsInPrice extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -14,7 +14,7 @@ class DecimalsInPrice extends Migration
public function up()
{
Schema::table('products', function (Blueprint $table) {
- $table->decimal('price',['11','2'])->change();
+ $table->decimal('price', ['11', '2'])->change();
});
}
@@ -29,4 +29,4 @@ class DecimalsInPrice extends Migration
$table->integer('price')->change();
});
}
-}
+};
diff --git a/database/migrations/2022_08_01_170819_create_tickets_table.php b/database/migrations/2022_08_01_170819_create_tickets_table.php
index 5ae8cda7..265984d0 100644
--- a/database/migrations/2022_08_01_170819_create_tickets_table.php
+++ b/database/migrations/2022_08_01_170819_create_tickets_table.php
@@ -1,16 +1,16 @@
increments('id');
- $table->string('name');
+ $table->string('name');
$table->timestamps();
});
DB::table('ticket_categories')->insert(
- array(
+ [
'name' => 'Technical',
- )
+ ]
);
DB::table('ticket_categories')->insert(
- array(
+ [
'name' => 'Billing',
- )
+ ]
);
DB::table('ticket_categories')->insert(
- array(
+ [
'name' => 'Issue',
- )
+ ]
);
DB::table('ticket_categories')->insert(
- array(
+ [
'name' => 'Request',
- )
+ ]
);
DB::table('ticket_categories')->insert(
- array(
+ [
'name' => 'Other',
- )
+ ]
);
}
-
/**
* Reverse the migrations.
@@ -56,4 +55,4 @@ class CreateTicketCategoriesTable extends Migration
{
Schema::dropIfExists('ticket_categories');
}
-}
+};
diff --git a/database/migrations/2022_08_01_181607_create_ticketcomments_table.php b/database/migrations/2022_08_01_181607_create_ticketcomments_table.php
index 58886b45..0893e720 100644
--- a/database/migrations/2022_08_01_181607_create_ticketcomments_table.php
+++ b/database/migrations/2022_08_01_181607_create_ticketcomments_table.php
@@ -1,15 +1,15 @@
id();
$table->unsignedBigInteger('user_id')->unsigned();
- $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');;
+ $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->string('status');
$table->string('reason');
$table->timestamps();
@@ -32,4 +32,4 @@ class CreateTicketBlacklistTable extends Migration
{
Schema::dropIfExists('ticket_blacklists');
}
-}
+};
diff --git a/database/migrations/2022_08_25_202109_create_partner_discounts_table.php b/database/migrations/2022_08_25_202109_create_partner_discounts_table.php
new file mode 100644
index 00000000..b1fcdf97
--- /dev/null
+++ b/database/migrations/2022_08_25_202109_create_partner_discounts_table.php
@@ -0,0 +1,35 @@
+id();
+ $table->foreignId('user_id');
+ $table->integer('partner_discount');
+ $table->integer('registered_user_discount');
+ $table->integer('referral_system_commission');
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('partner_discounts');
+ }
+};
diff --git a/database/migrations/2022_11_29_075851_email_verify_d_b.php b/database/migrations/2022_11_29_075851_email_verify_d_b.php
index 04e2663b..86708aad 100644
--- a/database/migrations/2022_11_29_075851_email_verify_d_b.php
+++ b/database/migrations/2022_11_29_075851_email_verify_d_b.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class EmailVerifyDB extends Migration
+return new class extends Migration
{
/**
* Run the migrations.
@@ -26,7 +26,6 @@ class EmailVerifyDB extends Migration
}
}
-
/**
* Reverse the migrations.
*
@@ -38,4 +37,4 @@ class EmailVerifyDB extends Migration
$table->dropColumn('email_verified_reward');
});
}
-}
+};
diff --git a/database/migrations/2023_01_03_185102_update_make_description_text_in_nests_table.php b/database/migrations/2023_01_03_185102_update_make_description_text_in_nests_table.php
new file mode 100644
index 00000000..e007ad5e
--- /dev/null
+++ b/database/migrations/2023_01_03_185102_update_make_description_text_in_nests_table.php
@@ -0,0 +1,32 @@
+text('description')->change();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('nests', function (Blueprint $table) {
+ $table->string('description')->change();
+ });
+ }
+};
diff --git a/database/migrations/2023_01_05_180333_add_event_column_to_activity_log_table.php b/database/migrations/2023_01_05_180333_add_event_column_to_activity_log_table.php
new file mode 100644
index 00000000..7b797fd5
--- /dev/null
+++ b/database/migrations/2023_01_05_180333_add_event_column_to_activity_log_table.php
@@ -0,0 +1,22 @@
+table(config('activitylog.table_name'), function (Blueprint $table) {
+ $table->string('event')->nullable()->after('subject_type');
+ });
+ }
+
+ public function down()
+ {
+ Schema::connection(config('activitylog.database_connection'))->table(config('activitylog.table_name'), function (Blueprint $table) {
+ $table->dropColumn('event');
+ });
+ }
+}
diff --git a/database/migrations/2023_01_05_180334_add_batch_uuid_column_to_activity_log_table.php b/database/migrations/2023_01_05_180334_add_batch_uuid_column_to_activity_log_table.php
new file mode 100644
index 00000000..8f7db665
--- /dev/null
+++ b/database/migrations/2023_01_05_180334_add_batch_uuid_column_to_activity_log_table.php
@@ -0,0 +1,22 @@
+table(config('activitylog.table_name'), function (Blueprint $table) {
+ $table->uuid('batch_uuid')->nullable()->after('properties');
+ });
+ }
+
+ public function down()
+ {
+ Schema::connection(config('activitylog.database_connection'))->table(config('activitylog.table_name'), function (Blueprint $table) {
+ $table->dropColumn('batch_uuid');
+ });
+ }
+}
diff --git a/database/migrations/2023_01_12_135936_settings_to_text.php b/database/migrations/2023_01_12_135936_settings_to_text.php
new file mode 100644
index 00000000..2b907b07
--- /dev/null
+++ b/database/migrations/2023_01_12_135936_settings_to_text.php
@@ -0,0 +1,32 @@
+text('value')->change();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('nests', function (Blueprint $table) {
+ $table->string('value')->change();
+ });
+ }
+};
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index e759a595..6ed3baa0 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -17,6 +17,5 @@ class DatabaseSeeder extends Seeder
$this->call([
SettingsSeeder::class,
]);
-
}
}
diff --git a/database/seeders/ExampleItemsSeeder.php b/database/seeders/ExampleItemsSeeder.php
index 42fb4bbc..925fda7d 100644
--- a/database/seeders/ExampleItemsSeeder.php
+++ b/database/seeders/ExampleItemsSeeder.php
@@ -2,9 +2,9 @@
namespace Database\Seeders;
+use Database\Seeders\Seeds\ApplicationApiSeeder;
use Database\Seeders\Seeds\ProductSeeder;
use Database\Seeders\Seeds\ShopProductSeeder;
-use Database\Seeders\Seeds\ApplicationApiSeeder;
use Database\Seeders\Seeds\UsefulLinksSeeder;
use Illuminate\Database\Seeder;
@@ -21,8 +21,7 @@ class ExampleItemsSeeder extends Seeder
ProductSeeder::class,
ShopProductSeeder::class,
ApplicationApiSeeder::class,
- UsefulLinksSeeder::class
+ UsefulLinksSeeder::class,
]);
-
}
}
diff --git a/database/seeders/Seeds/ApplicationApiSeeder.php b/database/seeders/Seeds/ApplicationApiSeeder.php
index da66c937..963f848f 100644
--- a/database/seeders/Seeds/ApplicationApiSeeder.php
+++ b/database/seeders/Seeds/ApplicationApiSeeder.php
@@ -15,7 +15,7 @@ class ApplicationApiSeeder extends Seeder
public function run()
{
ApplicationApi::create([
- 'memo' => 'admin'
+ 'memo' => 'admin',
]);
}
}
diff --git a/database/seeders/Seeds/SettingsSeeder.php b/database/seeders/Seeds/SettingsSeeder.php
index 9e6f0035..d0179896 100644
--- a/database/seeders/Seeds/SettingsSeeder.php
+++ b/database/seeders/Seeds/SettingsSeeder.php
@@ -18,523 +18,639 @@ class SettingsSeeder extends Seeder
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:INITIAL_CREDITS',
], [
- 'value' => '250',
- 'type' => 'integer',
- 'description' => 'The initial amount of credits the user starts with.'
+ 'value' => '250',
+ 'type' => 'integer',
+ 'description' => 'The initial amount of credits the user starts with.',
]);
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:INITIAL_SERVER_LIMIT',
], [
- 'value' => '1',
- 'type' => 'integer',
- 'description' => 'The initial server limit the user starts with.'
+ 'value' => '1',
+ 'type' => 'integer',
+ 'description' => 'The initial server limit the user starts with.',
]);
//verify email event
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_EMAIL',
], [
- 'value' => '250',
- 'type' => 'integer',
- 'description' => 'Increase in credits after the user has verified their email account.'
+ 'value' => '250',
+ 'type' => 'integer',
+ 'description' => 'Increase in credits after the user has verified their email account.',
]);
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_EMAIL',
], [
- 'value' => '2',
- 'type' => 'integer',
- 'description' => 'Increase in server limit after the user has verified their email account.'
+ 'value' => '2',
+ 'type' => 'integer',
+ 'description' => 'Increase in server limit after the user has verified their email account.',
]);
//verify discord event
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:CREDITS_REWARD_AFTER_VERIFY_DISCORD',
], [
- 'value' => '375',
- 'type' => 'integer',
- 'description' => 'Increase in credits after the user has verified their discord account.'
+ 'value' => '375',
+ 'type' => 'integer',
+ 'description' => 'Increase in credits after the user has verified their discord account.',
]);
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:SERVER_LIMIT_REWARD_AFTER_VERIFY_DISCORD',
], [
- 'value' => '2',
- 'type' => 'integer',
- 'description' => 'Increase in server limit after the user has verified their discord account.'
+ 'value' => '2',
+ 'type' => 'integer',
+ 'description' => 'Increase in server limit after the user has verified their discord account.',
]);
//other
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER',
], [
- 'value' => '50',
- 'type' => 'integer',
- 'description' => 'The minimum amount of credits the user would need to make a server.'
+ 'value' => '50',
+ 'type' => 'integer',
+ 'description' => 'The minimum amount of credits the user would need to make a server.',
]);
//purchasing
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE',
], [
- 'value' => '10',
- 'type' => 'integer',
+ 'value' => '10',
+ 'type' => 'integer',
'description' => 'updates the users server limit to this amount (unless the user already has a higher server limit) after making a purchase with real money, set to 0 to ignore this.',
]);
-
//force email and discord verification
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:FORCE_EMAIL_VERIFICATION',
], [
- 'value' => 'false',
- 'type' => 'boolean',
- 'description' => 'Force an user to verify the email adress before creating a server / buying credits.'
+ 'value' => 'false',
+ 'type' => 'boolean',
+ 'description' => 'Force an user to verify the email adress before creating a server / buying credits.',
]);
Settings::firstOrCreate([
'key' => 'SETTINGS::USER:FORCE_DISCORD_VERIFICATION',
], [
- 'value' => 'false',
- 'type' => 'boolean',
- 'description' => 'Force an user to link an Discord Account before creating a server / buying credits.'
+ 'value' => 'false',
+ 'type' => 'boolean',
+ 'description' => 'Force an user to link an Discord Account before creating a server / buying credits.',
]);
//disable ip check on register
Settings::firstOrCreate([
'key' => 'SETTINGS::SYSTEM:REGISTER_IP_CHECK',
], [
- 'value' => 'true',
- 'type' => 'boolean',
- 'description' => 'Prevent users from making multiple accounts using the same IP address'
+ 'value' => 'true',
+ 'type' => 'boolean',
+ 'description' => 'Prevent users from making multiple accounts using the same IP address',
]);
//per_page on allocations request
Settings::firstOrCreate([
'key' => 'SETTINGS::SERVER:ALLOCATION_LIMIT',
], [
- 'value' => '200',
+ 'value' => '200',
+ 'type' => 'integer',
+ 'description' => 'The maximum amount of allocations to pull per node for automatic deployment, if more allocations are being used than this limit is set to, no new servers can be created!',
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::USER:MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER',
+ ], [
+ 'value' => '0',
'type' => 'integer',
- 'description' => 'The maximum amount of allocations to pull per node for automatic deployment, if more allocations are being used than this limit is set to, no new servers can be created!'
+ 'description' => 'The minimum amount of credits user has to have to create a server. Can be overridden by package limits.'
]);
//credits display name
Settings::firstOrCreate([
'key' => 'SETTINGS::SYSTEM:CREDITS_DISPLAY_NAME',
], [
- 'value' => 'Credits',
- 'type' => 'string',
- 'description' => 'Set the display name of your currency :)'
+ 'value' => 'Credits',
+ 'type' => 'string',
+ 'description' => 'Set the display name of your currency :)',
]);
//credits display name
Settings::firstOrCreate([
'key' => 'SETTINGS::SYSTEM:SERVER_CREATE_CHARGE_FIRST_HOUR',
], [
- 'value' => 'true',
- 'type' => 'boolean',
- 'description' => 'Charges the first hour worth of credits upon creating a server.'
+ 'value' => 'true',
+ 'type' => 'boolean',
+ 'description' => 'Charges the first hour worth of credits upon creating a server.',
]);
//sales tax
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:SALES_TAX',
+ 'key' => 'SETTINGS::PAYMENTS:SALES_TAX',
], [
'value' => '0',
- 'type' => 'integer',
- 'description' => 'The %-value of tax that will be added to the product price on checkout'
+ 'type' => 'integer',
+ 'description' => 'The %-value of tax that will be added to the product price on checkout',
]);
//Invoices enabled
Settings::firstOrCreate([
- 'key' => 'SETTINGS::INVOICE:ENABLED',
+ 'key' => 'SETTINGS::INVOICE:ENABLED',
], [
'value' => 'false',
- 'type' => 'boolean',
- 'description' => 'Enables or disables the invoice feature for payments'
+ 'type' => 'boolean',
+ 'description' => 'Enables or disables the invoice feature for payments',
]);
//Invoice company name
Settings::firstOrCreate([
- 'key' => 'SETTINGS::INVOICE:COMPANY_NAME',
+ 'key' => 'SETTINGS::INVOICE:COMPANY_NAME',
], [
'value' => '',
- 'type' => 'string',
- 'description' => 'The name of the Company on the Invoices'
+ 'type' => 'string',
+ 'description' => 'The name of the Company on the Invoices',
]);
//Invoice company address
Settings::firstOrCreate([
- 'key' => 'SETTINGS::INVOICE:COMPANY_ADDRESS',
+ 'key' => 'SETTINGS::INVOICE:COMPANY_ADDRESS',
], [
'value' => '',
- 'type' => 'string',
- 'description' => 'The address of the Company on the Invoices'
+ 'type' => 'string',
+ 'description' => 'The address of the Company on the Invoices',
]);
//Invoice company phone
Settings::firstOrCreate([
- 'key' => 'SETTINGS::INVOICE:COMPANY_PHONE',
+ 'key' => 'SETTINGS::INVOICE:COMPANY_PHONE',
], [
'value' => '',
- 'type' => 'string',
- 'description' => 'The phone number of the Company on the Invoices'
+ 'type' => 'string',
+ 'description' => 'The phone number of the Company on the Invoices',
]);
//Invoice company mail
Settings::firstOrCreate([
- 'key' => 'SETTINGS::INVOICE:COMPANY_MAIL',
+ 'key' => 'SETTINGS::INVOICE:COMPANY_MAIL',
], [
'value' => '',
- 'type' => 'string',
- 'description' => 'The email address of the Company on the Invoices'
+ 'type' => 'string',
+ 'description' => 'The email address of the Company on the Invoices',
]);
//Invoice VAT
Settings::firstOrCreate([
- 'key' => 'SETTINGS::INVOICE:COMPANY_VAT',
+ 'key' => 'SETTINGS::INVOICE:COMPANY_VAT',
], [
'value' => '',
- 'type' => 'string',
- 'description' => 'The VAT-Number of the Company on the Invoices'
+ 'type' => 'string',
+ 'description' => 'The VAT-Number of the Company on the Invoices',
]);
//Invoice Website
Settings::firstOrCreate([
- 'key' => 'SETTINGS::INVOICE:COMPANY_WEBSITE',
+ 'key' => 'SETTINGS::INVOICE:COMPANY_WEBSITE',
], [
'value' => '',
- 'type' => 'string',
- 'description' => 'The Website of the Company on the Invoices'
+ 'type' => 'string',
+ 'description' => 'The Website of the Company on the Invoices',
]);
//Invoice Website
Settings::firstOrCreate([
- 'key' => 'SETTINGS::INVOICE:PREFIX',
+ 'key' => 'SETTINGS::INVOICE:PREFIX',
], [
'value' => 'INV',
- 'type' => 'string',
- 'description' => 'The invoice prefix'
+ 'type' => 'string',
+ 'description' => 'The invoice prefix',
]);
//Locale
Settings::firstOrCreate([
- 'key' => 'SETTINGS::LOCALE:DEFAULT',
+ 'key' => 'SETTINGS::LOCALE:DEFAULT',
], [
'value' => 'en',
- 'type' => 'string',
- 'description' => 'The default Language the dashboard will be shown in'
+ 'type' => 'string',
+ 'description' => 'The default Language the dashboard will be shown in',
]);
//Dynamic locale
Settings::firstOrCreate([
- 'key' => 'SETTINGS::LOCALE:DYNAMIC',
+ 'key' => 'SETTINGS::LOCALE:DYNAMIC',
], [
'value' => 'false',
- 'type' => 'boolean',
- 'description' => 'If this is true, the Language will change to the Clients browserlanguage or default.'
+ 'type' => 'boolean',
+ 'description' => 'If this is true, the Language will change to the Clients browserlanguage or default.',
]);
//User can change Locale
Settings::firstOrCreate([
- 'key' => 'SETTINGS::LOCALE:CLIENTS_CAN_CHANGE',
+ 'key' => 'SETTINGS::LOCALE:CLIENTS_CAN_CHANGE',
], [
'value' => 'false',
- 'type' => 'boolean',
- 'description' => 'If this is true, the clients will be able to change their Locale.'
+ 'type' => 'boolean',
+ 'description' => 'If this is true, the clients will be able to change their Locale.',
]);
//Locale
Settings::firstOrCreate([
- 'key' => 'SETTINGS::LOCALE:AVAILABLE',
+ 'key' => 'SETTINGS::LOCALE:AVAILABLE',
], [
'value' => '',
- 'type' => 'string',
- 'description' => 'The available languages'
+ 'type' => 'string',
+ 'description' => 'The available languages',
]);
//Locale
Settings::firstOrCreate([
- 'key' => 'SETTINGS::LOCALE:DATATABLES',
+ 'key' => 'SETTINGS::LOCALE:DATATABLES',
], [
'value' => 'en-gb',
- 'type' => 'string',
- 'description' => 'The Language of the Datatables. Grab the Language-Codes from here https://datatables.net/plug-ins/i18n/'
+ 'type' => 'string',
+ 'description' => 'The Language of the Datatables. Grab the Language-Codes from here https://datatables.net/plug-ins/i18n/',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:PAYPAL:SECRET',
+ 'key' => 'SETTINGS::PAYMENTS:PAYPAL:SECRET',
], [
'value' => env('PAYPAL_SECRET', ''),
- 'type' => 'string',
- 'description' => 'Your PayPal Secret-Key ( https://developer.paypal.com/docs/integration/direct/rest/)'
+ 'type' => 'string',
+ 'description' => 'Your PayPal Secret-Key ( https://developer.paypal.com/docs/integration/direct/rest/)',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID',
+ 'key' => 'SETTINGS::PAYMENTS:PAYPAL:CLIENT_ID',
], [
'value' => env('PAYPAL_CLIENT_ID', ''),
- 'type' => 'string',
- 'description' => 'Your PayPal Client_ID'
+ 'type' => 'string',
+ 'description' => 'Your PayPal Client_ID',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:PAYPAL:SANDBOX_SECRET',
+ 'key' => 'SETTINGS::PAYMENTS:PAYPAL:SANDBOX_SECRET',
], [
'value' => env('PAYPAL_SANDBOX_SECRET', ''),
- 'type' => 'string',
- 'description' => 'Your PayPal SANDBOX Secret-Key used for testing '
+ 'type' => 'string',
+ 'description' => 'Your PayPal SANDBOX Secret-Key used for testing ',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:PAYPAL:SANDBOX_CLIENT_ID',
+ 'key' => 'SETTINGS::PAYMENTS:PAYPAL:SANDBOX_CLIENT_ID',
], [
'value' => env('PAYPAL_SANDBOX_CLIENT_ID', ''),
- 'type' => 'string',
- 'description' => 'Your PayPal SANDBOX Client-ID used for testing '
+ 'type' => 'string',
+ 'description' => 'Your PayPal SANDBOX Client-ID used for testing ',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:STRIPE:SECRET',
+ 'key' => 'SETTINGS::PAYMENTS:STRIPE:SECRET',
], [
'value' => env('STRIPE_SECRET', ''),
- 'type' => 'string',
- 'description' => 'Your Stripe Secret-Key ( https://dashboard.stripe.com/account/apikeys )'
+ 'type' => 'string',
+ 'description' => 'Your Stripe Secret-Key ( https://dashboard.stripe.com/account/apikeys )',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET',
+ 'key' => 'SETTINGS::PAYMENTS:STRIPE:ENDPOINT_SECRET',
], [
'value' => env('STRIPE_ENDPOINT_SECRET', ''),
- 'type' => 'string',
- 'description' => 'Your Stripe endpoint secret-key'
+ 'type' => 'string',
+ 'description' => 'Your Stripe endpoint secret-key',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:STRIPE:TEST_SECRET',
+ 'key' => 'SETTINGS::PAYMENTS:STRIPE:TEST_SECRET',
], [
'value' => env('STRIPE_TEST_SECRET', ''),
- 'type' => 'string',
- 'description' => 'Your Stripe test secret-key'
+ 'type' => 'string',
+ 'description' => 'Your Stripe test secret-key',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:STRIPE:ENDPOINT_TEST_SECRET',
+ 'key' => 'SETTINGS::PAYMENTS:STRIPE:ENDPOINT_TEST_SECRET',
], [
'value' => env('STRIPE_ENDPOINT_TEST_SECRET', ''),
- 'type' => 'string',
- 'description' => 'Your Stripe endpoint test secret-key'
+ 'type' => 'string',
+ 'description' => 'Your Stripe endpoint test secret-key',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::PAYMENTS:STRIPE:METHODS',
+ 'key' => 'SETTINGS::PAYMENTS:STRIPE:METHODS',
], [
'value' => env('STRIPE_METHODS', 'card,sepa_debit'),
- 'type' => 'string',
- 'description' => 'Comma seperated list of payment methods that are enabled (https://stripe.com/docs/payments/payment-methods/integration-options)'
+ 'type' => 'string',
+ 'description' => 'Comma seperated list of payment methods that are enabled (https://stripe.com/docs/payments/payment-methods/integration-options)',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::DISCORD:CLIENT_ID',
+ 'key' => 'SETTINGS::DISCORD:CLIENT_ID',
], [
'value' => env('DISCORD_CLIENT_ID', ''),
- 'type' => 'string',
- 'description' => 'Discord API Credentials - https://discordapp.com/developers/applications/'
+ 'type' => 'string',
+ 'description' => 'Discord API Credentials - https://discordapp.com/developers/applications/',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::DISCORD:CLIENT_SECRET',
+ 'key' => 'SETTINGS::DISCORD:CLIENT_SECRET',
], [
'value' => env('DISCORD_CLIENT_SECRET', ''),
- 'type' => 'string',
- 'description' => 'Discord API Credentials - https://discordapp.com/developers/applications/'
+ 'type' => 'string',
+ 'description' => 'Discord API Credentials - https://discordapp.com/developers/applications/',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::DISCORD:BOT_TOKEN',
+ 'key' => 'SETTINGS::DISCORD:BOT_TOKEN',
], [
- 'value' => env('DISCORD_BOT_TOKEN', ''),
- 'type' => 'string',
- 'description' => 'Discord API Credentials - https://discordapp.com/developers/applications/'
+ 'value' => env('DISCORD_BOT_TOKEN', ''),
+ 'type' => 'string',
+ 'description' => 'Discord API Credentials - https://discordapp.com/developers/applications/',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::DISCORD:GUILD_ID',
+ 'key' => 'SETTINGS::DISCORD:GUILD_ID',
], [
- 'value' => env('DISCORD_GUILD_ID', ''),
- 'type' => 'string',
- 'description' => 'Discord API Credentials - https://discordapp.com/developers/applications/'
+ 'value' => env('DISCORD_GUILD_ID', ''),
+ 'type' => 'string',
+ 'description' => 'Discord API Credentials - https://discordapp.com/developers/applications/',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::DISCORD:ROLE_ID',
+ 'key' => 'SETTINGS::DISCORD:ROLE_ID',
], [
'value' => env('DISCORD_ROLE_ID', ''),
- 'type' => 'string',
- 'description' => 'Discord role that will be assigned to users when they register'
+ 'type' => 'string',
+ 'description' => 'Discord role that will be assigned to users when they register',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::DISCORD:INVITE_URL',
+ 'key' => 'SETTINGS::DISCORD:INVITE_URL',
], [
'value' => env('DISCORD_INVITE_URL', ''),
- 'type' => 'string',
- 'description' => 'The invite URL to your Discord Server'
+ 'type' => 'string',
+ 'description' => 'The invite URL to your Discord Server',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::SYSTEM:PTERODACTYL:TOKEN',
+ 'key' => 'SETTINGS::SYSTEM:PTERODACTYL:TOKEN',
], [
'value' => env('PTERODACTYL_TOKEN', ''),
- 'type' => 'string',
- 'description' => 'Admin API Token from Pterodactyl Panel - necessary for the Panel to work. The Key needs all read&write permissions!'
+ 'type' => 'string',
+ 'description' => 'Admin API Token from Pterodactyl Panel - necessary for the Panel to work. The Key needs all read&write permissions!',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::SYSTEM:PTERODACTYL:URL',
+ 'key' => 'SETTINGS::SYSTEM:PTERODACTYL:URL',
], [
'value' => env('PTERODACTYL_URL', ''),
- 'type' => 'string',
- 'description' => 'The URL to your Pterodactyl Panel. Must not end with a / '
+ 'type' => 'string',
+ 'description' => 'The URL to your Pterodactyl Panel. Must not end with a / ',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT',
+ 'key' => 'SETTINGS::SYSTEM:PTERODACTYL:PER_PAGE_LIMIT',
], [
'value' => 200,
- 'type' => 'integer',
- 'description' => 'The Pterodactyl API perPage limit. It is necessary to set it higher than your server count.'
+ 'type' => 'integer',
+ 'description' => 'The Pterodactyl API perPage limit. It is necessary to set it higher than your server count.',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MISC:PHPMYADMIN:URL',
+ 'key' => 'SETTINGS::MISC:PHPMYADMIN:URL',
], [
'value' => env('PHPMYADMIN_URL', ''),
- 'type' => 'string',
- 'description' => 'The URL to your PHPMYADMIN Panel. Must not end with a /, remove to remove database button'
+ 'type' => 'string',
+ 'description' => 'The URL to your PHPMYADMIN Panel. Must not end with a /, remove to remove database button',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::RECAPTCHA:SITE_KEY',
+ 'key' => 'SETTINGS::RECAPTCHA:SITE_KEY',
], [
'value' => env('RECAPTCHA_SITE_KEY', '6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI'),
- 'type' => 'string',
- 'description' => 'Google Recaptcha API Credentials - https://www.google.com/recaptcha/admin - reCaptcha V2 (not v3)'
+ 'type' => 'string',
+ 'description' => 'Google Recaptcha API Credentials - https://www.google.com/recaptcha/admin - reCaptcha V2 (not v3)',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::RECAPTCHA:SECRET_KEY',
+ 'key' => 'SETTINGS::RECAPTCHA:SECRET_KEY',
], [
'value' => env('RECAPTCHA_SECRET_KEY', '6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe'),
- 'type' => 'string',
- 'description' => 'Google Recaptcha API Credentials - https://www.google.com/recaptcha/admin - reCaptcha V2 (not v3)'
+ 'type' => 'string',
+ 'description' => 'Google Recaptcha API Credentials - https://www.google.com/recaptcha/admin - reCaptcha V2 (not v3)',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::RECAPTCHA:ENABLED',
+ 'key' => 'SETTINGS::RECAPTCHA:ENABLED',
], [
'value' => 'true',
- 'type' => 'boolean',
- 'description' => 'Enables or disables the ReCaptcha feature on the registration/login page'
+ 'type' => 'boolean',
+ 'description' => 'Enables or disables the ReCaptcha feature on the registration/login page',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MAIL:MAILER',
+ 'key' => 'SETTINGS::MAIL:MAILER',
], [
'value' => env('MAIL_MAILER', 'smtp'),
- 'type' => 'string',
- 'description' => 'Selected Mailer (smtp, mailgun, sendgrid, mailtrap)'
+ 'type' => 'string',
+ 'description' => 'Selected Mailer (smtp, mailgun, sendgrid, mailtrap)',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MAIL:HOST',
+ 'key' => 'SETTINGS::MAIL:HOST',
], [
'value' => env('MAIL_HOST', 'localhost'),
- 'type' => 'string',
- 'description' => 'Mailer Host Adress'
+ 'type' => 'string',
+ 'description' => 'Mailer Host Address',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MAIL:PORT',
+ 'key' => 'SETTINGS::MAIL:PORT',
], [
- 'value' => env('MAIL_PORT', '25'),
- 'type' => 'string',
- 'description' => 'Mailer Server Port'
+ 'value' => env('MAIL_PORT', '25'),
+ 'type' => 'string',
+ 'description' => 'Mailer Server Port',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MAIL:USERNAME',
+ 'key' => 'SETTINGS::MAIL:USERNAME',
], [
- 'value' => env('MAIL_USERNAME', ''),
- 'type' => 'string',
- 'description' => 'Mailer Username'
+ 'value' => env('MAIL_USERNAME', ''),
+ 'type' => 'string',
+ 'description' => 'Mailer Username',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MAIL:PASSWORD',
+ 'key' => 'SETTINGS::MAIL:PASSWORD',
], [
- 'value' => env('MAIL_PASSWORD', ''),
- 'type' => 'string',
- 'description' => 'Mailer Password'
+ 'value' => env('MAIL_PASSWORD', ''),
+ 'type' => 'string',
+ 'description' => 'Mailer Password',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MAIL:ENCRYPTION',
+ 'key' => 'SETTINGS::MAIL:ENCRYPTION',
], [
- 'value' => env('MAIL_ENCRYPTION', 'tls'),
- 'type' => 'string',
- 'description' => 'Mailer Encryption (tls, ssl)'
+ 'value' => env('MAIL_ENCRYPTION', 'tls'),
+ 'type' => 'string',
+ 'description' => 'Mailer Encryption (tls, ssl)',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MAIL:FROM_ADDRESS',
+ 'key' => 'SETTINGS::MAIL:FROM_ADDRESS',
], [
- 'value' => env('MAIL_FROM_ADDRESS', ''),
- 'type' => 'string',
- 'description' => 'Mailer From Address'
+ 'value' => env('MAIL_FROM_ADDRESS', ''),
+ 'type' => 'string',
+ 'description' => 'Mailer From Address',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::MAIL:FROM_NAME',
+ 'key' => 'SETTINGS::MAIL:FROM_NAME',
], [
'value' => env('APP_NAME', 'Controlpanel'),
- 'type' => 'string',
- 'description' => 'Mailer From Name'
+ 'type' => 'string',
+ 'description' => 'Mailer From Name',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::REFERRAL::ENABLED',
+ 'key' => 'SETTINGS::REFERRAL::ENABLED',
], [
- 'value' =>"true",
- 'type' => 'string',
- 'description' => 'Enable or disable the referral system'
+ 'value' => 'false',
+ 'type' => 'string',
+ 'description' => 'Enable or disable the referral system',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::REFERRAL::REWARD',
+ 'key' => 'SETTINGS::REFERRAL::ALWAYS_GIVE_COMMISSION',
], [
- 'value' =>100,
- 'type' => 'integer',
- 'description' => 'Credit reward a user should receive when a user registers with his referral code'
+ 'value' => 'false',
+ 'type' => 'string',
+ 'description' => 'Whether referrals get percentage commission only on first purchase or on every purchase',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::REFERRAL::ALLOWED',
+ 'key' => 'SETTINGS::REFERRAL::REWARD',
], [
- 'value' =>"client",
- 'type' => 'string',
- 'description' => 'Who should be allowed to to use the referral code. all/client'
+ 'value' => 100,
+ 'type' => 'integer',
+ 'description' => 'Credit reward a user should receive when a user registers with his referral code',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::REFERRAL:MODE',
+ 'key' => 'SETTINGS::REFERRAL::ALLOWED',
], [
- 'value' =>"sign-up",
- 'type' => 'string',
- 'description' => 'Whether referrals get Credits on User-Registration or if a User buys credits'
+ 'value' => 'client',
+ 'type' => 'string',
+ 'description' => 'Who should be allowed to to use the referral code. all/client',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::REFERRAL:PERCENTAGE',
+ 'key' => 'SETTINGS::REFERRAL:MODE',
], [
- 'value' =>100,
- 'type' => 'integer',
- 'description' => 'The Percentage Value a referred user gets'
+ 'value' => 'sign-up',
+ 'type' => 'string',
+ 'description' => 'Whether referrals get Credits on User-Registration or if a User buys credits',
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::REFERRAL:PERCENTAGE',
+ ], [
+ 'value' => 100,
+ 'type' => 'integer',
+ 'description' => 'The Percentage Value a referred user gets',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN',
+ 'key' => 'SETTINGS::SYSTEM:PTERODACTYL:ADMIN_USER_TOKEN',
], [
- 'value' =>"",
- 'type' => 'string',
- 'description' => 'The Client API Key of an Pterodactyl Admin Account'
+ 'value' => '',
+ 'type' => 'string',
+ 'description' => 'The Client API Key of an Pterodactyl Admin Account',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::SYSTEM:ENABLE_UPGRADE',
+ 'key' => 'SETTINGS::SYSTEM:ENABLE_UPGRADE',
], [
- 'value' => "false",
- 'type' => 'boolean',
- 'description' => 'Enables the updgrade/downgrade feature for servers'
+ 'value' => 'false',
+ 'type' => 'boolean',
+ 'description' => 'Enables the updgrade/downgrade feature for servers',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::SYSTEM:CREATION_OF_NEW_SERVERS',
+ 'key' => 'SETTINGS::SYSTEM:CREATION_OF_NEW_SERVERS',
], [
- 'value' => "true",
- 'type' => 'boolean',
- 'description' => 'Enable/disable the creation of new servers'
+ 'value' => 'true',
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable the creation of new servers',
]);
Settings::firstOrCreate([
- 'key' => 'SETTINGS::SYSTEM:CREATION_OF_NEW_USERS',
+ 'key' => 'SETTINGS::SYSTEM:CREATION_OF_NEW_USERS',
], [
- 'value' => "true",
+ 'value' => 'false',
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable the creation of new users',
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:SHOW_IMPRINT',
+ ], [
+
+ 'value' => "false",
'type' => 'boolean',
- 'description' => 'Enable/disable the creation of new users'
+ 'description' => 'Enable/disable imprint in footer'
+
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:SHOW_PRIVACY',
+ ], [
+
+ 'value' => "false",
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable privacy policy in footer'
+
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:SHOW_TOS',
+ ], [
+ 'value' => 'false',
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable Terms of Service in footer',
+ ]);
+
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:ALERT_ENABLED',
+ ], [
+ 'value' => 'false',
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable Alerts on Homepage',
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:ALERT_TYPE',
+ ], [
+ 'value' => 'dark',
+ 'type' => 'text',
+ 'description' => 'Changes the Color of the Alert',
+ ]);
+
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:ALERT_MESSAGE',
+ ], [
+ 'value' => '',
+ 'type' => 'text',
+ 'description' => 'Changes the Content the Alert',
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:THEME',
+ ], [
+ 'value' => 'default',
+ 'type' => 'text',
+ 'description' => 'Current active theme',
+ ]);
+
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:USEFULLINKS_ENABLED',
+ ], [
+ 'value' => 'true',
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable Useful Links on Homepage',
+ ]);
+
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:MOTD_ENABLED',
+ ], [
+ 'value' => 'true',
+ 'type' => 'boolean',
+ 'description' => 'Enable/disable MOTD on Homepage',
+ ]);
+ Settings::firstOrCreate([
+ 'key' => 'SETTINGS::SYSTEM:MOTD_MESSAGE',
+ ], [
+ 'value' => '
+ Controlpanel.gg
".$_GET['message'].'
'; + } ?>